52#include "xtc_export.h"
58typedef struct xtc_saga xtc_saga_t;
68typedef int (*xtc_saga_fn)(
void *ctx);
84XTC_API
int xtc_saga_create(xtc_saga_t **out);
88XTC_API
void xtc_saga_destroy(xtc_saga_t *s);
98XTC_API
int xtc_saga_step(xtc_saga_t *s, xtc_saga_fn action, xtc_saga_fn compensate,
124XTC_API
int xtc_saga_run(xtc_saga_t *s);
127XTC_API
int xtc_saga_n_steps(
const xtc_saga_t *s);
131XTC_API
int xtc_saga_n_completed(
const xtc_saga_t *s);
136XTC_API
int xtc_saga_failed_step(
const xtc_saga_t *s);
140XTC_API
int xtc_saga_last_error(
const xtc_saga_t *s);
144XTC_API
int xtc_saga_compensate_failed(
const xtc_saga_t *s);