Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
Loading...
Searching...
No Matches
kcenon::monitoring::alternative_service_strategy< T > Class Template Reference

Alternative service fallback strategy. More...

#include <error_boundary.h>

Inheritance diagram for kcenon::monitoring::alternative_service_strategy< T >:
Inheritance graph
Collaboration diagram for kcenon::monitoring::alternative_service_strategy< T >:
Collaboration graph

Public Types

using alternative_func = std::function<common::Result<T>()>
 

Public Member Functions

 alternative_service_strategy (alternative_func func)
 
common::Result< T > get_fallback (const error_info &, degradation_level) override
 
- Public Member Functions inherited from kcenon::monitoring::fallback_strategy_interface< T >
virtual ~fallback_strategy_interface ()=default
 

Private Attributes

alternative_func alternative_func_
 

Detailed Description

template<typename T>
class kcenon::monitoring::alternative_service_strategy< T >

Alternative service fallback strategy.

Definition at line 177 of file error_boundary.h.

Member Typedef Documentation

◆ alternative_func

template<typename T >
using kcenon::monitoring::alternative_service_strategy< T >::alternative_func = std::function<common::Result<T>()>

Definition at line 179 of file error_boundary.h.

Constructor & Destructor Documentation

◆ alternative_service_strategy()

template<typename T >
kcenon::monitoring::alternative_service_strategy< T >::alternative_service_strategy ( alternative_func func)
inlineexplicit

Definition at line 181 of file error_boundary.h.

181: alternative_func_(std::move(func)) {}

Member Function Documentation

◆ get_fallback()

template<typename T >
common::Result< T > kcenon::monitoring::alternative_service_strategy< T >::get_fallback ( const error_info & ,
degradation_level  )
inlineoverridevirtual

Implements kcenon::monitoring::fallback_strategy_interface< T >.

Definition at line 183 of file error_boundary.h.

183 {
184 if (alternative_func_) {
185 return alternative_func_();
186 }
187 return common::Result<T>::err(error_info(monitoring_error_code::operation_failed, "No alternative service available").to_common_error());
188 }

References kcenon::monitoring::alternative_service_strategy< T >::alternative_func_, and kcenon::monitoring::operation_failed.

Member Data Documentation

◆ alternative_func_

template<typename T >
alternative_func kcenon::monitoring::alternative_service_strategy< T >::alternative_func_
private

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