95#define UDIF_STORAGE_MAX_PATH 512U
101#define UDIF_STORAGE_MAX_HANDLES 16U
UDIF_EXPORT_API void udif_storage_set_ledger(udif_storage_context *ctx, udif_ledger_type ledgertype)
Set active ledger namespace.
Definition storage.c:294
#define UDIF_STORAGE_MAX_PATH
Maximum file path length.
Definition storage.h:95
UDIF_EXPORT_API bool udif_storage_flush(void *context, const uint8_t *loc, size_t loclen)
Flush buffered data.
Definition storage.c:493
UDIF_EXPORT_API void udif_storage_dispose(udif_storage_context *ctx)
Dispose storage context.
Definition storage.c:326
void udif_storage_evict_handle(udif_storage_context *ctx, const char *path)
Close and evict a cached handle.
Definition storage.c:147
UDIF_EXPORT_API void udif_storage_get_callbacks(udif_storage_context *ctx, void *callbacks)
Get MCEL store callbacks for this context.
Definition storage.c:306
bool udif_storage_resolve_path(const udif_storage_context *ctx, const uint8_t *loc, size_t loclen, char *outpath, size_t outpathlen)
Resolve logical location to file path.
Definition storage.c:25
udif_ledger_type
Ledger namespace identifiers.
Definition storage.h:108
@ UDIF_LEDGER_MEMBERSHIP
Definition storage.h:109
@ UDIF_LEDGER_TRANSACTION
Definition storage.h:110
@ UDIF_LEDGER_REGISTRY
Definition storage.h:111
UDIF_EXPORT_API bool udif_storage_write(void *context, const uint8_t *loc, size_t loclen, const uint8_t *data, size_t datalen)
Write complete object to storage.
Definition storage.c:337
bool udif_storage_mkdir_recursive(const char *path)
Create directory recursively.
UDIF_EXPORT_API bool udif_storage_append(void *context, const uint8_t *loc, size_t loclen, const uint8_t *data, size_t datalen, uint64_t *outpos)
Append data to append-only object.
Definition storage.c:417
UDIF_EXPORT_API udif_errors udif_storage_initialize(udif_storage_context *ctx, const char *basepath)
Initialize storage context.
Definition storage.c:216
UDIF_EXPORT_API bool udif_storage_size(void *context, const uint8_t *loc, size_t loclen, uint64_t *outlen)
Get object size.
Definition storage.c:463
void udif_storage_close_all_handles(udif_storage_context *ctx)
Close all cached handles.
Definition storage.c:170
UDIF_EXPORT_API bool udif_storage_read(void *context, const uint8_t *loc, size_t loclen, uint8_t *data, size_t datalen, size_t *outread)
Read complete object from storage.
Definition storage.c:382
bool udif_storage_get_handle(udif_storage_context *ctx, const char *path, qsc_fileutils_mode mode, FILE **outfp)
Get or open cached file handle.
Definition storage.c:56
#define UDIF_STORAGE_MAX_HANDLES
Maximum number of cached file handles.
Definition storage.h:101
Cached file handle with metadata.
Definition storage.h:119
uint64_t lastaccess
Definition storage.h:122
bool isopen
Definition storage.h:123
char path[UDIF_STORAGE_MAX_PATH]
Definition storage.h:121
FILE * fp
Definition storage.h:120
File-based storage context for MCEL integration.
Definition storage.h:134
udif_ledger_type currentledger
Definition storage.h:138
char basepath[UDIF_STORAGE_MAX_PATH]
Definition storage.h:135
udif_file_handle handles[UDIF_STORAGE_MAX_HANDLES]
Definition storage.h:136
bool initialized
Definition storage.h:139
size_t handlecount
Definition storage.h:137
UDIF Common Definitions and Protocol Configuration.
udif_errors
UDIF error codes.
Definition udif.h:628
UDIF common definitions and constants.
#define UDIF_EXPORT_API
The api export prefix.
Definition udifcommon.h:103