Motion Master
Loading...
Searching...
No Matches
notifier.h
Go to the documentation of this file.
1#pragma once
2
3#include <cstdint>
4#include <mutex>
5#include <queue>
6
8
9class Notifier {
10 public:
11 virtual ~Notifier() = default;
12
13 virtual void send_slave_warning(uint32_t device_address, int32_t device_id,
14 int32_t code,
15 const std::string& additional_info = "") = 0;
16 virtual void send_slave_error(uint32_t device_address, int32_t device_id,
17 int32_t code,
18 const std::string& additional_info = "") = 0;
19 virtual void send_status(motionmaster::MotionMasterMessage::Status* status,
20 std::string topic = "") = 0;
22 motionmaster::MotionMasterMessage::Status* status) = 0;
24 motionmaster::MotionMasterMessage::Status* status) = 0;
25
27 virtual void send_mm_state_slaves_found() = 0;
28 virtual void send_mm_state_initializing() = 0;
29 virtual void send_mm_state_initialized() = 0;
30 virtual void send_mm_state_deinitializing() = 0;
31 virtual void send_mm_state_deinitialized() = 0;
32 virtual void send_mm_state_terminating() = 0;
33
34 virtual bool has_notification() = 0;
35
49};
50
51class NotifierImpl : public Notifier {
52 public:
53 NotifierImpl() = default;
54 ~NotifierImpl() override = default;
55
56 void send_slave_warning(uint32_t device_address, int32_t device_id,
57 int32_t code,
58 const std::string& additional_info) override;
59 void send_slave_error(uint32_t device_address, int32_t device_id,
60 int32_t code,
61 const std::string& additional_info) override;
62 void send_status(motionmaster::MotionMasterMessage::Status* status,
63 std::string topic) override;
65 motionmaster::MotionMasterMessage::Status* status) override;
67 motionmaster::MotionMasterMessage::Status* status) override;
68
70 void send_mm_state_slaves_found() override;
71 void send_mm_state_initializing() override;
72 void send_mm_state_initialized() override;
73 void send_mm_state_deinitializing() override;
74 void send_mm_state_deinitialized() override;
75 void send_mm_state_terminating() override;
76
77 bool has_notification() override;
78
79 bool get_next_notification(OutgoingMachineMessage& message) override;
80
81 private:
82 std::mutex lock_;
83 std::queue<OutgoingMachineMessage> notifications_;
84};
Definition: notifier.h:51
void send_mm_state_initialized() override
Definition: notifier.cc:170
void send_slave_error(uint32_t device_address, int32_t device_id, int32_t code, const std::string &additional_info) override
Definition: notifier.cc:41
void send_mm_state_terminating() override
Definition: notifier.cc:225
void send_slave_warning(uint32_t device_address, int32_t device_id, int32_t code, const std::string &additional_info) override
Definition: notifier.cc:8
void send_monitoring_status(motionmaster::MotionMasterMessage::Status *status) override
Definition: notifier.cc:87
void send_mm_state_deinitializing() override
Definition: notifier.cc:188
bool has_notification() override
Definition: notifier.cc:243
bool get_next_notification(OutgoingMachineMessage &message) override
Get the next notification from the notification queue.
Definition: notifier.cc:245
void send_mm_state_waiting_for_slaves() override
Definition: notifier.cc:115
void send_mm_state_initializing() override
Definition: notifier.cc:152
NotifierImpl()=default
void send_mm_state_deinitialized() override
Definition: notifier.cc:207
~NotifierImpl() override=default
void send_status(motionmaster::MotionMasterMessage::Status *status, std::string topic) override
Definition: notifier.cc:74
void send_notification_status(motionmaster::MotionMasterMessage::Status *status) override
Definition: notifier.cc:101
void send_mm_state_slaves_found() override
Definition: notifier.cc:134
Definition: notifier.h:9
virtual void send_mm_state_initializing()=0
virtual void send_mm_state_initialized()=0
virtual void send_slave_error(uint32_t device_address, int32_t device_id, int32_t code, const std::string &additional_info="")=0
virtual ~Notifier()=default
virtual void send_mm_state_deinitializing()=0
virtual void send_mm_state_terminating()=0
virtual void send_status(motionmaster::MotionMasterMessage::Status *status, std::string topic="")=0
virtual void send_mm_state_waiting_for_slaves()=0
virtual bool get_next_notification(OutgoingMachineMessage &message)=0
Get the next notification from the notification queue.
virtual void send_slave_warning(uint32_t device_address, int32_t device_id, int32_t code, const std::string &additional_info="")=0
virtual bool has_notification()=0
virtual void send_mm_state_slaves_found()=0
virtual void send_monitoring_status(motionmaster::MotionMasterMessage::Status *status)=0
virtual void send_notification_status(motionmaster::MotionMasterMessage::Status *status)=0
virtual void send_mm_state_deinitialized()=0
Definition: outgoing_machine_message.h:5