MojErr MojDbTestStorageEngine::open(const MojChar* path) { MojErr err = checkErrMap(_T("engine.open")); MojErrCheck(err); MojAssert(m_engine.get()); return m_engine->open(path, m_env->parentEnv().get()); }
MojErr MojDbTestStorageEngine::drop(const MojChar* path, MojDbStorageTxn* txn) { MojErr err = checkErrMap(_T("engine.drop")); MojErrCheck(err); MojAssert(m_engine.get()); return m_engine->drop(path, txn); }
MojErr MojDbTestStorageEngine::configure(const MojObject& conf) { MojErr err = checkErrMap(_T("engine.configure")); MojErrCheck(err); MojAssert(m_engine.get()); return m_engine->configure(conf); }
MojErr MojDbTestStorageEngine::compact() { MojErr err = checkErrMap(_T("engine.compact")); MojErrCheck(err); MojAssert(m_engine.get()); return m_engine->compact(); }
MojErr MojDbTestStorageEngine::openDatabase(const MojChar* name, MojDbStorageTxn* txn, MojRefCountedPtr<MojDbStorageDatabase>& dbOut) { MojErr err = checkErrMap(_T("engine.openDatabase")); MojErrCheck(err); MojAssert(name && !dbOut.get()); //open the actual storage database MojAssert(m_engine.get()); MojRefCountedPtr<MojDbStorageDatabase> realDb; err = m_engine->openDatabase(name, MojTestTxn(txn), realDb); MojErrCheck(err); //create the test storage db as a wrapper MojRefCountedPtr<MojDbTestStorageDatabase> db(new MojDbTestStorageDatabase(realDb.get(), this)); MojAllocCheck(db.get()); dbOut = db; return MojErrNone; }
MojErr MojDbTestStorageEngine::openSequence(const MojChar* name, MojDbStorageTxn* txn, MojRefCountedPtr<MojDbStorageSeq>& seqOut) { MojErr err = checkErrMap(_T("engine.openSequence")); MojErrCheck(err); MojAssert(name && !seqOut.get()); //open the actual storage sequence MojAssert(m_engine.get()); MojRefCountedPtr<MojDbStorageSeq> realSeq; err = m_engine->openSequence(name, MojTestTxn(txn), realSeq); MojErrCheck(err); //create the test storage seq as a wrapper MojRefCountedPtr<MojDbTestStorageSeq> seq(new MojDbTestStorageSeq(realSeq.get(), this)); MojAllocCheck(seq.get()); seqOut = seq; return MojErrNone; }
MojErr MojDbTestStorageEngine::beginTxn(MojRefCountedPtr<MojDbStorageTxn>& txnOut) { MojErr err = checkErrMap(_T("engine.beginTxn")); MojErrCheck(err); MojAssert(m_engine.get()); MojAssert(!txnOut.get()); //create the real transaction MojRefCountedPtr<MojDbStorageTxn> realTxn; err = m_engine->beginTxn(realTxn); MojErrCheck(err); //create a test txn wrapper around the real txn MojRefCountedPtr<MojDbTestStorageTxn> txn(new MojDbTestStorageTxn(realTxn.get(), this)); MojAllocCheck(txn.get()); txnOut = txn; return MojErrNone; }