Samchon Framework for CPP
1.0.0
|
A slave parallel client. More...
#include <ParallelClient.hpp>
Public Member Functions | |
ParallelClient () | |
Default Constructor. More... | |
![]() | |
ParallelSystem () | |
Default Constructor. More... | |
virtual void | replyPieceData (std::shared_ptr< Invoke >, size_t, size_t)=0 |
Handle requested processes which are segmented. More... | |
![]() | |
SlaveSystem () | |
Default Constructor. More... | |
![]() | |
ExternalSystem () | |
Default Constructor. More... | |
virtual auto | key () const -> std::string override |
Get a key that can identify the Entity uniquely. More... | |
virtual void | replyData (std::shared_ptr< Invoke >) override |
Handling replied message from an external system. More... | |
virtual auto | TAG () const -> std::string override |
A tag name when represented by XML. More... | |
virtual auto | CHILD_TAG () const -> std::string override |
A tag name of children. More... | |
![]() | |
EntityGroup () | |
Default Constructor. More... | |
auto | has (const std::string &key) const -> bool |
Indicates whether a container has an object having the specified identifier. More... | |
auto | get (const std::string &key) -> value_type & |
Access the element by specified identifier(key). More... | |
auto | get (const std::string &key) const -> const value_type & |
Access the const element by specified identifier(key). More... | |
![]() | |
Entity () | |
Default Constructor. More... | |
![]() | |
IEntityGroup () | |
Default Constructor. More... | |
![]() | |
IClient () | |
Default Constructor. More... | |
virtual void | listen () |
Listens message from a related system. More... | |
virtual void | sendData (std::shared_ptr< Invoke >) |
Sends message to a related system. More... | |
![]() | |
IProtocol () | |
Default Constructor. More... | |
![]() | |
SlaveClient () | |
Default Constructor. More... | |
![]() | |
ExternalServer () | |
Default Constructor. More... | |
virtual void | construct (std::shared_ptr< library::XML >) override |
Construct data of the Entity from an XML object. More... | |
virtual void | start () override |
Start interaction. More... | |
virtual auto | getIP () const -> std::string override |
Destinatio IP. More... | |
virtual auto | getPort () const -> int override |
Destination port. More... | |
virtual auto | getMyIP () const -> std::string override |
(optional) My IP, if you want to bind More... | |
virtual auto | toXML () const -> std::shared_ptr< library::XML > override |
Get an XML object represents the EntityGroup. More... | |
![]() | |
ServerConnector () | |
Default Constructor. More... | |
virtual void | connect () |
Connect to a server. More... | |
Additional Inherited Members | |
![]() | |
virtual auto | createChild (std::shared_ptr< library::XML >) -> ExternalSystemRole *override |
Factory method of a child Entity. More... | |
virtual void | _replyData (std::shared_ptr< Invoke >) override |
Pre-processor for segmented processes and reporting elapsed time. More... | |
![]() | |
virtual auto | BUFFER_SIZE () const -> size_t |
Buffer size of network I/O. More... | |
![]() | |
std::string | name |
A name can identify an external system. More... | |
std::string | ip |
An ip address of an external system. More... | |
int | port |
A port number of an external system. More... | |
![]() | |
Socket * | socket |
Socket for network I/O. More... | |
std::mutex * | sendMtx |
A mutex for sending message. More... | |
![]() | |
std::string | myIP |
A custom ip address of my system to bind. More... | |
![]() | |
boost::asio::io_service * | ioService |
An io_service of Boost.Asio's own. More... | |
EndPoint * | endPoint |
An endpoint directing a server. More... | |
EndPoint * | localEndPoint |
(Optional) An local endpoint of the client (my system) More... | |
A slave parallel client.
ParallelClient is a ParallelSystem class specialized in server driver.
ParallelSystem is a class processing segmented Invoke messages from master.
SlaveSystem, literally, means a slave system belongs to a maste system.
The SlaveSystem class is used in opposite side system of master::DistributedSystem and master::ParallelSystem and reports elapsed time of each commmand (by Invoke message) for estimation of its performance.
ExternalSystem is a boundary class interacting with an external system by network communication. Also, ExternalSystem is an abstract class that a network role, which one is server and which one is client, is not determined yet.
The ExternalSystem has ExternalSystemRole(s) groupped methods, handling Invoke message interacting with the external system, by subject or unit of a moudle. The ExternalSystemRole is categorized in a 'control'.
The ExternalSystem class takes a role of interaction with external system in network level. However, within a framework of Samchon Framework, a boundary class like the ExternalSystem is not such important. You can find some evidence in a relationship between ExternalSystemArray, ExternalSystem and ExternalSystemRole.
Of course, the ExternalSystemRole is belonged to an ExternalSystem. However, if you access an ExternalSystemRole from an ExternalSystemArray directly, not passing by a belonged ExternalSystem, and send an Invoke message even you're not knowing which ExternalSystem is related in, it's called "Proxy pattern".
Like the explanation of "Proxy pattern", you can utilize an ExternalSystemRole as a proxy of an ExternalSystem. With the pattern, you can only concentrate on ExternalSystemRole itself, what to do with Invoke message, irrespective of the ExternalSystemRole is belonged to which ExternalSystem.
Definition at line 22 of file ParallelClient.hpp.
ParallelClient::ParallelClient | ( | ) |
Default Constructor.
Definition at line 8 of file ParallelClient_slave.cpp.