Common System 0.2.0
Common interfaces and patterns for system integration
Loading...
Searching...
No Matches
kcenon::common::interfaces::lambda_health_check Class Reference

Health check implementation using a lambda function. More...

#include <health_check.h>

Inheritance diagram for kcenon::common::interfaces::lambda_health_check:
Inheritance graph
Collaboration diagram for kcenon::common::interfaces::lambda_health_check:
Collaboration graph

Public Types

using check_function = std::function<health_check_result()>
 

Public Member Functions

 lambda_health_check (std::string name, health_check_type type, check_function check_fn, bool critical=true, std::chrono::milliseconds timeout=std::chrono::milliseconds{5000})
 Construct a lambda health check.
 
std::string get_name () const override
 Get the unique name of this health check.
 
health_check_type get_type () const override
 Get the type of this health check.
 
health_check_result check () override
 Perform the health check.
 
std::chrono::milliseconds get_timeout () const override
 Get timeout duration for this health check.
 
bool is_critical () const override
 Check if this health check is critical.
 
- Public Member Functions inherited from kcenon::common::interfaces::health_check
 health_check ()=default
 
virtual ~health_check ()=default
 
 health_check (const health_check &)=delete
 
health_checkoperator= (const health_check &)=delete
 
 health_check (health_check &&)=delete
 
health_checkoperator= (health_check &&)=delete
 

Private Attributes

std::string name_
 
health_check_type type_
 
check_function check_fn_
 
bool critical_
 
std::chrono::milliseconds timeout_
 

Detailed Description

Health check implementation using a lambda function.

This class allows creating health checks from lambda functions, useful for simple checks that don't require a full class hierarchy.

Example usage:

auto check = std::make_shared<lambda_health_check>(
"memory_check",
result.message = "Memory usage OK";
return result;
}
);
health_check_result check() override
Perform the health check.

Definition at line 173 of file health_check.h.

Member Typedef Documentation

◆ check_function

Constructor & Destructor Documentation

◆ lambda_health_check()

kcenon::common::interfaces::lambda_health_check::lambda_health_check ( std::string name,
health_check_type type,
check_function check_fn,
bool critical = true,
std::chrono::milliseconds timeout = std::chrono::milliseconds{5000} )
inline

Construct a lambda health check.

Parameters
nameHealth check name
typeHealth check type
check_fnFunction to execute for health check
criticalWhether this check is critical (default: true)
timeoutCheck timeout (default: 5 seconds)

Definition at line 185 of file health_check.h.

Member Function Documentation

◆ check()

health_check_result kcenon::common::interfaces::lambda_health_check::check ( )
inlineoverridevirtual

Perform the health check.

Returns
Health check result containing status and details

Implements kcenon::common::interfaces::health_check.

Definition at line 200 of file health_check.h.

200 {
201 if (!check_fn_) {
202 health_check_result result;
203 result.status = health_status::unknown;
204 result.message = "No check function configured";
205 return result;
206 }
207 return check_fn_();
208 }

References check_fn_, kcenon::common::interfaces::health_check_result::message, kcenon::common::interfaces::health_check_result::status, and kcenon::common::interfaces::unknown.

◆ get_name()

std::string kcenon::common::interfaces::lambda_health_check::get_name ( ) const
inlinenodiscardoverridevirtual

Get the unique name of this health check.

Returns
Health check name

Implements kcenon::common::interfaces::health_check.

Definition at line 196 of file health_check.h.

196{ return name_; }

References name_.

◆ get_timeout()

std::chrono::milliseconds kcenon::common::interfaces::lambda_health_check::get_timeout ( ) const
inlinenodiscardoverridevirtual

Get timeout duration for this health check.

Returns
Timeout duration (default: 5 seconds)

Implements kcenon::common::interfaces::health_check.

Definition at line 210 of file health_check.h.

210{ return timeout_; }

References timeout_.

◆ get_type()

health_check_type kcenon::common::interfaces::lambda_health_check::get_type ( ) const
inlinenodiscardoverridevirtual

Get the type of this health check.

Returns
Health check type

Implements kcenon::common::interfaces::health_check.

Definition at line 198 of file health_check.h.

198{ return type_; }

References type_.

◆ is_critical()

bool kcenon::common::interfaces::lambda_health_check::is_critical ( ) const
inlinenodiscardoverridevirtual

Check if this health check is critical.

Critical health checks affect the overall system health status. Non-critical checks are reported but don't impact system health.

Returns
true if this is a critical health check

Implements kcenon::common::interfaces::health_check.

Definition at line 212 of file health_check.h.

212{ return critical_; }

References critical_.

Member Data Documentation

◆ check_fn_

check_function kcenon::common::interfaces::lambda_health_check::check_fn_
private

Definition at line 217 of file health_check.h.

Referenced by check().

◆ critical_

bool kcenon::common::interfaces::lambda_health_check::critical_
private

Definition at line 218 of file health_check.h.

Referenced by is_critical().

◆ name_

std::string kcenon::common::interfaces::lambda_health_check::name_
private

Definition at line 215 of file health_check.h.

Referenced by get_name().

◆ timeout_

std::chrono::milliseconds kcenon::common::interfaces::lambda_health_check::timeout_
private

Definition at line 219 of file health_check.h.

Referenced by get_timeout().

◆ type_

health_check_type kcenon::common::interfaces::lambda_health_check::type_
private

Definition at line 216 of file health_check.h.

Referenced by get_type().


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