libclod
C library for interacting with NBTs, region files, LOD data and other things.
Loading...
Searching...
No Matches
region_format.h
Go to the documentation of this file.
1
14#ifndef LIBCLOD_REGION_FORMAT_H
15#define LIBCLOD_REGION_FORMAT_H
16
17#include <clod/lib.h>
18#include <stddef.h>
19#include <stdint.h>
20
21
31typedef bool clod_rfmt_file_sync(size_t size, void *user);
32
33struct clod_rfmt;
34struct clod_rfmt_opts;
35
63
71
82 bool (*file_manage)(uint8_t **data, size_t *size, const size_t *new_size, void *user);
83
93 bool (*file_sync)(size_t size, void *user);
94
97 void *(*malloc_func)(size_t size, void *user);
98
100 void (*free_func)(void *ptr, void *user);
101
103 void *user;
104};
105
116CLOD_API CLOD_NONNULL(1, 2, 3)
118 struct clod_rfmt **rfmt_out,
119 struct clod_rfmt_opts *opts,
120 char *chunk_filename_prefix,
121 char *chunk_filename_extension,
122 uint32_t sector_size
123);
124
132CLOD_API CLOD_NONNULL(1)
133enum clod_rfmt_result clod_rfmt_init_rw(struct clod_rfmt **rfmt_out, struct clod_rfmt_opts *opts);
134
142CLOD_API CLOD_NONNULL(1)
143enum clod_rfmt_result clod_rfmt_init_ro(struct clod_rfmt **rfmt_out, struct clod_rfmt_opts *opts);
144
151CLOD_API CLOD_NONNULL(1)
152enum clod_rfmt_result clod_rfmt_free(struct clod_rfmt *rfmt);
153
154CLOD_API CLOD_NONNULL(1)
155enum clod_rfmt_result clod_rfmt_lock_acquire(struct clod_rfmt *rfmt, uint32_t index);
156
157CLOD_API CLOD_NONNULL(1)
158enum clod_rfmt_result clod_rfmt_lock_refresh(struct clod_rfmt *rfmt, uint32_t index);
159
161#endif
clod_rfmt_result
enum clod_rfmt_result clod_rfmt_init_rw(struct clod_rfmt **rfmt_out, struct clod_rfmt_opts *opts)
Definition format.c:71
bool clod_rfmt_file_sync(size_t size, void *user)
enum clod_rfmt_result clod_rfmt_init_new(struct clod_rfmt **rfmt_out, struct clod_rfmt_opts *opts, char *chunk_filename_prefix, char *chunk_filename_extension, uint32_t sector_size)
Definition format.c:48
enum clod_rfmt_result clod_rfmt_init_ro(struct clod_rfmt **rfmt_out, struct clod_rfmt_opts *opts)
Definition format.c:76
enum clod_rfmt_result clod_rfmt_free(struct clod_rfmt *rfmt)
Definition format.c:33
@ CLOD_RFMT_ALLOCATION_FAILURE
@ CLOD_RFMT_FILE_MANAGE_ERROR
@ CLOD_RFMT_OTHER
@ CLOD_RFMT_MISUSE
@ CLOD_RFMT_TIMEOUT
@ CLOD_RFMT_FILE_SYNC_ERROR
@ CLOD_RFMT_OTHER_MISUSE
@ CLOD_RFMT_INVALID
@ CLOD_RFMT_OK
uint32_t dead_lock_timeout_ms
bool(* file_sync)(size_t size, void *user)
void(* free_func)(void *ptr, void *user)
bool(* file_manage)(uint8_t **data, size_t *size, const size_t *new_size, void *user)