#include "KeyValueDB.h"
#include "osd/osd_types.h"
-using std::string;
#define KEY_DELIM '\0'
class MemDB : public KeyValueDB
{
- typedef std::pair<std::pair<std::string, std::string>, bufferlist> ms_op_t;
+ typedef std::pair<std::pair<std::string, std::string>, ceph::bufferlist> ms_op_t;
std::mutex m_lock;
uint64_t m_total_bytes;
uint64_t m_allocated_bytes;
- typedef std::map<std::string, bufferptr> mdb_map_t;
+ typedef std::map<std::string, ceph::bufferptr> mdb_map_t;
typedef mdb_map_t::iterator mdb_iter_t;
bool m_using_btree;
CephContext *m_cct;
PerfCounters *logger;
void* m_priv;
- string m_options;
- string m_db_path;
+ std::string m_options;
+ std::string m_db_path;
int transaction_rollback(KeyValueDB::Transaction t);
- int _open(ostream &out);
+ int _open(std::ostream &out);
void close() override;
- bool _get(const string &prefix, const string &k, bufferlist *out);
- bool _get_locked(const string &prefix, const string &k, bufferlist *out);
+ bool _get(const std::string &prefix, const std::string &k, ceph::bufferlist *out);
+ bool _get_locked(const std::string &prefix, const std::string &k, ceph::bufferlist *out);
std::string _get_data_fn();
- void _encode(mdb_iter_t iter, bufferlist &bl);
+ void _encode(mdb_iter_t iter, ceph::bufferlist &bl);
void _save();
int _load();
uint64_t iterator_seq_no;
public:
- MemDB(CephContext *c, const string &path, void *p) :
+ MemDB(CephContext *c, const std::string &path, void *p) :
m_total_bytes(0), m_allocated_bytes(0), m_using_btree(false),
m_cct(c), logger(NULL), m_priv(p), m_db_path(path), iterator_seq_no(1)
{
std::shared_ptr<MergeOperator> _find_merge_op(const std::string &prefix);
static
- int _test_init(const string& dir) { return 0; };
+ int _test_init(const std::string& dir) { return 0; };
class MDBTransactionImpl : public KeyValueDB::TransactionImpl {
public:
std::vector<std::pair<op_type, ms_op_t>> ops;
MemDB *m_db;
- bool key_is_prefixed(const string &prefix, const string& full_key);
+ bool key_is_prefixed(const std::string &prefix, const std::string& full_key);
public:
const std::vector<std::pair<op_type, ms_op_t>>&
get_ops() { return ops; };
void set(const std::string &prefix, const std::string &key,
- const bufferlist &val) override;
+ const ceph::bufferlist &val) override;
using KeyValueDB::TransactionImpl::set;
void rmkey(const std::string &prefix, const std::string &k) override;
using KeyValueDB::TransactionImpl::rmkey;
void rmkeys_by_prefix(const std::string &prefix) override;
void rm_range_keys(
- const string &prefix,
- const string &start,
- const string &end) override;
+ const std::string &prefix,
+ const std::string &start,
+ const std::string &end) override;
- void merge(const std::string &prefix, const std::string &key, const bufferlist &value) override;
+ void merge(const std::string &prefix, const std::string &key,
+ const ceph::bufferlist &value) override;
void clear() {
ops.clear();
}
/*
* Transaction states.
*/
- int _merge(const std::string &k, bufferptr &bl);
+ int _merge(const std::string &k, ceph::bufferptr &bl);
int _merge(ms_op_t &op);
int _setkey(ms_op_t &op);
int _rmkey(ms_op_t &op);
public:
- int init(string option_str="") override { m_options = option_str; return 0; }
+ int init(std::string option_str="") override { m_options = option_str; return 0; }
int _init(bool format);
- int do_open(ostream &out, bool create);
- int open(ostream &out, const std::vector<ColumnFamily>&) override;
- int create_and_open(ostream &out, const std::vector<ColumnFamily>&) override;
+ int do_open(std::ostream &out, bool create);
+ int open(std::ostream &out, const std::string& cfs="") override;
+ int create_and_open(std::ostream &out, const std::string& cfs="") override;
using KeyValueDB::create_and_open;
KeyValueDB::Transaction get_transaction() override {
int submit_transaction_sync(Transaction) override;
int get(const std::string &prefix, const std::set<std::string> &key,
- std::map<std::string, bufferlist> *out) override;
+ std::map<std::string, ceph::bufferlist> *out) override;
int get(const std::string &prefix, const std::string &key,
- bufferlist *out) override;
+ ceph::bufferlist *out) override;
using KeyValueDB::get;
class MDBWholeSpaceIteratorImpl : public KeyValueDB::WholeSpaceIteratorImpl {
mdb_iter_t m_iter;
- std::pair<string, bufferlist> m_key_value;
+ std::pair<std::string, ceph::bufferlist> m_key_value;
mdb_map_t *m_map_p;
std::mutex *m_map_lock_p;
uint64_t *global_seq_no;
std::string key() override;
std::pair<std::string,std::string> raw_key() override;
bool raw_key_is_prefixed(const std::string &prefix) override;
- bufferlist value() override;
+ ceph::bufferlist value() override;
~MDBWholeSpaceIteratorImpl() override;
};
return 0;
}
- WholeSpaceIterator get_wholespace_iterator() override {
+ WholeSpaceIterator get_wholespace_iterator(IteratorOpts opts = 0) override {
return std::shared_ptr<KeyValueDB::WholeSpaceIteratorImpl>(
new MDBWholeSpaceIteratorImpl(&m_map, &m_lock, &iterator_seq_no, m_using_btree));
}