Go to the documentation of this file.
8 #ifndef RTCKT_TELSUB_OPERATIONALLOGIC_HPP
9 #define RTCKT_TELSUB_OPERATIONALLOGIC_HPP
71 std::unique_ptr<CorrelatorIf>&& correlator,
72 std::unique_ptr<ShmPublisherIf>&& shm_publisher);
99 enum class State : int { Idle=0, Run, Exit };
104 void ProcessingLoop();
108 void MonitoringLoop();
125 std::mutex
mutable m_error_mutex;
126 std::error_code m_last_error;
127 uint64_t m_error_count;
128 std::thread m_monitoring_thread;
134 std::atomic<State> m_requested_state;
135 std::unique_ptr<CorrelatorIf> m_correlator;
136 std::unique_ptr<ShmPublisherIf> m_shm_publisher;
137 std::thread m_processing_thread;
142 #endif // #ifndef RTCKT_TELSUB_OPERATIONALLOGIC_HPP
std::error_code GetLastError() const RTCTK_NOEXCEPT override
Definition: operationalLogic.cpp:68
Definition: operationalLogicIf.hpp:55
OperationalLogic(OperationalParams params, std::unique_ptr< CorrelatorIf > &&correlator, std::unique_ptr< ShmPublisherIf > &&shm_publisher)
Definition: operationalLogic.cpp:19
Declares OperationalLogicIf.
Definition: businessLogic.cpp:35
Definition: operationalLogicIf.hpp:37
#define RTCTK_NOEXCEPT
Definition: config.hpp:12
uint64_t GetErrorCount() const RTCTK_NOEXCEPT override
Definition: operationalLogic.cpp:73
void IdleAsync() RTCTK_NOEXCEPT override
Definition: operationalLogic.cpp:64
void RunAsync() RTCTK_NOEXCEPT override
Definition: operationalLogic.cpp:56
~OperationalLogic()
Definition: operationalLogic.cpp:43
Definition: operationalLogic.hpp:64