49 lines
1.1 KiB
C
49 lines
1.1 KiB
C
#ifndef AMDUAT_ASL_INDEX_SNAPSHOT_H
|
|
#define AMDUAT_ASL_INDEX_SNAPSHOT_H
|
|
|
|
#include "amduat/asl/index_replay.h"
|
|
#include "amduat/asl/store.h"
|
|
|
|
#include <stdbool.h>
|
|
#include <stddef.h>
|
|
#include <stdint.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
enum {
|
|
AMDUAT_ASL_SNAPSHOT_MANIFEST_VERSION = 1,
|
|
AMDUAT_ASL_SNAPSHOT_MANIFEST_HEADER_SIZE = 80,
|
|
AMDUAT_ASL_SNAPSHOT_MANIFEST_MAGIC_LEN = 8
|
|
};
|
|
|
|
typedef struct {
|
|
amduat_asl_snapshot_id_t snapshot_id;
|
|
amduat_asl_log_position_t anchor_logseq;
|
|
amduat_asl_store_config_t config;
|
|
amduat_asl_segment_seal_t *segments;
|
|
size_t segments_len;
|
|
amduat_asl_tombstone_entry_t *tombstones;
|
|
size_t tombstones_len;
|
|
} amduat_asl_snapshot_manifest_t;
|
|
|
|
bool amduat_asl_snapshot_manifest_write(
|
|
const char *path,
|
|
const amduat_asl_snapshot_manifest_t *manifest,
|
|
uint8_t out_hash[32]);
|
|
|
|
bool amduat_asl_snapshot_manifest_read(
|
|
const char *path,
|
|
amduat_asl_snapshot_manifest_t *out_manifest,
|
|
uint8_t out_hash[32]);
|
|
|
|
void amduat_asl_snapshot_manifest_free(
|
|
amduat_asl_snapshot_manifest_t *manifest);
|
|
|
|
#ifdef __cplusplus
|
|
} /* extern "C" */
|
|
#endif
|
|
|
|
#endif /* AMDUAT_ASL_INDEX_SNAPSHOT_H */
|