libclod
C library for interacting with NBTs, region files, LOD data and other things.
Loading...
Searching...
No Matches
region.h
Go to the documentation of this file.
1
13
14#ifndef LIBCLOD_REGION_H
15#define LIBCLOD_REGION_H
16
17#include <clod/compression.h>
18#include <clod/lib.h>
19#include <stdint.h>
20#include <time.h>
21
22struct clod_region;
23struct clod_region_opts;
24struct clod_region_iter;
25
48
55CLOD_API CLOD_USE_RETURN
56struct clod_region *
57clod_region_open(const char *path, const struct clod_region_opts *opts);
58
71CLOD_API CLOD_USE_RETURN CLOD_NONNULL(1, 2, 3)
73clod_region_read(struct clod_region *region, const int64_t *pos, uint8_t *buff, size_t buff_size, size_t *size);
74
86CLOD_API CLOD_USE_RETURN CLOD_NONNULL(1, 2)
88clod_region_write(struct clod_region *region, const int64_t *pos, const uint8_t *buff, size_t buff_size);
89
100CLOD_API CLOD_USE_RETURN CLOD_NONNULL(1, 2)
102clod_region_mtime(struct clod_region *region, const int64_t *pos, time_t *mtime);
103
109CLOD_API CLOD_USE_RETURN CLOD_NONNULL(1)
110struct clod_region_iter *
112
120CLOD_API CLOD_USE_RETURN CLOD_NONNULL(1, 2)
121bool
122clod_region_iter_next(struct clod_region_iter *iter, int64_t *pos);
123
129CLOD_API CLOD_NONNULL(1)
130void
131clod_region_iter_end(struct clod_region_iter *iter);
132
137CLOD_API CLOD_NONNULL(1)
139clod_region_close(struct clod_region *region);
140
143#define CLOD_REGION_MODE_RDONLY 1
144#define CLOD_REGION_MODE_RDWR 2
146
149#define CLOD_REGION_PREFIX_MAX 30
150#define CLOD_REGION_EXTENSION_MAX 10
151#define CLOD_REGION_DIMENSIONS_MAX 10
153
160 uint8_t dims;
161
163 uint8_t mode;
164
169
173 uint32_t sector_size;
174
179
183
186 char prefix[CLOD_REGION_PREFIX_MAX + 1];
187
190 char region_ext[CLOD_REGION_EXTENSION_MAX + 1];
191
194 char chunk_ext[CLOD_REGION_EXTENSION_MAX + 1];
195};
196
198#endif
clod_compression_method
Definition compression.h:36
enum clod_region_result clod_region_read(struct clod_region *region, const int64_t *pos, uint8_t *buff, size_t buff_size, size_t *size)
Definition region_read.c:6
enum clod_region_result clod_region_mtime(struct clod_region *region, const int64_t *pos, time_t *mtime)
void clod_region_iter_end(struct clod_region_iter *iter)
clod_region_result
Definition region.h:33
enum clod_region_result clod_region_write(struct clod_region *region, const int64_t *pos, const uint8_t *buff, size_t buff_size)
struct clod_region_iter * clod_region_iter_start(struct clod_region *region)
bool clod_region_iter_next(struct clod_region_iter *iter, int64_t *pos)
struct clod_region * clod_region_open(const char *path, const struct clod_region_opts *opts)
Definition region_open.c:8
enum clod_region_result clod_region_close(struct clod_region *region)
Definition region_open.c:31
@ CLOD_REGION_NOT_FOUND
Definition region.h:46
@ CLOD_REGION_MALFORMED
Definition region.h:43
@ CLOD_REGION_INVALID_USAGE
Definition region.h:39
@ CLOD_REGION_OK
Definition region.h:35
uint8_t dims
Definition region.h:160
uint8_t mode
Definition region.h:163
enum clod_compression_method compression
Definition region.h:168
char chunk_ext[10+1]
Definition region.h:194
char region_ext[10+1]
Definition region.h:190
uint32_t unix_file_perms
Definition region.h:182
char prefix[30+1]
Definition region.h:186
uint32_t sector_size
Definition region.h:173