5 #ifndef DDS_INTERCOM_SERVICE_CORE_H 6 #define DDS_INTERCOM_SERVICE_CORE_H 15 #include <boost/signals2/signal.hpp> 19 namespace internal_api
23 typedef boost::signals2::signal<void(
24 const std::string& ,
const std::string& , uint64_t )>
31 typedef boost::signals2::signal<void(
32 const std::string& ,
const std::string& , uint64_t )>
41 using ptr_t = std::shared_ptr<CIntercomServiceCore>;
61 void sendCustomCmd(
const std::string& _command,
const std::string& _condition);
62 void putValue(
const std::string& _key,
const std::string& _value);
70 void start(
const std::string& _sessionID);
75 void on_cmdUPDATE_KEY_SM(
78 void on_cmdUSER_TASK_DONE_SM(
81 void on_cmdCUSTOM_CMD_SM(
84 void on_cmdSIMPLE_MSG_SM(
88 void setupSMChannel();
89 void setupChannel(
const std::string& _sessionID);
91 template <
class Signal_t,
typename... Args>
92 void execUserSignal(Signal_t& _signal, Args&&... args)
98 catch (std::exception& _e)
100 std::string msg(
"Exception in user code: ");
102 if (!std::is_same<Signal_t, intercom_api::errorSignal_t>::value)
118 boost::asio::io_context m_io_context;
119 boost::thread_group m_workerThreads;
122 std::atomic<bool> m_started;
129 std::mutex m_waitMutex;
130 std::condition_variable m_waitCondition;
std::shared_ptr< CAgentChannel > connectionPtr_t
Definition: BaseChannelImpl.h:235
boost::signals2::signal< void(uint64_t, uint32_t)> keyValueTaskDoneSignal_t
Definition: IntercomServiceCore.h:27
Definition: BaseEventHandlersImpl.h:48
boost::signals2::signal< void(const std::string &, const std::string &, uint64_t)> customCmdSignal_t
Definition: IntercomServiceCore.h:33
boost::signals2::signal< void(const std::string &)> customCmdReplySignal_t
Definition: IntercomServiceCore.h:34
connection_t connectKeyValue(keyValueSignal_t::slot_function_type _subscriber)
Definition: IntercomServiceCore.cpp:243
connection_t connectKeyValueTaskDone(keyValueTaskDoneSignal_t::slot_function_type _subscriber)
Definition: IntercomServiceCore.cpp:248
void waitCondition()
Definition: IntercomServiceCore.cpp:406
std::shared_ptr< SEmptyCmd > ptr_t
Definition: CommandAttachmentImpl.h:64
~CIntercomServiceCore()
Definition: IntercomServiceCore.cpp:34
Exception in the user code.
Definition: IntercomErrorCodes.h:27
#define LOG(severity)
Definition: Logger.h:56
static void clean()
Definition: IntercomServiceCore.cpp:395
connection_t connectCustomCmd(customCmdSignal_t::slot_function_type _subscriber)
Definition: IntercomServiceCore.cpp:233
Definition: IntercomServiceCore.h:38
std::shared_ptr< CSMAgentChannel > connectionPtr_t
Definition: BaseSMChannelImpl.h:191
boost::signals2::signal< void(const std::string &, const std::string &, uint64_t)> keyValueSignal_t
Definition: IntercomServiceCore.h:25
Definition: AgentConnectionManager.h:13
CIntercomServiceCore()
Definition: IntercomServiceCore.cpp:20
void disconnectKeyValue()
Definition: IntercomServiceCore.cpp:262
std::shared_ptr< CIntercomServiceCore > ptr_t
Definition: IntercomServiceCore.h:41
void stopCondition()
Definition: IntercomServiceCore.cpp:417
void sendCustomCmd(const std::string &_command, const std::string &_condition)
Definition: IntercomServiceCore.cpp:323
void putValue(const std::string &_key, const std::string &_value)
Definition: IntercomServiceCore.cpp:364
boost::signals2::connection connection_t
Definition: IntercomServiceCore.h:36
void disconnectCustomCmd()
Definition: IntercomServiceCore.cpp:253
void stop()
Definition: IntercomServiceCore.cpp:204
connection_t connectError(intercom_api::errorSignal_t::slot_function_type _subscriber)
Definition: IntercomServiceCore.cpp:228
connection_t connectCustomCmdReply(customCmdReplySignal_t::slot_function_type _subscriber)
Definition: IntercomServiceCore.cpp:238
boost::signals2::signal< void(EErrorCode, const std::string &)> errorSignal_t
Definition: IntercomErrorCodes.h:30
CIntercomServiceCore & operator=(const CIntercomServiceCore &)=delete
void start(const std::string &_sessionID)
Definition: IntercomServiceCore.cpp:38