RTC Toolkit 6.1.0-pre1
Loading...
Searching...
No Matches
genSubReaderListener.hpp
Go to the documentation of this file.
1
11#ifndef RTCTK_GENSUBREADERLISTENER_H
12#define RTCTK_GENSUBREADERLISTENER_H
13
15
16#include <atomic>
17#include <chrono>
18#include <string>
19
20// NOLINTNEXTLINE(google-global-names-in-headers): Private header
21using namespace rtctk::componentFramework;
22
28class GenSubReaderListener : public rtctk::componentFramework::DataReaderListener {
29public:
30 // Constructor
31 GenSubReaderListener(const char* name, uint16_t topic_id);
32
33 // Destructor
34 ~GenSubReaderListener() override = default;
35
36 void on_requested_deadline_missed(DataReader* reader,
37 const RequestedDeadlineMissedStatus& status) override;
38
39 void on_requested_incompatible_qos(DataReader* reader,
40 const RequestedIncompatibleQosStatus& status) override;
41
42 void on_liveliness_changed(DataReader* reader, const LivelinessChangedStatus& status) override;
43
44 void
45 on_subscription_matched(DataReader* reader, const SubscriptionMatchedStatus& status) override;
46
47 void on_sample_rejected(DataReader* reader, const SampleRejectedStatus& status) override;
48
49 void on_data_available(DataReader* reader) override;
50
51 void ProcessSamples(const rtctk::componentFramework::AgnosticTopicSeq& data_seq,
52 const SampleInfoSeq& info_seq);
53
54 void on_sample_lost(DataReader* reader, const SampleLostStatus& status) override;
55
56 long GetNumSamples() const {
57 return m_num_reads;
58 }
59
60 unsigned long GetLostSamples() const {
61 return m_lost_samples;
62 }
63
64 void Enable() {
65 m_enabled = true;
66 }
67
68 void Disable() {
69 m_enabled = false;
70 }
71
72 unsigned int GetIndex() const {
73 return m_topic_id;
74 }
75
76 const std::string& GetName() const {
77 return m_list_name;
78 }
79
80 static int GetSleepPeriod() {
81 return m_sleep_period;
82 }
83
84 static void SetSleepPeriod(int value) {
85 m_sleep_period = value;
86 }
87
88 static int GetCheckRamp() {
89 return m_check_ramp;
90 }
91
92 static void SetCheckRamp(bool value) {
93 m_check_ramp = value;
94 }
95
96 static const std::string& GetExpectedPayloadPattern() {
97 return m_expected_payload_pattern;
98 }
99
100 static void SetExpectedPayloadPattern(const std::string& value) {
101 m_expected_payload_pattern = value;
102 }
104 return m_expected_sample_id_increment;
105 }
106
107 static void SetExpectedSampleIdIncrement(uint32_t value) {
108 m_expected_sample_id_increment = value;
109 }
110
111private:
112 void CheckRamp(const rtctk::componentFramework::AgnosticTopic& sample);
113 void CheckExpectedPayloadPattern(const rtctk::componentFramework::AgnosticTopic& sample);
114
115 log4cplus::Logger& m_logger;
116 long m_num_reads;
117 unsigned long m_lost_samples;
118 std::string m_list_name;
119
120 std::uint32_t m_last_sample_id;
121 std::uint32_t m_sample_id;
122
123 std::chrono::high_resolution_clock::time_point m_start_time;
124 std::chrono::duration<double> m_elapsed_time;
125 // cppcheck-suppress-begin unusedStructMember
126 double m_sum_send_time;
127 float m_log_time;
128 bool m_is_first;
129 // cppcheck-suppress-end unusedStructMember
130
131 rtctk::componentFramework::AgnosticTopicSeq m_data_seq;
132 SampleInfoSeq m_info_seq;
133
134 unsigned int m_topic_id;
135 bool m_enabled;
136
137 static std::atomic<int> m_sleep_period;
138 static std::atomic<bool> m_check_ramp;
139 static std::atomic<uint32_t> m_expected_sample_id_increment;
140 static std::string m_expected_payload_pattern;
141};
142
143#endif // RTCTK_GENSUBREADERLISTENER_H
static int GetCheckRamp()
Definition genSubReaderListener.hpp:88
void Enable()
Definition genSubReaderListener.hpp:64
void on_liveliness_changed(DataReader *reader, const LivelinessChangedStatus &status) override
Definition genSubReaderListener.cpp:275
const std::string & GetName() const
Definition genSubReaderListener.hpp:76
static void SetExpectedPayloadPattern(const std::string &value)
Definition genSubReaderListener.hpp:100
void Disable()
Definition genSubReaderListener.hpp:68
void on_data_available(DataReader *reader) override
Definition genSubReaderListener.cpp:52
~GenSubReaderListener() override=default
void on_requested_incompatible_qos(DataReader *reader, const RequestedIncompatibleQosStatus &status) override
Definition genSubReaderListener.cpp:270
void on_requested_deadline_missed(DataReader *reader, const RequestedDeadlineMissedStatus &status) override
Definition genSubReaderListener.cpp:265
static int GetExpectedSampleIdIncrement()
Definition genSubReaderListener.hpp:103
static void SetSleepPeriod(int value)
Definition genSubReaderListener.hpp:84
static const std::string & GetExpectedPayloadPattern()
Definition genSubReaderListener.hpp:96
unsigned int GetIndex() const
Definition genSubReaderListener.hpp:72
static void SetCheckRamp(bool value)
Definition genSubReaderListener.hpp:92
static int GetSleepPeriod()
Definition genSubReaderListener.hpp:80
void ProcessSamples(const rtctk::componentFramework::AgnosticTopicSeq &data_seq, const SampleInfoSeq &info_seq)
Definition genSubReaderListener.cpp:154
void on_sample_rejected(DataReader *reader, const SampleRejectedStatus &status) override
Definition genSubReaderListener.cpp:314
GenSubReaderListener(const char *name, uint16_t topic_id)
Definition genSubReaderListener.cpp:34
void on_subscription_matched(DataReader *reader, const SubscriptionMatchedStatus &status) override
Definition genSubReaderListener.cpp:305
long GetNumSamples() const
Definition genSubReaderListener.hpp:56
static void SetExpectedSampleIdIncrement(uint32_t value)
Definition genSubReaderListener.hpp:107
unsigned long GetLostSamples() const
Definition genSubReaderListener.hpp:60
void on_sample_lost(DataReader *reader, const SampleLostStatus &status) override
Definition genSubReaderListener.cpp:326
Declares common DDS class.
Definition commandReplier.cpp:21