diff options
Diffstat (limited to 'src/crepe/facade/DB.cpp')
| -rw-r--r-- | src/crepe/facade/DB.cpp | 12 | 
1 files changed, 3 insertions, 9 deletions
| diff --git a/src/crepe/facade/DB.cpp b/src/crepe/facade/DB.cpp index d45cd82..7a3e473 100644 --- a/src/crepe/facade/DB.cpp +++ b/src/crepe/facade/DB.cpp @@ -21,12 +21,6 @@ DB::DB(const string & path) {  	const char * file = path.empty() ? NULL : path.c_str();  	ret = this->db->open(this->db.get(), NULL, file, NULL, libdb::DB_BTREE, DB_CREATE, 0);  	if (ret != 0) throw runtime_error(format("db->open: {}", libdb::db_strerror(ret))); - -	// create cursor -	libdb::DBC * cursor; -	ret = this->db->cursor(this->db.get(), NULL, &cursor, 0); -	if (ret != 0) throw runtime_error(format("db->cursor: {}", libdb::db_strerror(ret))); -	this->cursor = {cursor, [](libdb::DBC * cursor) { cursor->close(cursor); }};  }  libdb::DBT DB::to_thing(const string & thing) const noexcept { @@ -42,10 +36,10 @@ string DB::get(const string & key) {  	libdb::DBT db_val;  	memset(&db_val, 0, sizeof(libdb::DBT)); -	int ret = this->cursor->get(this->cursor.get(), &db_key, &db_val, DB_FIRST); +	int ret = this->db->get(this->db.get(), NULL, &db_key, &db_val, 0);  	if (ret == 0) return {static_cast<char *>(db_val.data), db_val.size}; -	string err = format("cursor->get: {}", libdb::db_strerror(ret)); +	string err = format("db->get: {}", libdb::db_strerror(ret));  	if (ret == DB_NOTFOUND) throw out_of_range(err);  	else throw runtime_error(err);  } @@ -54,7 +48,7 @@ void DB::set(const string & key, const string & value) {  	libdb::DBT db_key = this->to_thing(key);  	libdb::DBT db_val = this->to_thing(value);  	int ret = this->db->put(this->db.get(), NULL, &db_key, &db_val, 0); -	if (ret != 0) throw runtime_error(format("cursor->get: {}", libdb::db_strerror(ret))); +	if (ret != 0) throw runtime_error(format("db->get: {}", libdb::db_strerror(ret)));  }  bool DB::has(const std::string & key) { |