13#ifndef RTCTK_RTCSUPERVISOR_RTCSUPERVISOR_HPP
14#define RTCTK_RTCSUPERVISOR_RTCSUPERVISOR_HPP
99 const std::
string& name,
System alert aggregation.
Alert Service interface.
Definition alertServiceIf.hpp:128
Models a single alert source that can be set or cleared.
Definition alertServiceIf.hpp:47
Component metrics interface.
Definition componentMetricsIf.hpp:85
This class provides a wrapper for a data point path.
Definition dataPointPath.hpp:74
Base interface for all OLDB adapters.
Definition oldbIf.hpp:25
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:27
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:41
Class for system status estimation.
Definition alertAggregator.hpp:27
Definition rtcMonitor.hpp:27
Class used to control multiple RtcObjects.
Definition rtcObjectController.hpp:45
Interface class for RtcObject.
Definition rtcObject.hpp:75
Definition rtcSupervisor.hpp:44
void LoadStaticConfig()
Retrievs static configuration from the Runtime Configuration Repository.
Definition rtcSupervisor.cpp:557
void ActivityEnabling(StopToken st) override
Definition rtcSupervisor.cpp:242
AlertSource m_command_alert
Definition rtcSupervisor.hpp:142
void ActivitySettingModes(StopToken st, const JsonPayload &args) override
Activity executed in its own thread that performs the mode setting.
Definition rtcSupervisor.cpp:402
JsonPayload ActionGetDeferredModes() override
Action is used for mode inspection and executed in the state machine thread.
Definition rtcSupervisor.cpp:390
void ActivityDisabling(StopToken st) override
Definition rtcSupervisor.cpp:260
bool GuardUpdatingAllowed(const JsonPayload &args) override
Definition rtcSupervisor.cpp:315
PersistentRepoIf & m_psr
Definition rtcSupervisor.hpp:128
std::mutex m_status_mutex
Definition rtcSupervisor.hpp:167
DataPointPath m_dp_path_init_alone
Definition rtcSupervisor.hpp:152
AlertSource m_oldb_alert
Definition rtcSupervisor.hpp:145
void ActivityWritingBack(StopToken st, const JsonPayload &args) override
Activity executed in its own thread that performs the writeback.
Definition rtcSupervisor.cpp:436
void ActionClearAlerts() override
Definition rtcSupervisor.cpp:323
RuntimeRepoIf & m_rtr
Definition rtcSupervisor.hpp:129
DataPointPath m_dp_path_enable_alone
Definition rtcSupervisor.hpp:153
StatusPublisher m_status_publisher
Definition rtcSupervisor.hpp:135
void ActionSetDeferredModes(const JsonPayload &args) override
Action is executed in the state machine thread and it performs deferred mode setting.
Definition rtcSupervisor.cpp:394
bool m_update_alone
Definition rtcSupervisor.hpp:164
std::vector< std::unique_ptr< RtcObjectIf > > MakeRtcObjects()
Constructs RtcObjects, called during Initialisation.
Definition rtcSupervisor.cpp:451
DataPointPath m_dp_path_disable_alone
Definition rtcSupervisor.hpp:154
bool m_init_alone
Definition rtcSupervisor.hpp:161
void SetStatus(const std::string &status)
Sets and publishes overall system status.
Definition rtcSupervisor.cpp:526
bool m_enable_alone
Definition rtcSupervisor.hpp:162
const std::string m_name
Definition rtcSupervisor.hpp:125
std::vector< std::unique_ptr< RtcObjectIf > > m_objects
Definition rtcSupervisor.hpp:148
log4cplus::Logger & m_logger
Definition rtcSupervisor.hpp:122
JsonPayload ActionGetAvailableModes() override
Action is used for mode inspection and executed in the state machine thread.
Definition rtcSupervisor.cpp:377
std::string m_status
Definition rtcSupervisor.hpp:170
void ActivityInitialising(StopToken st) override
Definition rtcSupervisor.cpp:114
std::string GetStatus()
Returns the overall system status.
Definition rtcSupervisor.cpp:548
void MonitorCycle() noexcept
Performs one cycle of async monitoring of the components.
Definition rtcSupervisor.cpp:498
std::unique_ptr< RtcObjectController > m_object_controller
Definition rtcSupervisor.hpp:149
void ActivityStarting(StopToken st) override
Definition rtcSupervisor.cpp:82
void ActivityRecovering(StopToken st) override
Activity executed in its own thread that performs the error recovery.
Definition rtcSupervisor.cpp:344
bool m_disable_alone
Definition rtcSupervisor.hpp:163
JsonPayload ActionGetActiveModes() override
Action is used for mode inspection and executed in the state machine thread.
Definition rtcSupervisor.cpp:386
OldbIf & m_oldb
Definition rtcSupervisor.hpp:130
std::unique_ptr< AlertAggregator > m_alert_aggregator
Definition rtcSupervisor.hpp:187
std::string ActionGetStatus() override
Action is used for system status inspection and is executed in the state machine thread.
Definition rtcSupervisor.cpp:282
DataPointPath m_dp_path_update_alone
Definition rtcSupervisor.hpp:155
AlertSource m_heartbeat_alert
Definition rtcSupervisor.hpp:139
std::unique_ptr< RtcMonitor > m_monitor_thread
Definition rtcSupervisor.hpp:181
AlertServiceIf & m_alerts
Definition rtcSupervisor.hpp:132
RtcSupervisor(const std::string &comp_name, ServiceContainer &services)
Definition rtcSupervisor.cpp:30
ServiceDiscovery & m_service_discovery
Definition rtcSupervisor.hpp:133
ComponentMetricsIf & m_metrics
Definition rtcSupervisor.hpp:131
bool GuardWritingBackAllowed(const JsonPayload &args) override
Determines if writeback is possible at this time with the provided argument.
Definition rtcSupervisor.cpp:441
PopulateConfig m_popcfg
Definition rtcSupervisor.hpp:136
void OnStateEventReceived(const taiclock::TaiClock::time_point, const std::string &name, const std::string &state) noexcept
Called on State Event subscription.
Definition rtcSupervisor.cpp:513
std::unique_ptr< StatusEstimator > m_status_estimator
Definition rtcSupervisor.hpp:178
std::vector< elt::mal::Uri > GetPubSubUris()
Gets Pub/Sub URIs of superivsord compoonents.
Definition rtcSupervisor.cpp:483
std::unique_ptr< StateSubscriber > m_state_subscriber
Definition rtcSupervisor.hpp:184
std::map< std::string, std::string > m_deferred_modes
Definition rtcSupervisor.hpp:173
virtual ~RtcSupervisor()
Definition rtcSupervisor.cpp:70
DataPointPath m_dp_path_status
Definition rtcSupervisor.hpp:158
void ActivityUpdating(StopToken st, const JsonPayload &args) override
Definition rtcSupervisor.cpp:290
bool GuardSettingModesAllowed(const JsonPayload &args) override
Determines if set mode is possible at this time with the provided argument.
Definition rtcSupervisor.cpp:426
void LoadDynamicConfig()
Retrievs static configuration from the Runtime Configuration Repository.
Definition rtcSupervisor.cpp:566
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
Header file for ComponentMetricsIf.
Definition commandReplier.cpp:22
rad::StopToken StopToken
Definition stopToken.hpp:20
nlohmann::json JsonPayload
Type requirements:
Definition jsonPayload.hpp:25
elt::mal::future< std::string > InjectReqRepEvent(StateMachineEngine &engine)
Definition malEventInjector.hpp:23
Definition rtcSupervisor.cpp:24
Supervisory< RtcComponent > Super
Definition rtcSupervisor.hpp:42
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'.