RTC Toolkit 4.0.2
Loading...
Searching...
No Matches
operationalLogicIf.hpp
Go to the documentation of this file.
1
12#ifndef RTCKT_TELSUB_OPERATIONALLOGICIF_HPP
13#define RTCKT_TELSUB_OPERATIONALLOGICIF_HPP
14#include <rtctk/config.hpp>
15
16#include <chrono>
17#include <optional>
18#include <string>
19
20#include <numapp/numapolicies.hpp>
21
23
24namespace rtctk::telSub {
25
34struct ShmParams {
35 std::string topic_name;
36 // cppcheck-suppress unusedStructMember
37 size_t capacity;
38 std::optional<numapp::MemPolicy> mem_policy;
39};
40
55 std::chrono::milliseconds close_detach_delay = std::chrono::milliseconds(0);
56 std::chrono::milliseconds correlator_poll_timeout = std::chrono::milliseconds(100);
57 std::chrono::milliseconds monitor_report_interval = std::chrono::milliseconds(500);
58 std::optional<numapp::NumaPolicies> processing_thread_policies = std::nullopt;
59 std::optional<numapp::NumaPolicies> monitoring_thread_policies = std::nullopt;
60};
61
69public:
71 }
72
76 struct LastError {
80 std::error_code correlation;
84 std::error_code publish;
85 };
86
94 virtual void RunAsync() RTCTK_NOEXCEPT = 0;
95
101 virtual void IdleAsync() RTCTK_NOEXCEPT = 0;
102
109
117 virtual uint64_t GetErrorCount() const RTCTK_NOEXCEPT = 0;
118};
119
120} // namespace rtctk::telSub
121
122#endif // RTCKT_TELSUB_OPERATIONALLOGICIF_HPP
Interface to the operational logic implementation.
Definition: operationalLogicIf.hpp:68
virtual LastError GetLastError() const RTCTK_NOEXCEPT=0
Return last recorded error.
virtual void IdleAsync() RTCTK_NOEXCEPT=0
Stop publishing.
virtual void RunAsync() RTCTK_NOEXCEPT=0
Start publishing.
virtual uint64_t GetErrorCount() const RTCTK_NOEXCEPT=0
Get current error count.
virtual ~OperationalLogicIf()
Definition: operationalLogicIf.hpp:70
Project-wide configuration header.
#define RTCTK_NOEXCEPT
Definition: config.hpp:63
Declares DdsWaitSetIf.
Definition: main.cpp:18
Describes last errors.
Definition: operationalLogicIf.hpp:76
std::error_code publish
Error from user blending function and publishing to SHM.
Definition: operationalLogicIf.hpp:84
std::error_code correlation
Error reading and correlating samples from DDS.
Definition: operationalLogicIf.hpp:80
Configuration parameters needed for operational logic.
Definition: operationalLogicIf.hpp:49
std::chrono::milliseconds monitor_report_interval
Definition: operationalLogicIf.hpp:57
std::chrono::milliseconds correlator_poll_timeout
Definition: operationalLogicIf.hpp:56
std::optional< numapp::NumaPolicies > processing_thread_policies
Definition: operationalLogicIf.hpp:58
std::chrono::milliseconds close_detach_delay
Amount of time to delay detaching the SHM from the point it is signalled as closed.
Definition: operationalLogicIf.hpp:55
std::optional< numapp::NumaPolicies > monitoring_thread_policies
Definition: operationalLogicIf.hpp:59
Shared memory configuration parameters.
Definition: operationalLogicIf.hpp:34
std::optional< numapp::MemPolicy > mem_policy
Definition: operationalLogicIf.hpp:38
std::string topic_name
Definition: operationalLogicIf.hpp:35
size_t capacity
Definition: operationalLogicIf.hpp:37