/** @file * @author Edouard DUPIN * @copyright 2016, Edouard DUPIN, all right reserved * @license APACHE v2.0 (see license file) */ #pragma once #include #include namespace jus { class GateWay : public eproperty::Interface { private: std::vector> m_serviceList; //!< List of all service availlable with their specific connection interface std::vector> m_clientList; //!< List of all Client interface with their own connection //TODO: std::vector m_ServerList; //!< List of all Server connected to this gateway ememory::SharedPtr m_clientWaiting; esignal::Connection m_clientConnected; public: eproperty::Value propertyClientIp; eproperty::Value propertyClientPort; eproperty::Value propertyClientMax; eproperty::Value propertyServiceIp; eproperty::Value propertyServicePort; eproperty::Value propertyServiceMax; public: GateWay(); virtual ~GateWay(); void start(); void stop(); private: void onPropertyChangeClientIp(); void onPropertyChangeClientPort(); void onPropertyChangeClientMax(); void onPropertyChangeServiceIp(); void onPropertyChangeServicePort(); void onPropertyChangeServiceMax(); void onClientConnect(const bool& _value); }; }