53 std::lock_guard<std::mutex> lock(
mutex_);
64 std::lock_guard<std::mutex> lock(
mutex_);
74 std::lock_guard<std::mutex> lock(
mutex_);
84 std::lock_guard<std::mutex> lock(
mutex_);
96 const auto now = clock_type::now();
102 [cutoff](
const time_point& t) { return t < cutoff; }),
Thread-safe sliding window for failure tracking.
auto is_empty() -> bool
Check if window is empty (no recent failures).
auto get_failure_count() const -> std::size_t
Get current failure count within window. Removes expired failures before counting.
clock_type::time_point time_point
std::deque< time_point > failures_
auto record_failure() -> void
Record a new failure at current time.
auto cleanup_expired_failures() const -> void
Remove failures outside the time window. Must be called with mutex locked.
std::chrono::milliseconds duration
duration window_duration_
std::chrono::steady_clock clock_type
auto reset() -> void
Clear all recorded failures.
failure_window(duration window_duration)
Construct a failure window with specified duration.