Samchon Framework for CPP  1.0.0
SlaveClient.hpp
1 #pragma once
2 #include <samchon/API.hpp>
3 
4 #include <samchon/templates/slave/SlaveSystem.hpp>
5 
6 namespace samchon
7 {
8 namespace protocol
9 {
10  class ServerConnector;
11 };
12 
13 namespace templates
14 {
15 namespace slave
16 {
17  class SlaveClient
18  : public virtual SlaveSystem
19  {
20  public:
21  /* ---------------------------------------------------------
22  CONSTRUCTORS
23  --------------------------------------------------------- */
24  SlaveClient()
25  : SlaveSystem()
26  {
27  };
28  virtual ~SlaveClient() = default;
29 
30  protected:
31  virtual auto createServerConnector() -> protocol::ServerConnector*
32  {
33  return new protocol::ServerConnector(this);
34  };
35 
36  public:
37  /* ---------------------------------------------------------
38  METHOD OF CONNECTOR
39  --------------------------------------------------------- */
40  void connect(const std::string &ip, int port)
41  {
42  std::shared_ptr<protocol::ServerConnector> connector(createServerConnector());
43  this->communicator_ = connector;
44 
45  connector->connect(ip, port);
46  };
47  };
48 };
49 };
50 };