#include "testdb/testdb.h" #include "db/db_impl.h" #include #include "leveldb/status.h" #include "testdb.h" using namespace testdb; Status testDB::OpentestDB(Options& options, const std::string& name, testDB** dbptr) { // options.env->CreateDir("./abc") if(*dbptr == nullptr){ return Status::NotSupported(name, "new a testDb first\n"); } // Status status; DB *indexdb, *kvdb, *metadb; // options.block_cache = NewLRUCache(ULONG_MAX); // options.max_open_files = 1000; // options.write_buffer_size = 512 * 1024 * 1024; // options.env = getPosixEnv(); // status = Open(options, name+"_indexDB", &indexdb); // if(!status.ok()) return status; // (*dbptr)->indexDB_ = indexdb; // options.env = getPosixEnv(); status = DB::Open(options, name+"_kvDB", &kvdb); if(!status.ok()) return status; (*dbptr)->kvDB_ = kvdb; // options.env = getPosixEnv(); // status = Open(options, name+"_metaDB", &metadb); // if(!status.ok()) return status; // (*dbptr)->metaDB_ = metadb; (*dbptr)->dbname_ = name; // status = (*dbptr)->Recover(); (*dbptr)->options_ = &options; (*dbptr)->env_ = options.env; return status; } Status testDB::Put(const WriteOptions &options, const Slice &key, const Slice &value) { return kvDB_->Put(options, key, value); } Status testDB::PutFields(const WriteOptions &, const Slice &key, const FieldArray &tests) { return Status::OK(); } Status testDB::Delete(const WriteOptions &options, const Slice &key) { return kvDB_->Delete(options, key); } Status testDB::Write(const WriteOptions &options, WriteBatch *updates) { return kvDB_->Write(options, updates); } Status testDB::Get(const ReadOptions &options, const Slice &key, std::string *value) { return kvDB_->Get(options, key, value); } Status testDB::GetFields(const ReadOptions &options, const Slice &key, FieldArray *tests) { return Status::OK(); } std::vector testDB::FindKeysByField(Field &test) { return std::vector(); } Iterator * testDB::NewIterator(const ReadOptions &options) { return kvDB_->NewIterator(options); } const Snapshot * testDB::GetSnapshot() { return kvDB_->GetSnapshot(); } void testDB::ReleaseSnapshot(const Snapshot *snapshot) { kvDB_->ReleaseSnapshot(snapshot); } bool testDB::GetProperty(const Slice &property, std::string *value) { return kvDB_->GetProperty(property, value); } void testDB::GetApproximateSizes(const Range *range, int n, uint64_t *sizes) { kvDB_->GetApproximateSizes(range, n, sizes); } void testDB::CompactRange(const Slice *begin, const Slice *end) { kvDB_->CompactRange(begin, end); } Status testdb::DestroyDB(const std::string& name, const Options& options) { Status s; s = leveldb::DestroyDB(name+"_kvDB", options); assert(s.ok()); // s = leveldb::DestroyDB(name+"_indexDB", options); // assert(s.ok()); // s = leveldb::DestroyDB(name+"_metaDB", options); // assert(s.ok()); return s; } testDB::~testDB() { delete kvDB_; // delete indexDB_; // delete metaDB_; }