12#ifndef RTCTK_RTCSUPERVISOR_RTCSUPERVISOR_HPP
13#define RTCTK_RTCSUPERVISOR_RTCSUPERVISOR_HPP
39using namespace rtctk::componentFramework;
103 const
std::
string& name,
104 const
std::
string& state) noexcept;
System alert aggregation.
Alert Service interface.
Definition alertServiceIf.hpp:138
Models a single alert source that can be set or cleared.
Definition alertServiceIf.hpp:47
Component metrics interface.
Definition componentMetricsIf.hpp:163
This class provides a wrapper for a data point path.
Definition dataPointPath.hpp:76
Base interface for all OLDB adapters.
Definition oldbIf.hpp:24
Base interface for all Persistent Configuration Repository adapters.
Definition persistentRepoIf.hpp:24
A utility class used to populate the Runtime Configuration Repository.
Definition populateConfig.hpp:45
Base interface for all Runtime Configuration Repository adapters.
Definition runtimeRepoIf.hpp:26
Container class that holds services of any type.
Definition serviceContainer.hpp:38
Class that implements a very basic service discovery mechanism.
Definition serviceDiscovery.hpp:32
Class used to subscribe to state-changed-topic using MAL.
Definition stateSubscriber.hpp:40
Class for system status estimation.
Definition alertAggregator.hpp:27
Definition rtcMonitor.hpp:26
Class used to control multiple RtcObjects.
Definition rtcObjectController.hpp:44
Interface class for RtcObject.
Definition rtcObject.hpp:74
void LoadStaticConfig()
Retrievs static configuration from the Runtime Configuration Repository.
Definition rtcSupervisor.cpp:567
void ActivityEnabling(StopToken st) override
Definition rtcSupervisor.cpp:248
AlertSource m_command_alert
Definition rtcSupervisor.hpp:146
void ActivitySettingModes(StopToken st, const JsonPayload &args) override
Definition rtcSupervisor.cpp:408
JsonPayload ActionGetDeferredModes() override
Definition rtcSupervisor.cpp:396
void ActivityDisabling(StopToken st) override
Definition rtcSupervisor.cpp:266
bool GuardUpdatingAllowed(const JsonPayload &args) override
Definition rtcSupervisor.cpp:321
PersistentRepoIf & m_psr
Definition rtcSupervisor.hpp:132
std::mutex m_status_mutex
Definition rtcSupervisor.hpp:171
DataPointPath m_dp_path_init_alone
Definition rtcSupervisor.hpp:156
AlertSource m_oldb_alert
Definition rtcSupervisor.hpp:149
void ActivityWritingBack(StopToken st, const JsonPayload &args) override
Definition rtcSupervisor.cpp:442
void ActionClearAlerts() override
Definition rtcSupervisor.cpp:329
RuntimeRepoIf & m_rtr
Definition rtcSupervisor.hpp:133
DataPointPath m_dp_path_enable_alone
Definition rtcSupervisor.hpp:157
StatusPublisher m_status_publisher
Definition rtcSupervisor.hpp:139
void ActionSetDeferredModes(const JsonPayload &args) override
Definition rtcSupervisor.cpp:400
bool m_update_alone
Definition rtcSupervisor.hpp:168
std::vector< std::unique_ptr< RtcObjectIf > > MakeRtcObjects()
Constructs RtcObjects, called during Initialisation.
Definition rtcSupervisor.cpp:461
DataPointPath m_dp_path_disable_alone
Definition rtcSupervisor.hpp:158
bool m_init_alone
Definition rtcSupervisor.hpp:165
void SetStatus(const std::string &status)
Sets and publishes overall system status.
Definition rtcSupervisor.cpp:536
bool m_enable_alone
Definition rtcSupervisor.hpp:166
const std::string m_name
Definition rtcSupervisor.hpp:129
std::vector< std::unique_ptr< RtcObjectIf > > m_objects
Definition rtcSupervisor.hpp:152
log4cplus::Logger & m_logger
Definition rtcSupervisor.hpp:126
JsonPayload ActionGetAvailableModes() override
Definition rtcSupervisor.cpp:383
std::string m_status
Definition rtcSupervisor.hpp:174
void ActivityInitialising(StopToken st) override
Definition rtcSupervisor.cpp:119
std::string GetStatus()
Returns the overall system status.
Definition rtcSupervisor.cpp:558
void MonitorCycle() noexcept
Performs one cycle of async monitoring of the components.
Definition rtcSupervisor.cpp:508
virtual std::unique_ptr< StatusEstimator > MakeStatusEstimator()
Factory method for creating custom status estimator objects.
Definition rtcSupervisor.cpp:457
std::unique_ptr< RtcObjectController > m_object_controller
Definition rtcSupervisor.hpp:153
void ActivityStarting(StopToken st) override
Definition rtcSupervisor.cpp:87
void ActivityRecovering(StopToken st) override
Definition rtcSupervisor.cpp:350
bool m_disable_alone
Definition rtcSupervisor.hpp:167
JsonPayload ActionGetActiveModes() override
Definition rtcSupervisor.cpp:392
OldbIf & m_oldb
Definition rtcSupervisor.hpp:134
std::unique_ptr< AlertAggregator > m_alert_aggregator
Definition rtcSupervisor.hpp:191
std::string ActionGetStatus() override
Definition rtcSupervisor.cpp:288
DataPointPath m_dp_path_update_alone
Definition rtcSupervisor.hpp:159
AlertSource m_heartbeat_alert
Definition rtcSupervisor.hpp:143
std::unique_ptr< RtcMonitor > m_monitor_thread
Definition rtcSupervisor.hpp:185
AlertServiceIf & m_alerts
Definition rtcSupervisor.hpp:136
RtcSupervisor(const std::string &comp_name, ServiceContainer &services)
Definition rtcSupervisor.cpp:35
ServiceDiscovery & m_service_discovery
Definition rtcSupervisor.hpp:137
ComponentMetricsIf & m_metrics
Definition rtcSupervisor.hpp:135
Super ComponentType
Definition rtcSupervisor.hpp:45
bool GuardWritingBackAllowed(const JsonPayload &args) override
Definition rtcSupervisor.cpp:447
PopulateConfig m_popcfg
Definition rtcSupervisor.hpp:140
void OnStateEventReceived(const taiclock::TaiClock::time_point, const std::string &name, const std::string &state) noexcept
Called on State Event subscription.
Definition rtcSupervisor.cpp:523
std::unique_ptr< StatusEstimator > m_status_estimator
Definition rtcSupervisor.hpp:182
std::vector< elt::mal::Uri > GetPubSubUris()
Gets Pub/Sub URIs of superivsord compoonents.
Definition rtcSupervisor.cpp:493
std::unique_ptr< StateSubscriber > m_state_subscriber
Definition rtcSupervisor.hpp:188
std::map< std::string, std::string > m_deferred_modes
Definition rtcSupervisor.hpp:177
virtual ~RtcSupervisor()
Definition rtcSupervisor.cpp:75
DataPointPath m_dp_path_status
Definition rtcSupervisor.hpp:162
void ActivityUpdating(StopToken st, const JsonPayload &args) override
Definition rtcSupervisor.cpp:296
bool GuardSettingModesAllowed(const JsonPayload &args) override
Definition rtcSupervisor.cpp:432
void LoadDynamicConfig()
Retrievs static configuration from the Runtime Configuration Repository.
Definition rtcSupervisor.cpp:576
Class for system status estimation.
Definition statusEstimator.hpp:62
Class used to publish status-changed-topic using MAL.
Definition statusPublisher.hpp:35
Header file for ComponentMetricsIf.
rad::StopToken StopToken
Definition stopToken.hpp:19
nlohmann::json JsonPayload
Type requirements:
Definition jsonPayload.hpp:24
Definition alertAggregator.cpp:18
Supervisory< RtcComponent > Super
Definition rtcSupervisor.hpp:41
Definition ddsSub.hpp:155
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:212
Lifecycle Extension that makes an RTC Component 'Supervisory'.