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

Configuration for ring buffer behavior. More...

#include <ring_buffer.h>

Collaboration diagram for kcenon::monitoring::ring_buffer_config:
Collaboration graph

Public Member Functions

common::VoidResult validate () const
 Validate ring buffer configuration.
 

Public Attributes

size_t capacity = 8192
 
bool overwrite_old = true
 
size_t batch_size = 64
 
std::chrono::milliseconds gc_interval {1000}
 

Detailed Description

Configuration for ring buffer behavior.

Definition at line 36 of file ring_buffer.h.

Member Function Documentation

◆ validate()

common::VoidResult kcenon::monitoring::ring_buffer_config::validate ( ) const
inline

Validate ring buffer configuration.

Definition at line 45 of file ring_buffer.h.

45 {
46 if (capacity == 0 || (capacity & (capacity - 1)) != 0) {
47 return common::VoidResult::err(error_info(monitoring_error_code::invalid_configuration,
48 "Capacity must be a power of 2").to_common_error());
49 }
50
51 if (batch_size == 0 || batch_size > capacity) {
52 return common::VoidResult::err(error_info(monitoring_error_code::invalid_configuration,
53 "Invalid batch size").to_common_error());
54 }
55
56 return common::ok();
57 }

References batch_size, capacity, and kcenon::monitoring::invalid_configuration.

Referenced by TEST_F().

Here is the caller graph for this function:

Member Data Documentation

◆ batch_size

size_t kcenon::monitoring::ring_buffer_config::batch_size = 64

◆ capacity

◆ gc_interval

std::chrono::milliseconds kcenon::monitoring::ring_buffer_config::gc_interval {1000}

Definition at line 40 of file ring_buffer.h.

40{1000}; // Garbage collection interval

◆ overwrite_old

bool kcenon::monitoring::ring_buffer_config::overwrite_old = true

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