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

Notifier that invokes a callback function. More...

#include <alert_manager.h>

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

Public Types

using callback_func = std::function<void(const alert&)>
 
using group_callback_func = std::function<void(const alert_group&)>
 

Public Member Functions

 callback_notifier (std::string notifier_name, callback_func callback, group_callback_func group_callback=nullptr)
 Construct callback notifier.
 
std::string name () const override
 Get the name of this callback notifier.
 
common::VoidResult notify (const alert &a) override
 Send a notification for an alert.
 
common::VoidResult notify_group (const alert_group &group) override
 Send a notification for an alert group.
 
bool is_ready () const override
 Check if the callback notifier is ready.
 
- Public Member Functions inherited from kcenon::monitoring::alert_notifier
virtual ~alert_notifier ()=default
 

Private Attributes

std::string name_
 
callback_func callback_
 
group_callback_func group_callback_
 

Detailed Description

Notifier that invokes a callback function.

Allows custom notification handling via user-defined callbacks.

Definition at line 491 of file alert_manager.h.

Member Typedef Documentation

◆ callback_func

◆ group_callback_func

Constructor & Destructor Documentation

◆ callback_notifier()

kcenon::monitoring::callback_notifier::callback_notifier ( std::string notifier_name,
callback_func callback,
group_callback_func group_callback = nullptr )
inline

Construct callback notifier.

Parameters
notifier_nameName for this notifier
callbackCallback function for single alerts
group_callbackCallback function for alert groups (optional)
Examples
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/alert/alert_manager.h.

Definition at line 502 of file alert_manager.h.

505 : name_(std::move(notifier_name))
506 , callback_(std::move(callback))
507 , group_callback_(std::move(group_callback)) {}

Member Function Documentation

◆ is_ready()

bool kcenon::monitoring::callback_notifier::is_ready ( ) const
inlineoverridevirtual

Check if the callback notifier is ready.

Returns
True if a callback function has been configured

Implements kcenon::monitoring::alert_notifier.

Examples
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/alert/alert_manager.h.

Definition at line 542 of file alert_manager.h.

542{ return callback_ != nullptr; }

References callback_.

◆ name()

std::string kcenon::monitoring::callback_notifier::name ( ) const
inlineoverridevirtual

Get the name of this callback notifier.

Returns
The notifier name string

Implements kcenon::monitoring::alert_notifier.

Examples
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/alert/alert_manager.h.

Definition at line 513 of file alert_manager.h.

513{ return name_; }

References name_.

◆ notify()

common::VoidResult kcenon::monitoring::callback_notifier::notify ( const alert & a)
inlineoverridevirtual

Send a notification for an alert.

Parameters
aAlert to notify about
Returns
Result indicating success or failure

Implements kcenon::monitoring::alert_notifier.

Examples
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/alert/alert_manager.h.

Definition at line 515 of file alert_manager.h.

515 {
516 if (callback_) {
517 callback_(a);
518 return common::ok();
519 }
520 return common::VoidResult::err(error_info(monitoring_error_code::operation_failed, "No callback configured").to_common_error());
521 }

References callback_, and kcenon::monitoring::operation_failed.

Referenced by notify_group().

Here is the caller graph for this function:

◆ notify_group()

common::VoidResult kcenon::monitoring::callback_notifier::notify_group ( const alert_group & group)
inlineoverridevirtual

Send a notification for an alert group.

Parameters
groupAlert group to notify about
Returns
Result indicating success or failure

Implements kcenon::monitoring::alert_notifier.

Examples
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/alert/alert_manager.h.

Definition at line 523 of file alert_manager.h.

523 {
524 if (group_callback_) {
525 group_callback_(group);
526 return common::ok();
527 }
528 // Fall back to individual notifications
529 for (const auto& a : group.alerts) {
530 auto result = notify(a);
531 if (!result.is_ok()) {
532 return result;
533 }
534 }
535 return common::ok();
536 }
common::VoidResult notify(const alert &a) override
Send a notification for an alert.

References kcenon::monitoring::alert_group::alerts, group_callback_, and notify().

Here is the call graph for this function:

Member Data Documentation

◆ callback_

callback_func kcenon::monitoring::callback_notifier::callback_
private

◆ group_callback_

group_callback_func kcenon::monitoring::callback_notifier::group_callback_
private

◆ name_

std::string kcenon::monitoring::callback_notifier::name_
private

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