51#include "xtc_export.h"
57typedef struct xtc_saga xtc_saga_t;
67typedef int (*xtc_saga_fn)(
void *ctx);
83XTC_API
int xtc_saga_create(xtc_saga_t **out);
87XTC_API
void xtc_saga_destroy(xtc_saga_t *s);
97XTC_API
int xtc_saga_step(xtc_saga_t *s, xtc_saga_fn action, xtc_saga_fn compensate,
123XTC_API
int xtc_saga_run(xtc_saga_t *s);
126XTC_API
int xtc_saga_n_steps(
const xtc_saga_t *s);
130XTC_API
int xtc_saga_n_completed(
const xtc_saga_t *s);
135XTC_API
int xtc_saga_failed_step(
const xtc_saga_t *s);
139XTC_API
int xtc_saga_last_error(
const xtc_saga_t *s);
143XTC_API
int xtc_saga_compensate_failed(
const xtc_saga_t *s);