Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
Loading...
Searching...
No Matches
kcenon::monitoring::interface_observable Class Referenceabstract

Interface for components that can be observed. More...

#include <observer_interface.h>

Inheritance diagram for kcenon::monitoring::interface_observable:
Inheritance graph
Collaboration diagram for kcenon::monitoring::interface_observable:
Collaboration graph

Public Member Functions

virtual ~interface_observable ()=default
 
virtual common::VoidResult register_observer (std::shared_ptr< interface_monitoring_observer > observer)=0
 Register an observer for events.
 
virtual common::VoidResult unregister_observer (std::shared_ptr< interface_monitoring_observer > observer)=0
 Unregister an observer.
 
virtual void notify_metric (const metric_event &event)=0
 Notify all observers of a metric event.
 
virtual void notify_event (const system_event &event)=0
 Notify all observers of a system event.
 
virtual void notify_state_change (const state_change_event &event)=0
 Notify all observers of a state change.
 

Detailed Description

Interface for components that can be observed.

Provides the subject side of the observer pattern. Components implementing this interface can register observers and notify them of metric events, system events, and state changes.

Thread Safety:
Implementations MUST be thread-safe. Observer registration/unregistration and notification can occur from multiple threads simultaneously.

Definition at line 261 of file observer_interface.h.

Constructor & Destructor Documentation

◆ ~interface_observable()

virtual kcenon::monitoring::interface_observable::~interface_observable ( )
virtualdefault

Member Function Documentation

◆ notify_event()

virtual void kcenon::monitoring::interface_observable::notify_event ( const system_event & event)
pure virtual

Notify all observers of a system event.

Parameters
eventThe system event to broadcast

Implemented in test_collector.

Examples
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/interfaces/observer_interface.h.

◆ notify_metric()

virtual void kcenon::monitoring::interface_observable::notify_metric ( const metric_event & event)
pure virtual

Notify all observers of a metric event.

Parameters
eventThe metric event to broadcast

Implemented in test_collector.

Examples
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/interfaces/observer_interface.h.

◆ notify_state_change()

virtual void kcenon::monitoring::interface_observable::notify_state_change ( const state_change_event & event)
pure virtual

Notify all observers of a state change.

Parameters
eventThe state change event to broadcast

Implemented in test_collector.

Examples
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/interfaces/observer_interface.h.

◆ register_observer()

virtual common::VoidResult kcenon::monitoring::interface_observable::register_observer ( std::shared_ptr< interface_monitoring_observer > observer)
pure virtual

Register an observer for events.

Parameters
observerThe observer to register
Returns
Result indicating success or failure

Implemented in kcenon::monitoring::plugin_metric_collector, and test_collector.

Examples
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/interfaces/observer_interface.h.

◆ unregister_observer()

virtual common::VoidResult kcenon::monitoring::interface_observable::unregister_observer ( std::shared_ptr< interface_monitoring_observer > observer)
pure virtual

Unregister an observer.

Parameters
observerThe observer to unregister
Returns
Result indicating success or failure

Implemented in kcenon::monitoring::plugin_metric_collector, and test_collector.

Examples
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/interfaces/observer_interface.h.

The documentation for this class was generated from the following file: