1 #ifndef _BDB_WRAPPER_H_
2 #define _BDB_WRAPPER_H_
7 #include "abstract_db.h"
10 class bdb_wrapper : public abstract_db {
12 bdb_wrapper(const std::string &envdir,
13 const std::string &dbfile);
17 * BDB has small txn sizes
19 virtual ssize_t txn_max_batch_size() const { return 1000; }
21 virtual void *new_txn(
26 virtual bool commit_txn(void *txn);
27 virtual void abort_txn(void *txn);
29 virtual abstract_ordered_index *
30 open_index(const std::string &name,
31 size_t value_size_hint,
35 close_index(abstract_ordered_index *idx);
41 class bdb_ordered_index : public abstract_ordered_index {
44 // takes ownership of db
45 bdb_ordered_index(Db *db) : db(db) {}
50 const std::string &key,
52 size_t max_bytes_read);
54 virtual const char * put(
56 const std::string &key,
57 const std::string &value);
61 const std::string &key,
62 const std::string *value,
63 scan_callback &callback,
66 NDB_UNIMPLEMENTED("scan");
71 const std::string &start_key,
72 const std::string *end_key,
73 scan_callback &callback,
76 NDB_UNIMPLEMENTED("rscan");
82 NDB_UNIMPLEMENTED("size");
85 virtual std::map<std::string, uint64_t>
88 NDB_UNIMPLEMENTED("clear");
95 #endif /* _BDB_WRAPPER_H_ */