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

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

#include <monitorable_interface.h>

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

Public Member Functions

virtual ~monitorable_interface ()=default
 
virtual common::Result< monitoring_dataget_monitoring_data () const =0
 Get current monitoring data from the component.
 
virtual std::string get_monitoring_id () const =0
 Get the component's monitoring identifier.
 
virtual bool is_monitoring_enabled () const
 Check if monitoring is enabled for this component.
 
virtual common::VoidResult set_monitoring_enabled (bool enable)
 Enable or disable monitoring.
 
virtual common::VoidResult reset_monitoring ()
 Reset monitoring counters and state.
 

Detailed Description

Interface for components that can be monitored.

This interface allows components to expose their internal state and metrics for monitoring purposes. It follows the pattern from thread_system for consistent monitoring across components.

Thread Safety:
Implementations should be thread-safe for the get_monitoring_data() method as it may be called from monitoring threads while the component is active.

Definition at line 265 of file monitorable_interface.h.

Constructor & Destructor Documentation

◆ ~monitorable_interface()

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

Member Function Documentation

◆ get_monitoring_data()

virtual common::Result< monitoring_data > kcenon::monitoring::monitorable_interface::get_monitoring_data ( ) const
pure virtual

Get current monitoring data from the component.

Returns
Result containing monitoring data or error

Implemented in test_monitorable_component.

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

◆ get_monitoring_id()

virtual std::string kcenon::monitoring::monitorable_interface::get_monitoring_id ( ) const
pure virtual

Get the component's monitoring identifier.

Returns
Unique identifier for this component

Implemented in kcenon::monitoring::monitorable_component.

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

◆ is_monitoring_enabled()

virtual bool kcenon::monitoring::monitorable_interface::is_monitoring_enabled ( ) const
inlinevirtual

Check if monitoring is enabled for this component.

Returns
true if monitoring is active

Reimplemented in kcenon::monitoring::monitorable_component.

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

Definition at line 285 of file monitorable_interface.h.

285 {
286 return true;
287 }

◆ reset_monitoring()

virtual common::VoidResult kcenon::monitoring::monitorable_interface::reset_monitoring ( )
inlinevirtual

Reset monitoring counters and state.

Returns
Result indicating success or error

Reimplemented in kcenon::monitoring::monitorable_component.

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

Definition at line 304 of file monitorable_interface.h.

304 {
305 // Default implementation - can be overridden
306 return common::ok();
307 }

◆ set_monitoring_enabled()

virtual common::VoidResult kcenon::monitoring::monitorable_interface::set_monitoring_enabled ( bool enable)
inlinevirtual

Enable or disable monitoring.

Parameters
enabletrue to enable, false to disable
Returns
Result indicating success or error

Reimplemented in kcenon::monitoring::monitorable_component.

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

Definition at line 294 of file monitorable_interface.h.

294 {
295 // Default implementation - can be overridden
296 (void)enable; // Suppress unused parameter warning
297 return common::ok();
298 }

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