13#ifndef RTCTK_RTCSUPERVISOR_RTCSUPERVISOR_HPP
14#define RTCTK_RTCSUPERVISOR_RTCSUPERVISOR_HPP
92 const std::
string& name,
93 const std::
string& state) noexcept;
98 void SetError(const std::
string& desc,
bool state = true);
108 void SetStatus(const std::
string& status);
This class provides a wrapper for a data point path.
Definition: dataPointPath.hpp:73
Base interface for all OLDB adapters.
Definition: oldbIf.hpp:26
Base interface for all Persistent Configuration Repository adapters.
Definition: persistentRepoIf.hpp:25
A utility class used to populate the Runtime Configuration Repository.
Definition: populateConfig.hpp:47
Base interface for all Runtime Configuration Repository adapters.
Definition: runtimeRepoIf.hpp:28
Container class that holds services of any type.
Definition: serviceContainer.hpp:39
Class that implements a very basic service discovery mechanism.
Definition: serviceDiscovery.hpp:33
Class used to subscribe to state-changed-topic using MAL.
Definition: stateSubscriber.hpp:40
Definition: rtcMonitor.hpp:27
Class used to control multiple RtcObjects.
Definition: rtcObjectController.hpp:44
Interface class for RtcObject.
Definition: rtcObject.hpp:69
Definition: rtcSupervisor.hpp:41
void LoadStaticConfig()
Retrievs static configuration from the Runtime Configuration Repository.
Definition: rtcSupervisor.cpp:535
void ActivityEnabling(StopToken st) override
Definition: rtcSupervisor.cpp:220
bool GuardUpdatingAllowed(JsonPayload const &args) override
Definition: rtcSupervisor.cpp:291
JsonPayload ActionGetDeferredModes() override
Action is used for mode inspection and executed in the state machine thread.
Definition: rtcSupervisor.cpp:326
void ActivityDisabling(StopToken st) override
Definition: rtcSupervisor.cpp:238
void ResetError()
Resets and publishes error flag and error info.
Definition: rtcSupervisor.cpp:500
void ActivityUpdating(StopToken st, JsonPayload const &args) override
Definition: rtcSupervisor.cpp:268
PersistentRepoIf & m_psr
Definition: rtcSupervisor.hpp:131
std::mutex m_status_mutex
Definition: rtcSupervisor.hpp:161
DataPointPath m_dp_path_init_alone
Definition: rtcSupervisor.hpp:144
RuntimeRepoIf & m_rtr
Definition: rtcSupervisor.hpp:132
DataPointPath m_dp_path_enable_alone
Definition: rtcSupervisor.hpp:145
bool GuardWritingBackAllowed(JsonPayload const &args) override
Determines if writeback is possible at this time with the provided argument.
Definition: rtcSupervisor.cpp:377
StatusPublisher m_status_publisher
Definition: rtcSupervisor.hpp:136
bool m_update_alone
Definition: rtcSupervisor.hpp:158
std::vector< std::unique_ptr< RtcObjectIf > > MakeRtcObjects()
Constructs RtcObjects, called during Initialisation.
Definition: rtcSupervisor.cpp:387
DataPointPath m_dp_path_disable_alone
Definition: rtcSupervisor.hpp:146
bool GuardSettingModesAllowed(JsonPayload const &args) override
Determines if set mode is possible at this time with the provided argument.
Definition: rtcSupervisor.cpp:362
bool m_init_alone
Definition: rtcSupervisor.hpp:155
void SetStatus(const std::string &status)
Sets and publishes overall system status.
Definition: rtcSupervisor.cpp:504
bool m_enable_alone
Definition: rtcSupervisor.hpp:156
const std::string m_name
Definition: rtcSupervisor.hpp:128
void SetError(const std::string &desc, bool state=true)
Sets and publishes error flag and error info.
Definition: rtcSupervisor.cpp:462
std::vector< std::unique_ptr< RtcObjectIf > > m_objects
Definition: rtcSupervisor.hpp:140
log4cplus::Logger & m_logger
Definition: rtcSupervisor.hpp:125
JsonPayload ActionGetAvailableModes() override
Action is used for mode inspection and executed in the state machine thread.
Definition: rtcSupervisor.cpp:313
std::string m_status
Definition: rtcSupervisor.hpp:164
void ActivityInitialising(StopToken st) override
Definition: rtcSupervisor.cpp:110
std::string GetStatus()
Returns the overall system status.
Definition: rtcSupervisor.cpp:526
void ActivityWritingBack(StopToken st, JsonPayload const &args) override
Activity executed in its own thread that performs the writeback.
Definition: rtcSupervisor.cpp:372
void MonitorCycle() noexcept
Performs one cycle of async monitoring of the components.
Definition: rtcSupervisor.cpp:434
std::unique_ptr< RtcObjectController > m_object_controller
Definition: rtcSupervisor.hpp:141
void ActivityStarting(StopToken st) override
Definition: rtcSupervisor.cpp:77
bool m_disable_alone
Definition: rtcSupervisor.hpp:157
std::string m_who_in_error
Definition: rtcSupervisor.hpp:166
JsonPayload ActionGetActiveModes() override
Action is used for mode inspection and executed in the state machine thread.
Definition: rtcSupervisor.cpp:322
OldbIf & m_oldb
Definition: rtcSupervisor.hpp:133
std::string ActionGetStatus() override
Action is used for system status inspection and is executed in the state machine thread.
Definition: rtcSupervisor.cpp:260
DataPointPath m_dp_path_error_who
Definition: rtcSupervisor.hpp:152
DataPointPath m_dp_path_update_alone
Definition: rtcSupervisor.hpp:147
std::unique_ptr< RtcMonitor > m_monitor_thread
Definition: rtcSupervisor.hpp:177
ServiceDiscovery & m_service_discovery
Definition: rtcSupervisor.hpp:134
void ActivitySettingModes(StopToken st, JsonPayload const &args) override
Activity executed in its own thread that performs the mode setting.
Definition: rtcSupervisor.cpp:338
void ActionSetDeferredModes(JsonPayload const &args) override
Action is executed in the state machine thread and it performs deferred mode setting.
Definition: rtcSupervisor.cpp:330
DataPointPath m_dp_path_error
Definition: rtcSupervisor.hpp:151
PopulateConfig m_popcfg
Definition: rtcSupervisor.hpp:137
std::unique_ptr< StatusEstimator > m_status_estimator
Definition: rtcSupervisor.hpp:174
void OnStateEventReceived(const double timestamp, const std::string &name, const std::string &state) noexcept
Called on State Event subscription.
Definition: rtcSupervisor.cpp:449
std::vector< elt::mal::Uri > GetPubSubUris()
Gets Pub/Sub URIs of superivsord compoonents.
Definition: rtcSupervisor.cpp:419
std::unique_ptr< StateSubscriber > m_state_subscriber
Definition: rtcSupervisor.hpp:180
std::map< std::string, std::string > m_deferred_modes
Definition: rtcSupervisor.hpp:169
virtual ~RtcSupervisor()
Definition: rtcSupervisor.cpp:65
DataPointPath m_dp_path_status
Definition: rtcSupervisor.hpp:150
std::optional< bool > m_error
Definition: rtcSupervisor.hpp:165
void LoadDynamicConfig()
Retrievs static configuration from the Runtime Configuration Repository.
Definition: rtcSupervisor.cpp:544
Class for system status estimation.
Definition: statusEstimator.hpp:74
Class used to publish status-changed-topic using MAL.
Definition: statusPublisher.hpp:36
Business logic interface for Supervisory mixin.
Definition: supervisory.hpp:220
Definition: commandReplier.cpp:22
nlohmann::json JsonPayload
Type requirements:
Definition: jsonPayload.hpp:25
rad::StopToken StopToken
Definition: stopToken.hpp:20
Definition: rtcSupervisor.cpp:21
Supervisory< RtcComponent > Super
Definition: rtcSupervisor.hpp:39
Header file for OldbIf, which defines the API for OldbAdapters.
Header file for PersistentRepoIf, which defines the API for PersistentRepoAdapter.
Header file for PopulateConfig used for populating the Runtime Configuration Repository.
Holds monitor thread for async ping of supervised objects.
Handles communication with many supervised RtcComponents.
Lifecycle Extension that makes an RTC Component 'Runnable'.
Header file for RuntimeRepoIf, which defines the API for RuntimeRepoAdapters.
A container that can hold any type of service.
Class that implements a very basic service discover mechanism.
Subscribes to stdif state topic via MAL.
System status estimation.
Publishes the stdif status topic via MAL.
Life cycle extension to make RtcComponent Supervisory.
Definition: supervisory.hpp:213
Lifecycle Extension that makes an RTC Component 'Supervisory'.