Motion Master
|
#include <monitor_machine.h>
Public Member Functions | |
MonitorMachine (VirtualDeviceManager &vdm, ctpl::thread_pool &thread_pool, Notifier ¬ifier, moodycamel::ReaderWriterQueue< OutgoingMachineMessage > &outgoing_machine_message_queue) | |
~MonitorMachine () override | |
void | execute (uint64_t pending_signals) override |
Execute the machine. More... | |
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. More... | |
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) More... | |
![]() | |
void | add_message (IncomingMachineMessage &incoming_machine_message) |
Add a new incoming machine message to the queue. More... | |
virtual void | execute (uint64_t pending_signals)=0 |
Execute the machine. More... | |
virtual void | abort_client_requests (const std::string &connection_id)=0 |
Abort all of the requests a certain client has issues. More... | |
bool | command_workers_done () |
Check if all started Command Workers are done. More... | |
virtual bool | done ()=0 |
Check if all of the machine started processes are done (including the Command Workers) More... | |
Friends | |
class | CommandWorker |
Additional Inherited Members | |
![]() | |
Machine (VirtualDeviceManager &vdm, ctpl::thread_pool &thread_pool, Notifier ¬ifier, moodycamel::ReaderWriterQueue< 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. More... | |
void | send_response (MachineMessage::Protocol protocol, std::string connection_id, motionmaster::MotionMasterMessage &message) |
Send the response (Status protobuf message) to the proper client. More... | |
![]() | |
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, | ||
moodycamel::ReaderWriterQueue< 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.
|
friend |