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

Container for events with metadata. More...

#include <event_bus.h>

Collaboration diagram for kcenon::monitoring::event_envelope:
Collaboration graph

Public Member Functions

 event_envelope (std::type_index t, std::any p, event_priority pr)
 
bool operator< (const event_envelope &other) const
 

Public Attributes

std::type_index type
 
std::any payload
 
event_priority priority
 
std::chrono::steady_clock::time_point timestamp
 
uint64_t id
 

Static Private Member Functions

static uint64_t generate_id ()
 

Detailed Description

Container for events with metadata.

Definition at line 41 of file event_bus.h.

Constructor & Destructor Documentation

◆ event_envelope()

kcenon::monitoring::event_envelope::event_envelope ( std::type_index t,
std::any p,
event_priority pr )
inline
Examples
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/core/event_bus.h.

Definition at line 48 of file event_bus.h.

49 : type(t), payload(std::move(p)), priority(pr),
50 timestamp(std::chrono::steady_clock::now()),
51 id(generate_id()) {}
std::chrono::steady_clock::time_point timestamp
Definition event_bus.h:45

Member Function Documentation

◆ generate_id()

static uint64_t kcenon::monitoring::event_envelope::generate_id ( )
inlinestaticprivate
Examples
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/core/event_bus.h.

Definition at line 63 of file event_bus.h.

63 {
64 static std::atomic<uint64_t> counter{0};
65 return counter.fetch_add(1, std::memory_order_relaxed);
66 }
@ counter
Monotonically increasing counter.

References kcenon::monitoring::counter.

◆ operator<()

bool kcenon::monitoring::event_envelope::operator< ( const event_envelope & other) const
inline
Examples
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/core/event_bus.h.

Definition at line 53 of file event_bus.h.

53 {
54 // Higher priority events come first
55 if (priority != other.priority) {
56 return static_cast<int>(priority) < static_cast<int>(other.priority);
57 }
58 // For same priority, older events come first
59 return timestamp > other.timestamp;
60 }

References kcenon::monitoring::other, priority, and timestamp.

Member Data Documentation

◆ id

uint64_t kcenon::monitoring::event_envelope::id

◆ payload

std::any kcenon::monitoring::event_envelope::payload

◆ priority

event_priority kcenon::monitoring::event_envelope::priority

◆ timestamp

std::chrono::steady_clock::time_point kcenon::monitoring::event_envelope::timestamp

◆ type

std::type_index kcenon::monitoring::event_envelope::type

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