MDB
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
lmdb.h
Go to the documentation of this file.
1
132
#ifndef _LMDB_H_
133
#define _LMDB_H_
134
135
#include <sys/types.h>
136
137
#ifdef __cplusplus
138
extern
"C"
{
139
#endif
140
142
#ifdef _MSC_VER
143
typedef
int
mdb_mode_t
;
144
#else
145
typedef
mode_t
mdb_mode_t
;
146
#endif
147
152
#ifdef _WIN32
153
typedef
void
*
mdb_filehandle_t
;
154
#else
155
typedef
int
mdb_filehandle_t
;
156
#endif
157
166
#define MDB_VERSION_MAJOR 0
167
168
#define MDB_VERSION_MINOR 9
169
170
#define MDB_VERSION_PATCH 7
171
173
#define MDB_VERINT(a,b,c) (((a) << 24) | ((b) << 16) | (c))
174
176
#define MDB_VERSION_FULL \
177
MDB_VERINT(MDB_VERSION_MAJOR,MDB_VERSION_MINOR,MDB_VERSION_PATCH)
178
180
#define MDB_VERSION_DATE "January 10, 2013"
181
183
#define MDB_VERSTR(a,b,c,d) "MDB " #a "." #b "." #c ": (" d ")"
184
186
#define MDB_VERFOO(a,b,c,d) MDB_VERSTR(a,b,c,d)
187
189
#define MDB_VERSION_STRING \
190
MDB_VERFOO(MDB_VERSION_MAJOR,MDB_VERSION_MINOR,MDB_VERSION_PATCH,MDB_VERSION_DATE)
191
198
typedef
struct
MDB_env
MDB_env
;
199
205
typedef
struct
MDB_txn
MDB_txn
;
206
208
typedef
unsigned
int
MDB_dbi
;
209
211
typedef
struct
MDB_cursor
MDB_cursor
;
212
224
typedef
struct
MDB_val
{
225
size_t
mv_size
;
226
void
*
mv_data
;
227
}
MDB_val
;
228
230
typedef
int (
MDB_cmp_func
)(
const
MDB_val
*a,
const
MDB_val
*b);
231
246
typedef
void (
MDB_rel_func
)(
MDB_val
*item,
void
*oldptr,
void
*newptr,
void
*relctx);
247
254
#define MDB_FIXEDMAP 0x01
255
256
#define MDB_NOSUBDIR 0x4000
257
258
#define MDB_NOSYNC 0x10000
259
260
#define MDB_RDONLY 0x20000
261
262
#define MDB_NOMETASYNC 0x40000
263
264
#define MDB_WRITEMAP 0x80000
265
266
#define MDB_MAPASYNC 0x100000
267
268
#define MDB_NOTLS 0x200000
269
277
#define MDB_REVERSEKEY 0x02
278
279
#define MDB_DUPSORT 0x04
280
282
#define MDB_INTEGERKEY 0x08
283
284
#define MDB_DUPFIXED 0x10
285
286
#define MDB_INTEGERDUP 0x20
287
288
#define MDB_REVERSEDUP 0x40
289
290
#define MDB_CREATE 0x40000
291
297
#define MDB_NOOVERWRITE 0x10
298
302
#define MDB_NODUPDATA 0x20
303
304
#define MDB_CURRENT 0x40
305
308
#define MDB_RESERVE 0x10000
309
310
#define MDB_APPEND 0x20000
311
312
#define MDB_APPENDDUP 0x40000
313
314
#define MDB_MULTIPLE 0x80000
315
/* @} */
316
322
typedef
enum
MDB_cursor_op
{
323
MDB_FIRST
,
324
MDB_FIRST_DUP
,
326
MDB_GET_BOTH
,
327
MDB_GET_BOTH_RANGE
,
328
MDB_GET_CURRENT
,
329
MDB_GET_MULTIPLE
,
331
MDB_LAST
,
332
MDB_LAST_DUP
,
334
MDB_NEXT
,
335
MDB_NEXT_DUP
,
337
MDB_NEXT_MULTIPLE
,
339
MDB_NEXT_NODUP
,
340
MDB_PREV
,
341
MDB_PREV_DUP
,
343
MDB_PREV_NODUP
,
344
MDB_SET
,
345
MDB_SET_KEY
,
346
MDB_SET_RANGE
347
}
MDB_cursor_op
;
348
355
#define MDB_SUCCESS 0
356
357
#define MDB_KEYEXIST (-30799)
358
359
#define MDB_NOTFOUND (-30798)
360
361
#define MDB_PAGE_NOTFOUND (-30797)
362
363
#define MDB_CORRUPTED (-30796)
364
365
#define MDB_PANIC (-30795)
366
367
#define MDB_VERSION_MISMATCH (-30794)
368
369
#define MDB_INVALID (-30793)
370
371
#define MDB_MAP_FULL (-30792)
372
373
#define MDB_DBS_FULL (-30791)
374
375
#define MDB_READERS_FULL (-30790)
376
377
#define MDB_TLS_FULL (-30789)
378
379
#define MDB_TXN_FULL (-30788)
380
381
#define MDB_CURSOR_FULL (-30787)
382
383
#define MDB_PAGE_FULL (-30786)
384
385
#define MDB_MAP_RESIZED (-30785)
386
387
#define MDB_INCOMPATIBLE (-30784)
388
389
#define MDB_BAD_RSLOT (-30783)
390
391
#define MDB_BAD_TXN (-30782)
392
393
#define MDB_BAD_VALSIZE (-30781)
394
#define MDB_LAST_ERRCODE MDB_BAD_VALSIZE
395
398
typedef
struct
MDB_stat
{
399
unsigned
int
ms_psize
;
401
unsigned
int
ms_depth
;
402
size_t
ms_branch_pages
;
403
size_t
ms_leaf_pages
;
404
size_t
ms_overflow_pages
;
405
size_t
ms_entries
;
406
}
MDB_stat
;
407
409
typedef
struct
MDB_envinfo
{
410
void
*
me_mapaddr
;
411
size_t
me_mapsize
;
412
size_t
me_last_pgno
;
413
size_t
me_last_txnid
;
414
unsigned
int
me_maxreaders
;
415
unsigned
int
me_numreaders
;
416
}
MDB_envinfo
;
417
425
char
*
mdb_version
(
int
*major,
int
*minor,
int
*patch);
426
437
char
*
mdb_strerror
(
int
err);
438
450
int
mdb_env_create
(
MDB_env
**env);
451
537
int
mdb_env_open
(
MDB_env
*env,
const
char
*path,
unsigned
int
flags, mdb_mode_t mode);
538
553
int
mdb_env_copy
(
MDB_env
*env,
const
char
*path);
554
568
int
mdb_env_copyfd
(
MDB_env
*env, mdb_filehandle_t fd);
569
576
int
mdb_env_stat
(
MDB_env
*env,
MDB_stat
*stat);
577
584
int
mdb_env_info
(
MDB_env
*env,
MDB_envinfo
*stat);
585
603
int
mdb_env_sync
(
MDB_env
*env,
int
force);
604
613
void
mdb_env_close
(
MDB_env
*env);
614
628
int
mdb_env_set_flags
(
MDB_env
*env,
unsigned
int
flags,
int
onoff);
629
640
int
mdb_env_get_flags
(
MDB_env
*env,
unsigned
int
*flags);
641
654
int
mdb_env_get_path
(
MDB_env
*env,
const
char
**path);
655
674
int
mdb_env_set_mapsize
(
MDB_env
*env,
size_t
size);
675
693
int
mdb_env_set_maxreaders
(
MDB_env
*env,
unsigned
int
readers);
694
705
int
mdb_env_get_maxreaders
(
MDB_env
*env,
unsigned
int
*readers);
706
721
int
mdb_env_set_maxdbs
(
MDB_env
*env, MDB_dbi dbs);
722
728
int
mdb_env_get_maxkeysize
(
MDB_env
*env);
729
763
int
mdb_txn_begin
(
MDB_env
*env,
MDB_txn
*parent,
unsigned
int
flags,
MDB_txn
**txn);
764
769
MDB_env
*
mdb_txn_env
(
MDB_txn
*txn);
770
787
int
mdb_txn_commit
(
MDB_txn
*txn);
788
797
void
mdb_txn_abort
(
MDB_txn
*txn);
798
816
void
mdb_txn_reset
(
MDB_txn
*txn);
817
832
int
mdb_txn_renew
(
MDB_txn
*txn);
833
835
#define mdb_open(txn,name,flags,dbi) mdb_dbi_open(txn,name,flags,dbi)
836
837
#define mdb_close(env,dbi) mdb_dbi_close(env,dbi)
838
902
int
mdb_dbi_open
(
MDB_txn
*txn,
const
char
*name,
unsigned
int
flags, MDB_dbi *dbi);
903
916
int
mdb_stat
(
MDB_txn
*txn, MDB_dbi dbi,
MDB_stat
*stat);
917
925
int
mdb_dbi_flags
(
MDB_env
*env, MDB_dbi dbi,
unsigned
int
*flags);
926
936
void
mdb_dbi_close
(
MDB_env
*env, MDB_dbi dbi);
937
946
int
mdb_drop
(
MDB_txn
*txn, MDB_dbi dbi,
int
del);
947
967
int
mdb_set_compare
(
MDB_txn
*txn, MDB_dbi dbi,
MDB_cmp_func
*cmp);
968
990
int
mdb_set_dupsort
(
MDB_txn
*txn, MDB_dbi dbi,
MDB_cmp_func
*cmp);
991
1010
int
mdb_set_relfunc
(
MDB_txn
*txn, MDB_dbi dbi,
MDB_rel_func
*rel);
1011
1026
int
mdb_set_relctx
(
MDB_txn
*txn, MDB_dbi dbi,
void
*ctx);
1027
1054
int
mdb_get
(
MDB_txn
*txn, MDB_dbi dbi,
MDB_val
*key,
MDB_val
*data);
1055
1101
int
mdb_put
(
MDB_txn
*txn, MDB_dbi dbi,
MDB_val
*key,
MDB_val
*data,
1102
unsigned
int
flags);
1103
1126
int
mdb_del
(
MDB_txn
*txn, MDB_dbi dbi,
MDB_val
*key,
MDB_val
*data);
1127
1150
int
mdb_cursor_open
(
MDB_txn
*txn, MDB_dbi dbi,
MDB_cursor
**cursor);
1151
1158
void
mdb_cursor_close
(
MDB_cursor
*cursor);
1159
1176
int
mdb_cursor_renew
(
MDB_txn
*txn,
MDB_cursor
*cursor);
1177
1182
MDB_txn
*
mdb_cursor_txn
(
MDB_cursor
*cursor);
1183
1188
MDB_dbi
mdb_cursor_dbi
(
MDB_cursor
*cursor);
1189
1209
int
mdb_cursor_get
(
MDB_cursor
*cursor,
MDB_val
*key,
MDB_val
*data,
1210
MDB_cursor_op
op);
1211
1266
int
mdb_cursor_put
(
MDB_cursor
*cursor,
MDB_val
*key,
MDB_val
*data,
1267
unsigned
int
flags);
1268
1286
int
mdb_cursor_del
(
MDB_cursor
*cursor,
unsigned
int
flags);
1287
1300
int
mdb_cursor_count
(
MDB_cursor
*cursor,
size_t
*countp);
1301
1312
int
mdb_cmp
(
MDB_txn
*txn, MDB_dbi dbi,
const
MDB_val
*a,
const
MDB_val
*b);
1313
1324
int
mdb_dcmp
(
MDB_txn
*txn, MDB_dbi dbi,
const
MDB_val
*a,
const
MDB_val
*b);
1325
1332
typedef
int (
MDB_msg_func
)(
const
char
*msg,
void
*ctx);
1333
1341
int
mdb_reader_list
(
MDB_env
*env,
MDB_msg_func
*func,
void
*ctx);
1342
1349
int
mdb_reader_check
(
MDB_env
*env,
int
*dead);
1352
#ifdef __cplusplus
1353
}
1354
#endif
1355
#endif
/* _LMDB_H_ */
Generated on Mon Aug 19 2013 09:05:34 for MDB by
1.8.4