DDS  ver. 1.6
CommanderChannel.h
Go to the documentation of this file.
1 // Copyright 2014 GSI, Inc. All rights reserved.
2 //
3 //
4 //
5 
6 #ifndef __DDS__AGENT__CCommanderChannel__
7 #define __DDS__AGENT__CCommanderChannel__
8 
9 // DDS
10 #include "ClientChannelImpl.h"
11 
12 namespace dds
13 {
14  namespace agent_cmd
15  {
16  class CCommanderChannel : public protocol_api::CClientChannelImpl<CCommanderChannel>
17  {
18  typedef std::function<void(pid_t)> handlerOnNewUserTaks_t;
19 
20  private:
21  CCommanderChannel(boost::asio::io_service& _service);
22 
24 
25  public:
27  MESSAGE_HANDLER(cmdSIMPLE_MSG, on_cmdSIMPLE_MSG)
28  MESSAGE_HANDLER(cmdGET_HOST_INFO, on_cmdGET_HOST_INFO)
29  MESSAGE_HANDLER(cmdSHUTDOWN, on_cmdSHUTDOWN)
30  MESSAGE_HANDLER(cmdBINARY_ATTACHMENT_RECEIVED, on_cmdBINARY_ATTACHMENT_RECEIVED)
31  MESSAGE_HANDLER(cmdGET_ID, on_cmdGET_ID)
32  MESSAGE_HANDLER(cmdSET_ID, on_cmdSET_ID)
33  MESSAGE_HANDLER(cmdGET_LOG, on_cmdGET_LOG)
34  MESSAGE_HANDLER(cmdASSIGN_USER_TASK, on_cmdASSIGN_USER_TASK)
35  MESSAGE_HANDLER(cmdACTIVATE_AGENT, on_cmdACTIVATE_AGENT)
36  MESSAGE_HANDLER(cmdSTOP_USER_TASK, on_cmdSTOP_USER_TASK)
37  MESSAGE_HANDLER(cmdUPDATE_KEY, on_cmdUPDATE_KEY)
38  MESSAGE_HANDLER(cmdUPDATE_KEY_ERROR, on_cmdUPDATE_KEY_ERROR)
39  MESSAGE_HANDLER(cmdDELETE_KEY, on_cmdDELETE_KEY)
40  MESSAGE_HANDLER(cmdCUSTOM_CMD, on_cmdCUSTOM_CMD)
41  END_MSG_MAP()
42 
43  // gives the possibility to register a callback, which will be called when a user task is executed
44  void registerOnNewUserTaskCallback(handlerOnNewUserTaks_t _callback)
45  {
46  m_onNewUserTaskCallback = _callback;
47  }
48 
49  private:
50  // Message Handlers
51  bool on_cmdREPLY_HANDSHAKE_OK(
54  bool on_cmdGET_HOST_INFO(
57  bool on_cmdBINARY_ATTACHMENT_RECEIVED(
62  bool on_cmdASSIGN_USER_TASK(
64  bool on_cmdACTIVATE_AGENT(
66  bool on_cmdSTOP_USER_TASK(
69  bool on_cmdUPDATE_KEY_ERROR(
73 
74  public:
75  uint64_t getTaskID() const
76  {
77  return m_taskID;
78  }
79 
80  private:
81  void readAgentIDFile();
82  void createAgentIDFile() const;
83  void deleteAgentIDFile() const;
84 
85  private:
86  uint64_t m_id;
87  std::string m_sUsrExe;
88  uint64_t m_taskID;
89  size_t m_taskIndex;
90  size_t m_collectionIndex;
91  std::string m_taskPath;
92  std::string m_groupName;
93  std::string m_collectionName;
94  std::string m_taskName;
95  handlerOnNewUserTaks_t m_onNewUserTaskCallback;
96  uint16_t m_connectionAttempts;
97  std::mutex m_activateMutex;
98  };
99  }
100 }
101 
102 #endif /* defined(__DDS__AGENT__CCommanderChannel__) */
Definition: ProtocolCommands.h:48
Definition: ProtocolCommands.h:44
#define REGISTER_DEFAULT_REMOTE_ID_STRING
Definition: BaseChannelImpl.h:133
uint64_t getTaskID() const
Definition: CommanderChannel.h:75
Definition: CommanderChannel.h:16
std::shared_ptr< SEmptyCmd > ptr_t
Definition: CommandAttachmentImpl.h:65
Definition: ProtocolCommands.h:29
Definition: ProtocolCommands.h:42
Definition: ProtocolCommands.h:32
#define END_MSG_MAP()
Definition: BaseChannelImpl.h:122
Definition: ProtocolCommands.h:35
Definition: dds-agent/src/AgentConnectionManager.h:16
Definition: ProtocolCommands.h:65
Definition: ProtocolCommands.h:53
on_cmdSIMPLE_MSG MESSAGE_HANDLER(cmdGET_HOST_INFO, on_cmdGET_HOST_INFO) MESSAGE_HANDLER(cmdSHUTDOWN
Definition: ProtocolCommands.h:50
Definition: ProtocolCommands.h:49
Definition: BaseChannelImpl.h:40
BEGIN_MSG_MAP(CCommanderChannel) MESSAGE_HANDLER(cmdSIMPLE_MSG
Definition: ProtocolCommands.h:45
Definition: ProtocolCommands.h:54
Definition: ProtocolCommands.h:40
Definition: ProtocolCommands.h:55