6 #ifndef __DDS__AGENT__CCommanderChannel__ 7 #define __DDS__AGENT__CCommanderChannel__ 40 using pidContainer_t = std::vector<pid_t>;
41 using stringContainer_t = std::vector<std::string>;
45 uint64_t _ProtocolHeaderID,
46 boost::asio::io_context& _intercomService);
79 bool on_cmdGET_HOST_INFO(
84 bool on_cmdBINARY_ATTACHMENT_RECEIVED(
93 bool on_cmdASSIGN_USER_TASK(
96 bool on_cmdACTIVATE_USER_TASK(
99 bool on_cmdSTOP_USER_TASK(
108 void send_cmdUPDATE_KEY(
111 bool on_cmdUSER_TASK_DONE(
116 void readAgentIDFile();
117 void createAgentIDFile()
const;
118 void deleteAgentIDFile()
const;
119 void onNewUserTask(uint64_t _slotID, pid_t _pid);
120 void terminateChildrenProcesses(pid_t _parentPid = 0);
121 void terminateChildrenProcesses(
const pidContainer_t& _children,
122 const std::chrono::steady_clock::time_point& _wait_until);
123 void enumChildProcesses(pid_t _forPid, stringContainer_t& _chilren);
124 void taskExited(uint64_t _taskID,
int _exitCode);
127 std::lock_guard<std::mutex> lock(m_mutexSlots);
128 auto it = m_slots.find(_slotID);
129 if (it == m_slots.end())
131 std::stringstream ss;
132 ss <<
"No matching slot for " << _slotID;
133 throw std::runtime_error(ss.str());
141 uint16_t m_connectionAttempts{ 1 };
142 std::mutex m_taskIDToSlotIDMapMutex;
143 std::map<uint64_t, uint64_t> m_taskIDToSlotIDMap;
145 std::mutex m_topoMutex;
149 std::mutex m_mutexSlots;
151 size_t m_nSlots{ 0 };
Definition: ProtocolCommands.h:49
Definition: BaseEventHandlersImpl.h:48
size_t m_collectionIndex
Definition: CommanderChannel.h:30
Definition: ProtocolCommands.h:45
Definition: ProtocolCommands.h:71
Definition: ProtocolCommands.h:68
#define REGISTER_DEFAULT_REMOTE_ID_STRING
Definition: BaseChannelImpl.h:190
std::string m_collectionName
Definition: CommanderChannel.h:33
std::string m_taskPath
Definition: CommanderChannel.h:31
slotId_t m_id
Definition: CommanderChannel.h:25
Definition: CommanderChannel.h:38
std::shared_ptr< SEmptyCmd > ptr_t
Definition: CommandAttachmentImpl.h:64
Definition: ProtocolCommands.h:30
std::map< slotId_t, SSlotInfo > container_t
Definition: CommanderChannel.h:23
Definition: ProtocolCommands.h:43
Definition: ProtocolCommands.h:33
REGISTER_DEFAULT_REMOTE_ID_STRING BEGIN_MSG_MAP(CCommanderChannel) MESSAGE_HANDLER(cmdREPLY
std::shared_ptr< CSMIntercomChannel > connectionPtr_t
Definition: BaseSMChannelImpl.h:191
CCommanderChannel(boost::asio::io_context &_service, uint64_t _ProtocolHeaderID, boost::asio::io_context &_intercomService)
Definition: CommanderChannel.cpp:26
#define END_MSG_MAP()
Definition: BaseChannelImpl.h:153
Definition: ProtocolCommands.h:36
Definition: AgentConnectionManager.h:13
Definition: ProtocolCommands.h:65
std::string m_groupName
Definition: CommanderChannel.h:32
taskId_t m_taskID
Definition: CommanderChannel.h:28
Definition: ProtocolCommands.h:55
Definition: TopoCore.h:25
REGISTER_DEFAULT_REMOTE_ID_STRING on_cmdREPLY on_cmdGET_HOST_INFO on_cmdBINARY_ATTACHMENT_RECEIVED on_cmdSET_ID on_cmdASSIGN_USER_TASK on_cmdSTOP_USER_TASK on_cmdCUSTOM_CMD on_cmdUSER_TASK_DONE END_MSG_MAP() public void setNumberOfSlots(size_t _nSlots)
Definition: CommanderChannel.cpp:86
Definition: ProtocolCommands.h:52
std::string m_sUsrExe
Definition: CommanderChannel.h:26
Definition: ProtocolCommands.h:51
Definition: BaseChannelImpl.h:40
Definition: ProtocolCommands.h:46
Definition: CommanderChannel.h:21
Definition: ProtocolCommands.h:41
Definition: ProtocolCommands.h:53
uint64_t slotId_t
Definition: CommanderChannel.h:18
pid_t m_pid
Definition: CommanderChannel.h:35
uint64_t taskId_t
Definition: CommanderChannel.h:19
std::string m_taskName
Definition: CommanderChannel.h:34
size_t m_taskIndex
Definition: CommanderChannel.h:29
REGISTER_DEFAULT_REMOTE_ID_STRING on_cmdREPLY MESSAGE_HANDLER(cmdSIMPLE_MSG, on_cmdSIMPLE_MSG) MESSAGE_HANDLER(cmdGET_HOST_INFO
std::string m_sUsrEnv
Definition: CommanderChannel.h:27