Main Page | Modules | Data Structures | File List | Data Fields | Globals

mar_c.h

Go to the documentation of this file.
00001 /*****************************************************************************\
00002  * Copyright (c) 2004 Mark Aylett <mark@emantic.co.uk>                       *
00003  *                                                                           *
00004  * Permission is hereby granted, free of charge, to any person obtaining a   *
00005  * copy of this software and associated documentation files (the             *
00006  * "Software"), to deal in the Software without restriction, including       *
00007  * without limitation the rights to use, copy, modify, merge, publish,       *
00008  * distribute, sublicense, and/or sell copies of the Software, and to permit *
00009  * persons to whom the Software is furnished to do so, subject to the        *
00010  * following conditions:                                                     *
00011  *                                                                           *
00012  * The above copyright notice and this permission notice shall be included   *
00013  * in all copies or substantial portions of the Software.                    *
00014  *                                                                           *
00015  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS   *
00016  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF                *
00017  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN *
00018  * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,  *
00019  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR     *
00020  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE *
00021  * USE OR OTHER DEALINGS IN THE SOFTWARE.                                    *
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 /* INCLUDED_MAR_STORAGE_C */
00035 
00036 #ifndef INCLUDED_MAR_TYPES_C
00037 #include "mar_types_c.h"
00038 #endif /* INCLUDED_MAR_TYPES_C */
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 /* INCLUDED_MAR_C */

Generated on Tue Dec 14 16:10:54 2004 for mar by doxygen 1.3.6