{
try {
auto transaction = d_env.getROTransaction();
- auto dbi = transaction->openDB(d_dbName, 0);
MDBOutVal result;
- int rc = transaction->get(dbi, MDBInVal(key), result);
+ int rc = transaction->get(d_dbi, MDBInVal(key), result);
if (rc == 0) {
value = result.get<std::string>();
return true;
{
try {
auto transaction = d_env.getROTransaction();
- auto dbi = transaction->openDB(d_dbName, 0);
MDBOutVal result;
- int rc = transaction->get(dbi, MDBInVal(key), result);
+ int rc = transaction->get(d_dbi, MDBInVal(key), result);
if (rc == 0) {
return true;
}
class LMDBKVStore: public KeyValueStore
{
public:
- LMDBKVStore(const std::string& fname, const std::string& dbName): d_env(fname.c_str(), MDB_NOSUBDIR, 0600), d_fname(fname), d_dbName(dbName)
+ LMDBKVStore(const std::string& fname, const std::string& dbName): d_env(fname.c_str(), MDB_NOSUBDIR, 0600), d_dbi(d_env.openDB(dbName, 0)), d_fname(fname), d_dbName(dbName)
{
}
private:
MDBEnv d_env;
+ MDBDbi d_dbi;
std::string d_fname;
std::string d_dbName;
};