20#ifndef DETERMINISTICESPASYNCWEBSERVER_FAILSAFE_H
21#define DETERMINISTICESPASYNCWEBSERVER_FAILSAFE_H
27#if DETWS_ENABLE_FAILSAFE
34 uint32_t last_feed_ms;
40typedef void (*DetwsFailsafeCb)(
int id,
const char *name,
void *arg);
52static inline bool detws_lifeline_overdue(uint32_t now, uint32_t last_feed_ms, uint32_t deadline_ms)
54 return (uint32_t)(now - last_feed_ms) > deadline_ms;
62void detws_failsafe_reset(
void);
72int detws_failsafe_register(
const char *name, uint32_t deadline_ms);
73int detws_failsafe_register_at(
const char *name, uint32_t deadline_ms, uint32_t now);
76bool detws_failsafe_feed(
int id);
77bool detws_failsafe_feed_at(
int id, uint32_t now);
80void detws_failsafe_on_breach(DetwsFailsafeCb cb,
void *arg);
89uint32_t detws_failsafe_check_at(uint32_t now);
90uint32_t detws_failsafe_check(
void);
93int detws_failsafe_json_at(uint32_t now,
char *out,
size_t cap);
User-facing configuration for DeterministicESPAsyncWebServer.