Samchon Framework for CPP  1.0.0
samchon::templates::external::ExternalServer Class Reference

#include <ExternalServer.hpp>

Collaboration diagram for samchon::templates::external::ExternalServer:

Public Member Functions

 ExternalServer (base::ExternalSystemArrayBase *systemArray)
virtual void connect ()
- Public Member Functions inherited from samchon::templates::external::ExternalSystem
 ExternalSystem ()
 ExternalSystem (base::ExternalSystemArrayBase *systemArray)
 ExternalSystem (base::ExternalSystemArrayBase *systemArray, std::shared_ptr< protocol::ClientDriver > driver)
virtual ~ExternalSystem ()=default
virtual void construct (std::shared_ptr< library::XML > xml) override
 Construct data of the Entity from an XML object. More...
virtual auto key () const -> std::string
auto getName () const -> std::string
void close ()
virtual void sendData (std::shared_ptr< protocol::Invoke > invoke) override
virtual void replyData (std::shared_ptr< protocol::Invoke > invoke) override
virtual auto CHILD_TAG () const -> std::string override
 A tag name of children. More...
virtual auto toXML () const -> std::shared_ptr< library::XML > override
 Get an XML object represents the EntityGroup. More...
- Public Member Functions inherited from samchon::protocol::EntityGroup< Container, T, Key >
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...
- Public Member Functions inherited from samchon::protocol::IProtocol
virtual void replyData (std::shared_ptr< Invoke >)=0
virtual void sendData (std::shared_ptr< Invoke >)=0

Protected Member Functions

virtual auto createServerConnector () -> protocol::ServerConnector *
- Protected Member Functions inherited from samchon::protocol::EntityGroup< Container, T, Key >
virtual auto createChild (std::shared_ptr< library::XML >) -> child_type *=0
 Factory method of a child Entity. More...

Additional Inherited Members

- Protected Attributes inherited from samchon::templates::external::ExternalSystem
std::string name

Detailed Description

An external server driver.

The ExternalServer is an abstract class, derived from the ExternalSystem class, connecting to remote, external server. Extends this ExternalServer class and overrides the createServerConnector() method following which protocol the external server uses.

[Inherited] ExternalSystem}

An external system driver.

The ExternalSystem class represents an external system, connected and interact with this system. ExternalSystem takes full charge of network communication with the remote, external system have connected. Replied Invoke messages from the external system is shifted to and processed in, children elements of this class, ExternalSystemRole objects.

Class Diagram

Bridge & Proxy Pattern

The ExternalSystem class can be a bridge for logical proxy. 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

Jeongho Nam

Definition at line 25 of file ExternalServer.hpp.

Constructor & Destructor Documentation

samchon::templates::external::ExternalServer::ExternalServer ( base::ExternalSystemArrayBase *  systemArray)

Construct from parent ExternalSystemArray.

systemArrayThe parent ExternalSystemArray object.

Definition at line 43 of file ExternalServer.hpp.

Member Function Documentation

virtual auto samchon::templates::external::ExternalServer::createServerConnector ( ) -> protocol::ServerConnector*

Factory method creating IServerConnector object.

The createServerConnector() is an abstract method creating IServerConnector object. Overrides and returns one of them, considering which templates the external system follows:

A newly created IServerConnector object.

Definition at line 63 of file ExternalServer.hpp.

Referenced by connect().

Here is the caller graph for this function:

virtual void samchon::templates::external::ExternalServer::connect ( )

Connect to external server.

Definition at line 75 of file ExternalServer.hpp.

References createServerConnector(), and samchon::protocol::EntityGroup< Container, T, Key >::get().

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

Here is the call graph for this function:

Here is the caller graph for this function:

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