|
Common System 0.2.0
Common interfaces and patterns for system integration
|
Thread-safe sliding window for failure tracking. More...
#include <failure_window.h>

Public Types | |
| using | clock_type = std::chrono::steady_clock |
| using | time_point = clock_type::time_point |
| using | duration = std::chrono::milliseconds |
Public Member Functions | |
| failure_window (duration window_duration) | |
| Construct a failure window with specified duration. | |
| auto | record_failure () -> void |
| Record a new failure at current time. | |
| auto | get_failure_count () const -> std::size_t |
| Get current failure count within window. Removes expired failures before counting. | |
| auto | reset () -> void |
| Clear all recorded failures. | |
| auto | is_empty () -> bool |
| Check if window is empty (no recent failures). | |
Private Member Functions | |
| auto | cleanup_expired_failures () const -> void |
| Remove failures outside the time window. Must be called with mutex locked. | |
Private Attributes | |
| duration | window_duration_ |
| std::deque< time_point > | failures_ |
| std::mutex | mutex_ |
Thread-safe sliding window for failure tracking.
Maintains a deque of failure timestamps within a configured window duration. Automatically removes expired failures when queried.
Thread Safety:
Definition at line 33 of file failure_window.h.
| using kcenon::common::resilience::failure_window::clock_type = std::chrono::steady_clock |
Definition at line 35 of file failure_window.h.
| using kcenon::common::resilience::failure_window::duration = std::chrono::milliseconds |
Definition at line 37 of file failure_window.h.
| using kcenon::common::resilience::failure_window::time_point = clock_type::time_point |
Definition at line 36 of file failure_window.h.
|
inlineexplicit |
Construct a failure window with specified duration.
| window_duration | Time window for tracking failures |
Definition at line 43 of file failure_window.h.
|
inlineprivate |
Remove failures outside the time window. Must be called with mutex locked.
Definition at line 94 of file failure_window.h.
References failures_, and window_duration_.
Referenced by get_failure_count(), and is_empty().

|
inlinenodiscard |
Get current failure count within window. Removes expired failures before counting.
Definition at line 62 of file failure_window.h.
References cleanup_expired_failures(), failures_, and mutex_.
Referenced by kcenon::common::resilience::circuit_breaker::get_stats(), and kcenon::common::resilience::circuit_breaker::record_failure().


|
inlinenodiscard |
Check if window is empty (no recent failures).
Definition at line 82 of file failure_window.h.
References cleanup_expired_failures(), failures_, and mutex_.

|
inline |
Record a new failure at current time.
Definition at line 51 of file failure_window.h.
References failures_, and mutex_.
Referenced by kcenon::common::resilience::circuit_breaker::record_failure().

|
inline |
Clear all recorded failures.
Definition at line 72 of file failure_window.h.
References failures_, and mutex_.
Referenced by kcenon::common::resilience::circuit_breaker::transition_to_closed().

|
mutableprivate |
Definition at line 107 of file failure_window.h.
Referenced by cleanup_expired_failures(), get_failure_count(), is_empty(), record_failure(), and reset().
|
mutableprivate |
Definition at line 108 of file failure_window.h.
Referenced by get_failure_count(), is_empty(), record_failure(), and reset().
|
private |
Definition at line 106 of file failure_window.h.
Referenced by cleanup_expired_failures().