5 #ifndef DDSINTERCOMGUARD_H 6 #define DDSINTERCOMGUARD_H 15 #include <boost/signals2/signal.hpp> 19 namespace internal_api
23 typedef boost::signals2::signal<void(
24 const std::string& ,
const std::string& ,
const std::string& )>
27 typedef boost::signals2::signal<void(
const std::string& ,
const std::string& )>
32 typedef boost::signals2::signal<void(
33 const std::string& ,
const std::string& , uint64_t )>
42 typedef std::map<std::string, protocol_api::SUpdateKeyCmd::version_t> updateKeyCache_t;
45 typedef std::map<std::string, std::string> putValueCache_t;
54 connection_t
connectError(intercom_api::errorSignal_t::slot_function_type _subscriber);
55 connection_t
connectCustomCmd(customCmdSignal_t::slot_function_type _subscriber);
57 connection_t
connectKeyValue(keyValueSignal_t::slot_function_type _subscriber);
81 void sendCustomCmd(
const std::string& _command,
const std::string& _condition);
82 void putValue(
const std::string& _key,
const std::string& _value);
90 void start(
const std::string& _sessionID);
104 template <
class Signal_t,
typename... Args>
105 void execUserSignal(Signal_t& _signal, Args&&... args)
111 catch (std::exception& _e)
113 std::string msg(
"Exception in user code: ");
115 if (!std::is_same<Signal_t, intercom_api::errorSignal_t>::value)
124 boost::asio::io_service m_io_service;
125 boost::thread_group m_workerThreads;
128 std::mutex m_initAgentConnectionMutex;
130 updateKeyCache_t m_updateKeyCache;
131 std::mutex m_updateKeyCacheMutex;
133 putValueCache_t m_putValueCache;
134 std::mutex m_putValueCacheMutex;
138 bool m_useSMTransport;
void on_cmdUPDATE_KEY_ERROR_SM(const protocol_api::SSenderInfo &_sender, protocol_api::SCommandAttachmentImpl< protocol_api::cmdUPDATE_KEY_ERROR >::ptr_t _attachment)
Definition: DDSIntercomGuard.cpp:278
void on_cmdSIMPLE_MSG_SM(const protocol_api::SSenderInfo &_sender, protocol_api::SCommandAttachmentImpl< protocol_api::cmdSIMPLE_MSG >::ptr_t _attachment)
Definition: DDSIntercomGuard.cpp:330
Definition: BaseEventHandlersImpl.h:48
Definition: UpdateKeyCmd.h:14
boost::signals2::signal< void(const std::string &, const std::string &, uint64_t)> customCmdSignal_t
Definition: DDSIntercomGuard.h:34
boost::signals2::signal< void(const std::string &)> customCmdReplySignal_t
Definition: DDSIntercomGuard.h:35
boost::signals2::signal< void(const std::string &, const std::string &)> keyValueDeleteSignal_t
Definition: DDSIntercomGuard.h:28
void stopCondition()
Definition: DDSIntercomGuard.cpp:474
void on_cmdDELETE_KEY_SM(const protocol_api::SSenderInfo &_sender, protocol_api::SCommandAttachmentImpl< protocol_api::cmdDELETE_KEY >::ptr_t _attachment)
Definition: DDSIntercomGuard.cpp:310
connection_t connectKeyValue(keyValueSignal_t::slot_function_type _subscriber)
Definition: DDSIntercomGuard.cpp:208
std::shared_ptr< SEmptyCmd > ptr_t
Definition: CommandAttachmentImpl.h:66
intercom_api::errorSignal_t m_errorSignal
Definition: DDSIntercomGuard.h:97
keyValueDeleteSignal_t m_keyValueDeleteSignal
Definition: DDSIntercomGuard.h:99
Exception in the user code.
Definition: dds_intercom_error_codes.h:26
#define LOG(severity)
Definition: Logger.h:54
customCmdReplySignal_t m_customCmdReplySignal
Definition: DDSIntercomGuard.h:101
void disconnectCustomCmd()
Definition: DDSIntercomGuard.cpp:218
void on_cmdCUSTOM_CMD_SM(const protocol_api::SSenderInfo &_sender, protocol_api::SCommandAttachmentImpl< protocol_api::cmdCUSTOM_CMD >::ptr_t _attachment)
Definition: DDSIntercomGuard.cpp:323
void on_cmdUPDATE_KEY_SM(const protocol_api::SSenderInfo &_sender, protocol_api::SCommandAttachmentImpl< protocol_api::cmdUPDATE_KEY >::ptr_t _attachment)
Definition: DDSIntercomGuard.cpp:259
std::shared_ptr< CSMAgentChannel > connectionPtr_t
Definition: BaseSMChannelImpl.h:162
void start(const std::string &_sessionID)
Definition: DDSIntercomGuard.cpp:58
connection_t connectError(intercom_api::errorSignal_t::slot_function_type _subscriber)
Definition: DDSIntercomGuard.cpp:193
Definition: dds-agent/src/AgentConnectionManager.h:18
Definition: DDSIntercomGuard.h:39
customCmdSignal_t m_customCmdSignal
Definition: DDSIntercomGuard.h:100
boost::signals2::signal< void(const std::string &, const std::string &, const std::string &)> keyValueSignal_t
Definition: DDSIntercomGuard.h:25
static void clean()
Definition: DDSIntercomGuard.cpp:452
void disconnectKeyValue()
Definition: DDSIntercomGuard.cpp:227
boost::signals2::connection connection_t
Definition: DDSIntercomGuard.h:37
void waitCondition()
Definition: DDSIntercomGuard.cpp:462
static CDDSIntercomGuard & instance()
Definition: DDSIntercomGuard.cpp:52
bool updateCacheIfNeeded(const protocol_api::SUpdateKeyCmd &_cmd)
Definition: DDSIntercomGuard.cpp:235
void sendCustomCmd(const std::string &_command, const std::string &_condition)
Definition: DDSIntercomGuard.cpp:356
std::shared_ptr< CAgentConnectionManager > ptr_t
Definition: dds-intercom-lib/src/AgentConnectionManager.h:23
void initAgentConnection()
connection_t connectCustomCmdReply(customCmdReplySignal_t::slot_function_type _subscriber)
Definition: DDSIntercomGuard.cpp:203
void putValue(const std::string &_key, const std::string &_value)
Definition: DDSIntercomGuard.cpp:406
connection_t connectCustomCmd(customCmdSignal_t::slot_function_type _subscriber)
Definition: DDSIntercomGuard.cpp:198
keyValueSignal_t m_keyValueUpdateSignal
Definition: DDSIntercomGuard.h:98
void stop()
Definition: DDSIntercomGuard.cpp:174
boost::signals2::signal< void(EErrorCode, const std::string &)> errorSignal_t
Definition: dds_intercom_error_codes.h:29
connection_t connectKeyValueDelete(keyValueDeleteSignal_t::slot_function_type _subscriber)
Definition: DDSIntercomGuard.cpp:213