int open(std::ostream &out, const std::string& cfs="") override {
return 0;
}
- int create_and_open(ostream &out, const std::string& cfs="") override {
+ int create_and_open(std::ostream &out, const std::string& cfs="") override {
return 0;
}
int get(
- const string &prefix,
- const std::set<string> &key,
- std::map<string, bufferlist> *out
+ const std::string &prefix,
+ const std::set<std::string> &key,
+ std::map<std::string, bufferlist> *out
) override;
using KeyValueDB::get;
int get_keys(
- const string &prefix,
- const std::set<string> &key,
- std::set<string> *out
+ const std::string &prefix,
+ const std::set<std::string> &key,
+ std::set<std::string> *out
);
int set(
- const string &prefix,
- const string &key,
+ const std::string &prefix,
+ const std::string &key,
const bufferlist &bl
);
int rmkey(
- const string &prefix,
- const string &key
+ const std::string &prefix,
+ const std::string &key
);
int rmkeys_by_prefix(
- const string &prefix
+ const std::string &prefix
);
int rm_range_keys(
- const string &prefix,
- const string &start,
- const string &end
+ const std::string &prefix,
+ const std::string &start,
+ const std::string &end
);
class TransactionImpl_ : public TransactionImpl {
public:
- list<Context *> on_commit;
+ std::list<Context *> on_commit;
KeyValueDBMemory *db;
explicit TransactionImpl_(KeyValueDBMemory *db) : db(db) {}
struct SetOp : public Context {
KeyValueDBMemory *db;
- std::pair<string,string> key;
+ std::pair<std::string,std::string> key;
bufferlist value;
SetOp(KeyValueDBMemory *db,
- const std::pair<string,string> &key,
+ const std::pair<std::string,std::string> &key,
const bufferlist &value)
: db(db), key(key), value(value) {}
void finish(int r) override {
}
};
- void set(const string &prefix, const string &k, const bufferlist& bl) override {
+ void set(const std::string &prefix, const std::string &k, const bufferlist& bl) override {
on_commit.push_back(new SetOp(db, std::make_pair(prefix, k), bl));
}
struct RmKeysOp : public Context {
KeyValueDBMemory *db;
- std::pair<string,string> key;
+ std::pair<std::string,std::string> key;
RmKeysOp(KeyValueDBMemory *db,
- const std::pair<string,string> &key)
+ const std::pair<std::string,std::string> &key)
: db(db), key(key) {}
void finish(int r) override {
db->rmkey(key.first, key.second);
using KeyValueDB::TransactionImpl::rmkey;
using KeyValueDB::TransactionImpl::set;
- void rmkey(const string &prefix, const string &key) override {
+ void rmkey(const std::string &prefix, const std::string &key) override {
on_commit.push_back(new RmKeysOp(db, std::make_pair(prefix, key)));
}
struct RmKeysByPrefixOp : public Context {
KeyValueDBMemory *db;
- string prefix;
+ std::string prefix;
RmKeysByPrefixOp(KeyValueDBMemory *db,
- const string &prefix)
+ const std::string &prefix)
: db(db), prefix(prefix) {}
void finish(int r) override {
db->rmkeys_by_prefix(prefix);
}
};
- void rmkeys_by_prefix(const string &prefix) override {
+ void rmkeys_by_prefix(const std::string &prefix) override {
on_commit.push_back(new RmKeysByPrefixOp(db, prefix));
}
struct RmRangeKeys: public Context {
KeyValueDBMemory *db;
- string prefix, start, end;
- RmRangeKeys(KeyValueDBMemory *db, const string &prefix, const string &s, const string &e)
+ std::string prefix, start, end;
+ RmRangeKeys(KeyValueDBMemory *db, const std::string &prefix, const std::string &s, const std::string &e)
: db(db), prefix(prefix), start(s), end(e) {}
void finish(int r) {
db->rm_range_keys(prefix, start, end);
}
};
- void rm_range_keys(const string &prefix, const string &start, const string &end) {
+ void rm_range_keys(const std::string &prefix, const std::string &start, const std::string &end) {
on_commit.push_back(new RmRangeKeys(db, prefix, start, end));
}
int complete() {
- for (list<Context *>::iterator i = on_commit.begin();
+ for (auto i = on_commit.begin();
i != on_commit.end();
on_commit.erase(i++)) {
(*i)->complete(0);
}
~TransactionImpl_() override {
- for (list<Context *>::iterator i = on_commit.begin();
+ for (auto i = on_commit.begin();
i != on_commit.end();
on_commit.erase(i++)) {
delete *i;
return static_cast<TransactionImpl_*>(trans.get())->complete();
}
- uint64_t get_estimated_size(map<string,uint64_t> &extras) override {
+ uint64_t get_estimated_size(std::map<std::string,uint64_t> &extras) override {
uint64_t total_size = 0;
- for (map<pair<string,string>,bufferlist>::iterator p = db.begin();
- p != db.end(); ++p) {
- string prefix = p->first.first;
- bufferlist &bl = p->second;
+ for (auto& [key, bl] : db) {
+ string prefix = key.first;
uint64_t sz = bl.length();
total_size += sz;
}
private:
- bool exists_prefix(const string &prefix) {
- std::map<std::pair<string,string>,bufferlist>::iterator it;
+ bool exists_prefix(const std::string &prefix) {
+ std::map<std::pair<std::string,std::string>,bufferlist>::iterator it;
it = db.lower_bound(std::make_pair(prefix, ""));
return ((it != db.end()) && ((*it).first.first == prefix));
}