3#include <readerwriterqueue/readerwriterqueue.h>
35 virtual void execute(uint64_t pending_signals) = 0;
68 moodycamel::ReaderWriterQueue<OutgoingMachineMessage>
69 &outgoing_machine_message_queue);
101 std::string connection_id,
102 motionmaster::MotionMasterMessage &message);
105 moodycamel::ReaderWriterQueue<OutgoingMachineMessage>
106 &outgoing_machine_message_queue_;
107 std::list<CommandWorker *> command_workers_;
Definition: command_worker.h:17
Definition: incoming_machine_message.h:5
Protocol
Definition: machine_message.h:9
Notifier & notifier_
Definition: machine.h:76
void process_command_workers(std::function< void(CommandWorker *)> process=nullptr)
Process all of the available Command Workers.
Definition: machine.cc:30
ctpl::thread_pool & thread_pool_
Definition: machine.h:74
VirtualDeviceManager & vdm_
Definition: machine.h:73
virtual void abort_client_requests(const std::string &connection_id)=0
Abort all of the requests a certain client has issues.
Definition: machine.cc:70
virtual ~Machine()
Definition: machine.cc:15
virtual bool done()=0
Check if all of the machine started processes are done (including the Command Workers)
std::queue< IncomingMachineMessage > incoming_message_queue_
Definition: machine.h:75
void send_response(MachineMessage::Protocol protocol, std::string connection_id, motionmaster::MotionMasterMessage &message)
Send the response (Status protobuf message) to the proper client.
Definition: machine.cc:80
virtual void execute(uint64_t pending_signals)=0
Execute the machine.
void start_command_worker(IncomingMachineMessage &incoming_machine_message)
Definition: machine.cc:61
void add_message(IncomingMachineMessage &incoming_machine_message)
Add a new incoming machine message to the queue.
Definition: machine.cc:57
bool command_workers_done()
Check if all started Command Workers are done.
Definition: machine.cc:78
Definition: notifier.h:10
Definition: virtual_device_manager.h:16