RTC Toolkit  0.1.0-alpha
rtcSupervisor.hpp
Go to the documentation of this file.
1 
9 #ifndef RTCTK_RTCSUPERVISOR_RTCSUPERVISOR_HPP_
10 #define RTCTK_RTCSUPERVISOR_RTCSUPERVISOR_HPP_
11 
13 #include <string> // TODO deleteme once bug is fixed
14 #include <vector> // TODO deleteme once bug is fixed
20 #include <mutex>
21 
22 
23 
24 // DOR, added to example
26 #include "rtcMonitor.hpp"
27 
28 
29 namespace rtctk::rtcSupervisor {
30 
32  {
33  friend class RtcMonitor;
34  public:
36 
37  virtual ~RtcSupervisor();
38 
39  // activities
49 
50  // guards
52 
53  void InError(bool flag, const std::string why);
54  protected:
59  std::mutex &GlobalMutex();
60  std::mutex m_global_mutex;
61 
65  void MonitorCycle();
66 
70  const std::string name;
71 
79 
84  std::shared_ptr<rtctk::componentFramework::StateSubscriber> m_state_subscriber;
85 
89  void OnStateEventReceived(const double timestamp,
90  const std::string& name, const std::string& state);
91 
93  std::string m_disp_state;
94  std::string m_gstate;
95  std::string m_gsubstate;
96  bool m_gerror;
97  std::string m_gwho_is_in_error;
98  void PublishGState();
99 
104 
105 
109  void LoadStaticConfig();
110  void LoadDynamicConfig();
111 
116 
117  };
118 
119 } // closing namespace
120 
121 #endif
serviceContainer.hpp
A container that can hold any type of service.
rtctk::rtcSupervisor
Definition: rtcCommandRequest.hpp:17
rtctk::rtcSupervisor::RtcSupervisor::m_init_alone
bool m_init_alone
Definition: rtcSupervisor.hpp:112
rtctk::rtcSupervisor::RtcSupervisor::svc
rtctk::componentFramework::ServiceDiscovery & svc
Definition: rtcSupervisor.hpp:77
rtctk::rtcSupervisor::RtcSupervisor::m_gwho_is_in_error
std::string m_gwho_is_in_error
Definition: rtcSupervisor.hpp:97
rtctk::rtcSupervisor::RtcSupervisor::Starting
void Starting(rtctk::componentFramework::StopToken st) override
Definition: rtcSupervisor.cpp:50
rtctk::rtcSupervisor::RtcSupervisor::m_disp_state
std::string m_disp_state
currently evaluated global state etc
Definition: rtcSupervisor.hpp:93
rtcMonitor.hpp
Holds monitor thread for asynch ping of supervised objects.
rtctk::rtcSupervisor::RtcSupervisor::Running
void Running(rtctk::componentFramework::StopToken st) override
Definition: rtcSupervisor.cpp:339
serviceDiscovery.hpp
Class that implements a very basic service discover mechanism.
rtctk::componentFramework::RunnableStateMachineLogicIf
Definition: runnableStateMachineLogicIf.hpp:26
rtctk::componentFramework::ServiceDiscovery
Definition: serviceDiscovery.hpp:25
rtctk::rtcSupervisor::RtcSupervisor::Disabling
void Disabling(rtctk::componentFramework::StopToken st) override
Definition: rtcSupervisor.cpp:246
rtctk::componentFramework::StopToken
rad::StopToken StopToken
Definition: stopToken.hpp:16
rtctk::rtcSupervisor::RtcSupervisor::m_gstate
std::string m_gstate
Definition: rtcSupervisor.hpp:94
rtctk::rtcSupervisor::RtcSupervisor::OnStateEventReceived
void OnStateEventReceived(const double timestamp, const std::string &name, const std::string &state)
Definition: rtcSupervisor.cpp:485
rtcObjectConfig.hpp
Config of objects and command lists.
rtctk::rtcSupervisor::RtcSupervisor::m_state_subscriber
std::shared_ptr< rtctk::componentFramework::StateSubscriber > m_state_subscriber
Definition: rtcSupervisor.hpp:84
rtctk::rtcSupervisor::RtcSupervisor::RtcSupervisor
RtcSupervisor(const std::string &comp_name, rtctk::componentFramework::ServiceContainer &services)
Definition: rtcSupervisor.cpp:32
rtctk::rtcSupervisor::RtcSupervisor::m_disable_alone
bool m_disable_alone
Definition: rtcSupervisor.hpp:115
rtctk::rtcSupervisor::RtcSupervisor::m_enable_alone
bool m_enable_alone
Definition: rtcSupervisor.hpp:113
rtctk::rtcSupervisor::RtcSupervisor::Enabling
void Enabling(rtctk::componentFramework::StopToken st) override
Definition: rtcSupervisor.cpp:211
rtctk::rtcSupervisor::RtcObjectConfig
Definition: rtcObjectConfig.hpp:49
rtctk::rtcSupervisor::RtcSupervisor::PublishGState
void PublishGState()
Definition: rtcSupervisor.cpp:500
rtctk::componentFramework::OldbApiIf
Definition: oldbApiIf.hpp:18
rtctk::rtcSupervisor::RtcSupervisor::GoingIdle
void GoingIdle(rtctk::componentFramework::StopToken st) override
Definition: rtcSupervisor.cpp:310
rtctk::componentFramework::Payload
std::string Payload
Definition: runnableStateMachineLogicIf.hpp:17
rtctk::componentFramework::ServiceContainer
Definition: serviceContainer.hpp:31
rtctk::rtcSupervisor::RtcSupervisor::m_gerror
bool m_gerror
Definition: rtcSupervisor.hpp:96
rtctk::rtcSupervisor::RtcSupervisor::m_mon
RtcMonitor m_mon
Definition: rtcSupervisor.hpp:103
rtctk::rtcSupervisor::RtcSupervisor::m_global_mutex
std::mutex m_global_mutex
Definition: rtcSupervisor.hpp:60
rtctk::rtcSupervisor::RtcSupervisor::LoadStaticConfig
void LoadStaticConfig()
Definition: rtcSupervisor.cpp:535
rtctk::componentFramework::RuntimeRepoApiIf
Definition: runtimeRepoApiIf.hpp:59
rtctk::rtcSupervisor::RtcSupervisor
Definition: rtcSupervisor.hpp:32
rtctk::rtcSupervisor::RtcSupervisor::m_gsubstate
std::string m_gsubstate
Definition: rtcSupervisor.hpp:95
rtctk::rtcSupervisor::RtcSupervisor::oldb
rtctk::componentFramework::OldbApiIf & oldb
Definition: rtcSupervisor.hpp:78
rtctk::rtcSupervisor::RtcSupervisor::Recovering
void Recovering(rtctk::componentFramework::StopToken st) override
Definition: rtcSupervisor.cpp:179
rtctk::rtcSupervisor::RtcSupervisor::services
rtctk::componentFramework::ServiceContainer & services
Definition: rtcSupervisor.hpp:75
rtctk::rtcSupervisor::RtcSupervisor::Updating
void Updating(rtctk::componentFramework::StopToken st, rtctk::componentFramework::Payload args) override
Definition: rtcSupervisor.cpp:368
fakeOldbAdapter.hpp
Header file needed to instantiate FakeOldbAdapter in test components.
stateSubscriber.hpp
Subscribes to stdif state topic via MAL.
rtctk::rtcSupervisor::RtcSupervisor::IsUpdatingAllowed
bool IsUpdatingAllowed(rtctk::componentFramework::Payload args) override
Definition: rtcSupervisor.cpp:398
runtimeRepoApiIf.hpp
Header file for RuntimeRepoApiIf, which defines the API for RuntimeRepoAdapters.
rtctk::rtcSupervisor::RtcSupervisor::GlobalMutex
std::mutex & GlobalMutex()
Ensure exclusion from monitor thread or other threads which may be sending commands Use with std::sco...
Definition: rtcSupervisor.cpp:427
rtctk::rtcSupervisor::RtcSupervisor::InError
void InError(bool flag, const std::string why)
Definition: rtcSupervisor.cpp:467
rtctk::rtcSupervisor::RtcSupervisor::Initialising
void Initialising(rtctk::componentFramework::StopToken st) override
Definition: rtcSupervisor.cpp:101
rtctk::rtcSupervisor::RtcSupervisor::m_update_alone
bool m_update_alone
Definition: rtcSupervisor.hpp:114
runnableStateMachineLogicIf.hpp
Life-Cycle Interface of the Runnable State Machine.
rtctk::rtcSupervisor::RtcSupervisor::~RtcSupervisor
virtual ~RtcSupervisor()
Definition: rtcSupervisor.cpp:44
rtctk::rtcSupervisor::RtcSupervisor::MonitorCycle
void MonitorCycle()
Perform one cycle of async monitoring of the components.
Definition: rtcSupervisor.cpp:442
rtctk::rtcSupervisor::RtcSupervisor::GoingRunning
void GoingRunning(rtctk::componentFramework::StopToken st) override
Definition: rtcSupervisor.cpp:281
rtctk::rtcSupervisor::RtcSupervisor::LoadDynamicConfig
void LoadDynamicConfig()
Definition: rtcSupervisor.cpp:544
rtctk::rtcSupervisor::RtcMonitor
Definition: rtcMonitor.hpp:19
rtctk::rtcSupervisor::RtcSupervisor::m_object_config
RtcObjectConfig m_object_config
Definition: rtcSupervisor.hpp:83
rtctk::rtcSupervisor::RtcSupervisor::name
const std::string name
identity
Definition: rtcSupervisor.hpp:70
rtctk::rtcSupervisor::RtcSupervisor::rtr
rtctk::componentFramework::RuntimeRepoApiIf & rtr
Definition: rtcSupervisor.hpp:76