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

Base class for all events in the system. More...

#include <event_bus_interface.h>

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

Public Member Functions

virtual ~event_base ()=default
 
virtual std::string get_type_name () const =0
 Get the event type name.
 
std::chrono::steady_clock::time_point get_timestamp () const
 Get timestamp when event was created.
 
uint64_t get_id () const
 Get unique event ID.
 

Protected Member Functions

 event_base ()
 

Static Private Member Functions

static uint64_t generate_id ()
 

Private Attributes

std::chrono::steady_clock::time_point timestamp_
 
uint64_t id_
 

Detailed Description

Base class for all events in the system.

Provides common functionality for all events including automatic timestamp generation and unique ID assignment. All custom events should inherit from this class.

Thread Safety:
This class is thread-safe. The ID generation uses atomic operations, and the timestamp is captured at construction time.

Definition at line 106 of file event_bus_interface.h.

Constructor & Destructor Documentation

◆ ~event_base()

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

◆ event_base()

kcenon::monitoring::event_base::event_base ( )
inlineprotected

Member Function Documentation

◆ generate_id()

static uint64_t kcenon::monitoring::event_base::generate_id ( )
inlinestaticprivate
Examples
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/interfaces/event_bus_interface.h.

Definition at line 138 of file event_bus_interface.h.

138 {
139 static std::atomic<uint64_t> counter{0};
140 return counter.fetch_add(1, std::memory_order_relaxed);
141 }
@ counter
Monotonically increasing counter.

References kcenon::monitoring::counter.

◆ get_id()

uint64_t kcenon::monitoring::event_base::get_id ( ) const
inline

Get unique event ID.

Returns
Event ID
Examples
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/interfaces/event_bus_interface.h.

Definition at line 128 of file event_bus_interface.h.

128 {
129 return id_;
130 }

References id_.

◆ get_timestamp()

std::chrono::steady_clock::time_point kcenon::monitoring::event_base::get_timestamp ( ) const
inline

Get timestamp when event was created.

Returns
Event creation timestamp
Examples
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/interfaces/event_bus_interface.h.

Definition at line 120 of file event_bus_interface.h.

120 {
121 return timestamp_;
122 }

References timestamp_.

◆ get_type_name()

Member Data Documentation

◆ id_

uint64_t kcenon::monitoring::event_base::id_
private

◆ timestamp_

std::chrono::steady_clock::time_point kcenon::monitoring::event_base::timestamp_
private

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