74#ifndef SAFEAPI_APPMANAGER_H
75#define SAFEAPI_APPMANAGER_H
242 const char *(*get_name)(void);
251 const char *(*get_version)(void);
341#define SAPI_APPMANAGER_CHECKPOINT_SIGNATURE_SEED ((uint64_t)0xFFFFFFFFFFFFFFFFULL)
398#define SAPI_CHECKPOINT_MARK() sapi_appmanager_checkpoint_mark(__FILE__, (int32_t)__LINE__, NULL)
406#define SAPI_CHECKPOINT_MARK_LABEL(label_str) sapi_appmanager_checkpoint_mark(__FILE__, (int32_t)__LINE__, (label_str))
void sapi_appmanager_request_shutdown(void)
Request application shutdown.
sapi_app_state_t sapi_appmanager_get_state(void)
Get current application state.
sapi_status_t sapi_appmanager_get_stats(sapi_appmanager_state_t *state)
Get application statistics.
uint32_t sapi_appmanager_checkpoint_fold_signature(uint64_t signature)
Pure helper: folds a 64-bit checkpoint signature down to the uint32_t sapi_checkpoint_config_t::check...
sapi_app_state_t
Application state enumeration.
int sapi_appmanager_run(const sapi_appmanager_config_t *config)
Run application with lifecycle management.
void sapi_appmanager_reset_state(void)
Forcibly resets the application manager's own bookkeeping (lifecycle state, iteration/error counters,...
sapi_status_t sapi_appmanager_install_default_signal_handlers(void)
POSIX-only convenience: installs SIGINT and SIGTERM handlers that call sapi_appmanager_request_shutdo...
void sapi_appmanager_checkpoint_mark(const char *file, int32_t line, const char *label)
Folds a hash of this call site into the current cycle's checkpoint signature (ADR-034).
@ SAPI_APP_STATE_SHUTDOWN
@ SAPI_APP_STATE_SHUTTING_DOWN
@ SAPI_APP_STATE_INITIALIZING
@ SAPI_APP_STATE_UNINITIALIZED
sapi_status_t
Common result/status codes.
uint32_t sapi_duration_ms_t
sapi_voter_storage_t sapi_voter_t
Opaque handle to a voter instance.
Common status/error codes returned by every Safe API Framework function. Shared across all OS Abstrac...
Common fixed-width types and the caller-owned-storage handle pattern used by every OAL service (see A...
N-way voting across registered sapi_channel_t links (2oo2/2oo3/NMR).
Watchdog mechanism for detecting system/task hang conditions.
Optional built-in checkpoint rendezvous configuration (ADR-019/ADR-034).
uint32_t expected_node_count
sapi_duration_ms_t max_delay_ms
Application manager configuration.
const sapi_appmanager_checkpoint_config_t * checkpoint
const sapi_appmanager_operations_t * ops
Application lifecycle operations.
sapi_status_t(*) init(void *context)
Initialize application.
sapi_status_t(*) on_checkpoint_result(void *context, bool committed)
Optional per-cycle checkpoint outcome hook (ADR-034).
sapi_status_t(*) execute(void *context)
Execute main application logic.
sapi_status_t(*) shutdown(void *context)
Shutdown application.
sapi_status_t(*) pre_execute(void *context)
Optional per-cycle input/prepare stage (ADR-019).
sapi_status_t(*) post_execute(void *context)
Optional per-cycle output/cleanup stage (ADR-019).
Application manager runtime state.