Samchon Framework for CPP  1.0.0
ExternalSystemArray.hpp
1 #pragma once
2 #include <samchon/API.hpp>
3 
4 #include <samchon/protocol/SharedEntityArray.hpp>
5 # include <samchon/protocol/ExternalSystem.hpp>
6 #include <samchon/protocol/IProtocol.hpp>
7 
8 namespace samchon
9 {
10 namespace protocol
11 {
12  class ExternalSystemRole;
13 
44  class SAMCHON_FRAMEWORK_API ExternalSystemArray
45  : public SharedEntityArray<ExternalSystem>,
46  public virtual IProtocol
47  {
48  protected:
50 
51  public:
52  /* ------------------------------------------------------------------
53  CONSTRUCTORS
54  ------------------------------------------------------------------ */
59  virtual ~ExternalSystemArray() = default;
60 
74  virtual void start() = 0;
75 
76  /* ------------------------------------------------------------------
77  GETTERS
78  ------------------------------------------------------------------ */
85  auto hasRole(const std::string&) const -> bool;
86 
93  auto getRole(const std::string&) const->std::shared_ptr<ExternalSystemRole>;
94 
95  /* ------------------------------------------------------------------
96  CHAIN OF INVOKE MESSAGE
97  ------------------------------------------------------------------ */
109  virtual void sendData(std::shared_ptr<Invoke>) override;
110 
120  virtual void replyData(std::shared_ptr<Invoke>) override;
121 
122  /* ------------------------------------------------------------------
123  XML TAG
124  ------------------------------------------------------------------ */
125  virtual auto TAG() const->std::string override;
126  virtual auto CHILD_TAG() const->std::string override;
127  };
128 };
129 };
An array of ExternalSystem(s).
An Entity and a container of children Entity objects.
Definition: EntityGroup.hpp:52
A role belongs to an external system.
An interface of Invoke message chain.
Definition: IProtocol.hpp:31
Top level namespace of products built from samchon.
Definition: ByteArray.hpp:7