Samchon Framework for CPP
1.0.0
|
A master of parallel system solving packaging problem. More...
#include <PackerMaster.hpp>
Public Member Functions | |
PackerMaster () | |
Default Constructor. More... | |
![]() | |
Master (int port) | |
Construct from a port number to listen. More... | |
virtual void | start () override |
Start interaction. More... | |
![]() | |
ParallelClientArray () | |
Default Constructor. More... | |
![]() | |
ParallelSystemArray () | |
Default Constructor. More... | |
void | sendSegmentData (std::shared_ptr< Invoke >, size_t) |
Send a message with segmentation size. More... | |
virtual void | sendPieceData (std::shared_ptr< Invoke >, size_t, size_t) |
Send a message with piece index and size. More... | |
![]() | |
ExternalSystemArray () | |
Default Constructor. More... | |
auto | hasRole (const std::string &) const -> bool |
Test whether has a role. More... | |
auto | getRole (const std::string &) const -> std::shared_ptr< ExternalSystemRole > |
Get a role. More... | |
virtual void | sendData (std::shared_ptr< Invoke >) override |
Sends an Invoke message to related ExternalSystem(s). More... | |
virtual void | replyData (std::shared_ptr< Invoke >) override |
Handle replied Invoke message. 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... | |
virtual auto | key () const -> std::string |
Get a key that can identify the Entity uniquely. More... | |
![]() | |
IEntityGroup () | |
Default Constructor. More... | |
![]() | |
IProtocol () | |
Default Constructor. More... | |
![]() | |
ExternalClientArray () | |
Default Constructor. More... | |
virtual void | construct (std::shared_ptr< library::XML >) override |
Construct data of the Entity from an XML object. More... | |
virtual auto | toXML () const -> std::shared_ptr< library::XML > override |
Get an XML object represents the EntityGroup. More... | |
Static Public Member Functions | |
static void | main () |
Main functino. More... | |
Protected Member Functions | |
virtual void | optimize (shared_ptr< XML > xml) override |
Optimize something. More... | |
virtual void | replyOptimization (shared_ptr< XML > xml) override |
Handle (replied) optimized value from a slave system. More... | |
![]() | |
virtual void | addClient (Socket *socket) override |
Handling connection of a physical client. More... | |
![]() | |
virtual void | notifyEnd (PRMasterHistory *) |
Notify end of a master history. More... | |
![]() | |
virtual auto | createChild (std::shared_ptr< library::XML >) -> entity_type *=0 |
Factory method of a child Entity. More... | |
![]() | |
virtual auto | PORT () const -> int |
Port number of the server. More... | |
virtual auto | MY_IP () const -> std::string |
(optional) Server's IP More... | |
Protected Attributes | |
shared_ptr< packer::Packer > | packer |
A packer solver. More... | |
![]() | |
unique_ptr< ChiefDriver > | chiefDriver |
A boundary object interacting with a Cheif. More... | |
mutex | mtx |
A mutex for optimization. More... | |
size_t | optimized |
Number of slaves who'd completed an optimization. More... | |
![]() | |
std::string | myIP |
A custom ip address of my system to bind. More... | |
int | port |
A port number for accepting external clients. More... | |
A master of parallel system solving packaging problem.
Master is an abstract and example class, for providing guidance of realizing parallel processing system for users, within framework of master. The Master class represents a master of parallel processing system in the master side.
A master system (represented by Master and MasterDriver) is associated with a chief system (represented by Cheif and CheifDriver) and slave systems (Slave and SlaveDriver). The master system gets optimization order from chief system and shifts and distributes orders to its slave systems. When slave systems report optimization result, the master system aggregates those results and reports the aggregated results to chief system.
Definition at line 31 of file PackerMaster.hpp.
|
inline |
Default Constructor.
Definition at line 50 of file PackerMaster.hpp.
|
inlineoverrideprotectedvirtual |
Optimize something.
Master gets an XML object representing parametric value and basic data used for optimzation are came from Cheif. Master constructs some object to optimize and distributes the optimization order to master's slave systems by segmentation.
xml | XML object representing parametric value and basic data used for optimization. |
Reimplemented from samchon::example::interaction::Master.
Definition at line 61 of file PackerMaster.hpp.
|
inlineoverrideprotectedvirtual |
Handle (replied) optimized value from a slave system.
When gets optimization result from Slave systems, Master aggregates them and derives the best solution between those results and reports the best solution to the Cheif system.
xml | XML object representing the optimized value. |
Implements samchon::example::interaction::Master.
Definition at line 79 of file PackerMaster.hpp.
|
inlinestatic |
Main functino.
Definition at line 109 of file PackerMaster.hpp.
References samchon::example::interaction::Master::start().
|
protected |
A packer solver.
Definition at line 41 of file PackerMaster.hpp.