Motion Master
|
#include <monitor_machine.h>
Public Member Functions | |
MonitorMachine (VirtualDeviceManager &vdm, ctpl::thread_pool &thread_pool, Notifier ¬ifier, mm::core::containers::ThreadSafeQueue< OutgoingMachineMessage > &outgoing_machine_message_queue) | |
~MonitorMachine () override | |
void | execute (uint64_t pending_signals) override |
Execute the machine. | |
void | abort_all_client_requests () |
void | abort_client_requests (const std::string &connection_id) override |
Abort all of the requests a certain client has issues. | |
void | abort_client_requests_by_topic (const std::string &topic) |
void | abort_client_requests_by_device_address (uint32_t device_address) |
bool | done () override |
Check if all of the machine started processes are done (including the Command Workers) | |
mm::comm::spoe::Device * | get_ethernet_device (uint32_t device_address) |
Public Member Functions inherited from Machine | |
void | add_message (IncomingMachineMessage &incoming_machine_message) |
Add a new incoming machine message to the queue. | |
bool | command_workers_done () |
Check if all started Command Workers are done. |
Friends | |
class | CommandWorker |
Additional Inherited Members | |
Protected Member Functions inherited from Machine | |
Machine (VirtualDeviceManager &vdm, ctpl::thread_pool &thread_pool, Notifier ¬ifier, mm::core::containers::ThreadSafeQueue< OutgoingMachineMessage > &outgoing_machine_message_queue) | |
virtual | ~Machine () |
void | start_command_worker (IncomingMachineMessage &incoming_machine_message) |
void | process_command_workers (std::function< void(CommandWorker *)> process=nullptr) |
Process all of the available Command Workers. | |
void | send_response (MachineMessage::Protocol protocol, std::string connection_id, motionmaster::MotionMasterMessage &message) |
Send the response (Status protobuf message) to the proper client. | |
Protected Attributes inherited from Machine | |
VirtualDeviceManager & | vdm_ |
ctpl::thread_pool & | thread_pool_ |
std::queue< IncomingMachineMessage > | incoming_message_queue_ |
Notifier & | notifier_ |
MonitorMachine::MonitorMachine | ( | VirtualDeviceManager & | vdm, |
ctpl::thread_pool & | thread_pool, | ||
Notifier & | notifier, | ||
mm::core::containers::ThreadSafeQueue< OutgoingMachineMessage > & | outgoing_machine_message_queue ) |
|
override |
void MonitorMachine::abort_all_client_requests | ( | ) |
|
overridevirtual |
Abort all of the requests a certain client has issues.
connection_id | client connection ID |
Implements Machine.
void MonitorMachine::abort_client_requests_by_device_address | ( | uint32_t | device_address | ) |
void MonitorMachine::abort_client_requests_by_topic | ( | const std::string & | topic | ) |
|
overridevirtual |
Check if all of the machine started processes are done (including the Command Workers)
Implements Machine.
|
overridevirtual |
Execute the machine.
pending_signals | number of time intervals that passed since the last call to this function |
IMPORTANT: Process all of the monitored OD entries in order to inspect which ones have simply not yet been initially refreshed and which have completely failed to be refreshed. DO NOT try to get the values of non-refreshed ones!
Implements Machine.
|
inline |
|
friend |