Samchon Framework for CPP  1.0.0
samchon::templates::external::ExternalServerClientArray< System > Class Template Referenceabstract

#include <ExternalServerClientArray.hpp>

Collaboration diagram for samchon::templates::external::ExternalServerClientArray< System >:

Public Member Functions

 ExternalServerClientArray ()
 Default Constructor. More...
 
virtual ~ExternalServerClientArray ()=default
 Default Destructor. More...
 
- Public Member Functions inherited from samchon::templates::external::ExternalServerArray< System >
 ExternalServerArray ()
 
virtual void connect ()
 
- Public Member Functions inherited from samchon::templates::external::ExternalSystemArray< System >
 ExternalSystemArray ()
 
virtual ~ExternalSystemArray ()=default
 
auto hasRole (const std::string &key) const -> bool
 
auto getRole (const std::string &key) const -> std::shared_ptr< ExternalSystemRole >
 
virtual void sendData (std::shared_ptr< protocol::Invoke > invoke)
 
virtual void replyData (std::shared_ptr< protocol::Invoke > invoke)=0
 
virtual auto CHILD_TAG () const -> std::string override
 A tag name of children. More...
 
- Public Member Functions inherited from samchon::protocol::EntityGroup< Container, T, Key >
virtual void construct (std::shared_ptr< library::XML > xml)
 Construct data of the Entity from an XML object. More...
 
auto find (const typename child_type::key_type &key) -> typename container_type::iterator
 Get iterator to element. More...
 
auto find (const typename child_type::key_type &key) const -> typename container_type::const_iterator
 Get const iterator to element. More...
 
auto has (const typename child_type::key_type &key) const -> bool
 Indicates whether a container has an object having the specified identifier. More...
 
auto count (const typename child_type::key_type &key) const -> size_t
 Count elements with a specific key. More...
 
auto get (const typename child_type::key_type &key) -> typename container_type::value_type &
 Access the element by specified identifier(key). More...
 
auto get (const typename child_type::key_type &key) const -> const typename container_type::value_type &
 Access the const element by specified identifier(key). More...
 
virtual auto toXML () const -> std::shared_ptr< library::XML >
 Get an XML object represents the EntityGroup. More...
 
- Public Member Functions inherited from samchon::protocol::Entity< Key >
virtual auto key () const -> Key
 Get a key that can identify the Entity uniquely. More...
 
- Public Member Functions inherited from samchon::protocol::IProtocol
virtual void replyData (std::shared_ptr< Invoke >)=0
 
virtual void sendData (std::shared_ptr< Invoke >)=0
 
- Public Member Functions inherited from samchon::templates::external::ExternalClientArray< System >
 ExternalClientArray ()
 
- Public Member Functions inherited from samchon::protocol::Server
 Server ()
 
virtual ~Server ()
 
virtual void open (int port)
 
virtual void close ()
 

Protected Member Functions

virtual auto createChild (std::shared_ptr< library::XML > xml) -> System *override final
 
virtual auto createExternalServer (std::shared_ptr< library::XML >) -> System *=0
 
- Protected Member Functions inherited from samchon::templates::external::ExternalClientArray< System >
virtual void addClient (std::shared_ptr< protocol::ClientDriver > driver) override final
 
virtual auto createExternalClient (std::shared_ptr< protocol::ClientDriver >) -> System *=0
 
- Protected Member Functions inherited from samchon::protocol::Server
virtual void addClient (std::shared_ptr< ClientDriver >)=0
 

Detailed Description

template<class System = ExternalSystem>
class samchon::templates::external::ExternalServerClientArray< System >

An array and manager of external servers and external clients.

The ExternalServerClientArray is an abstract class, derived from the ExternalSystemArray class, opening a server accepting external clients and being a client connecting to external servers at the same time.

Extends this ExternalServerClientArray and overrides below methods. After the overridings, open server with open() method and connect to external servers through the connect() method.

[Inherited] ExternalSystemArray}

An array and manager of external system drivers.

The ExternalSystemArray is an abstract class containing and managing external system drivers, ExternalSystem objects. Within framewokr of network, ExternalSystemArray represents your system and children ExternalSystem objects represent remote, external systems connected with your system. With this ExternalSystemArray, you can manage multiple external systems as a group.

You can specify this ExternalSystemArray class to be a server accepting external clients or a client connecting to external servers. Even both of them is also possible.

Class Diagram

Proxy Pattern

The ExternalSystemArray class can use Proxy Pattern. In framework within user, which external system is connected with this system, it's not important. Only interested in user's perspective is which can be done.

By using the logical proxy, user dont't need to know which role is belonged to which system. Just access to a role directly from ExternalSystemArray.getRole. Sends and receives Invoke message via the role.

Templates - External System

Author
Jeongho Nam http://samchon.org

Definition at line 32 of file ExternalServerClientArray.hpp.

Constructor & Destructor Documentation

template<class System = ExternalSystem>
samchon::templates::external::ExternalServerClientArray< System >::ExternalServerClientArray ( )
inline

Default Constructor.

Definition at line 47 of file ExternalServerClientArray.hpp.

References samchon::templates::external::ExternalServerClientArray< System >::~ExternalServerClientArray().

Here is the call graph for this function:

template<class System = ExternalSystem>
virtual samchon::templates::external::ExternalServerClientArray< System >::~ExternalServerClientArray ( )
virtualdefault

Default Destructor.

Referenced by samchon::templates::external::ExternalServerClientArray< System >::ExternalServerClientArray().

Here is the caller graph for this function:

Member Function Documentation

template<class System = ExternalSystem>
virtual auto samchon::templates::external::ExternalServerClientArray< System >::createChild ( std::shared_ptr< library::XML xml) -> System*
inlinefinaloverrideprotectedvirtual

Factory method of a child Entity.

This method is migrated to createExternalServer. Override the createExternalServer method.

Parameters
xmlAn XML object represents child element, so that can identify the type of child to create.
Returns
A new child Entity via createExternalServer().

Reimplemented from samchon::templates::external::ExternalClientArray< System >.

Definition at line 70 of file ExternalServerClientArray.hpp.

References samchon::templates::external::ExternalServerClientArray< System >::createExternalServer().

Here is the call graph for this function:

template<class System = ExternalSystem>
virtual auto samchon::templates::external::ExternalServerClientArray< System >::createExternalServer ( std::shared_ptr< library::XML ) -> System *
protectedpure virtual

Factory method creating an IExternalServer object.

Parameters
xmlAn XML object represents child element, so that can identify the type of child to create.
Returns
A newly created IExternalServer object.

Referenced by samchon::templates::external::ExternalServerClientArray< System >::createChild().

Here is the caller graph for this function:


The documentation for this class was generated from the following file: