00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00029 #ifndef INCLUDED_MAR_C
00030 #define INCLUDED_MAR_C
00031
00032 #ifndef INCLUDED_MAR_STORAGE_C
00033 #include "mar_storage_c.h"
00034 #endif
00035
00036 #ifndef INCLUDED_MAR_TYPES_C
00037 #include "mar_types_c.h"
00038 #endif
00039
00044 typedef struct mar_* mar_t;
00045
00059 MAR_API int
00060 mar_copy(mar_t dst, mar_t src);
00061
00071 MAR_API mar_t
00072 mar_create(void);
00073
00090 MAR_API mar_t
00091 mar_open(const char* path, int flags, ...);
00092
00107 MAR_API int
00108 mar_release(mar_t mar);
00109
00121 MAR_API int
00122 mar_retain(mar_t mar);
00123
00135 MAR_API int
00136 mar_removepairs(mar_t mar);
00137
00155 MAR_API int
00156 mar_setpair(mar_t mar, const mar_pair_t* pair, size_t* ord);
00157
00175 MAR_API int
00176 mar_setmeta(mar_t mar, size_t ord, const void* data, size_t size);
00177
00194 MAR_API int
00195 mar_unsetbykey(mar_t mar, const char* key, size_t* ord);
00196
00210 MAR_API int
00211 mar_unsetbyord(mar_t mar, size_t ord);
00212
00229 MAR_API const void*
00230 mar_metabykey(mar_t mar, const char* key, size_t* size);
00231
00248 MAR_API const void*
00249 mar_metabyord(mar_t mar, size_t ord, size_t* size);
00250
00266 MAR_API int
00267 mar_metapair(mar_t mar, mar_pair_t* pair, size_t ord);
00268
00283 MAR_API int
00284 mar_metapairs(mar_t mar, size_t* size);
00285
00301 MAR_API int
00302 mar_tokey(mar_t mar, mar_key_t key, size_t ord);
00303
00319 MAR_API int
00320 mar_toord(mar_t mar, size_t* ord, const char* key);
00321
00335 MAR_API int
00336 mar_insert(mar_t mar, const char* path);
00337
00354 MAR_API ssize_t
00355 mar_read(mar_t mar, void* buf, size_t size);
00356
00374 MAR_API off_t
00375 mar_seek(mar_t mar, off_t offset, int whence);
00376
00392 MAR_API int
00393 mar_setuser(mar_t mar, const void* data, size_t size);
00394
00404 MAR_API int
00405 mar_sync(mar_t mar);
00406
00418 MAR_API int
00419 mar_truncate(mar_t mar, size_t size);
00420
00436 MAR_API ssize_t
00437 mar_write(mar_t mar, const void* buf, size_t size);
00438
00452 MAR_API int
00453 mar_extract(mar_t mar, const char* path);
00454
00469 MAR_API const void*
00470 mar_user(mar_t mar, size_t* size);
00471
00486 MAR_API int
00487 mar_usersize(mar_t mar, size_t* size);
00488
00495 MAR_API int
00496 mar_errno(void);
00497
00498 #endif