MojErr MojObjectFilter::Node::addChild(MojAutoPtr<Node> child) { MojAssert(child.get()); MojErr err = this->m_children.push(child.get()); MojErrCheck(err); child.release(); return MojErrNone; }
MojErr MojBuffer::release(MojAutoPtr<Chunk>& chunkOut) { MojErr err = consolidate(); MojErrCheck(err); MojAssert(m_chunks.size() <= 1); if (m_chunks.empty()) { chunkOut.reset(); } else { chunkOut.reset(m_chunks.popFront()); } return MojErrNone; }
void MojLogEngine::updateAppender(MojAutoPtr<MojLogAppender> appender) { MojAssertMutexLocked(m_mutex); if (appender.get()) { m_configuredAppender = appender; m_appender = m_configuredAppender.get(); } else { m_configuredAppender.reset(); m_appender = &m_defaultAppender; } }
MojErr MojDbLevelIndex::find(MojAutoPtr<MojDbQueryPlan> plan, MojDbStorageTxn* txn, MojRefCountedPtr<MojDbStorageQuery>& queryOut) { LOG_TRACE("Entering function %s", __FUNCTION__); MojAssert(isOpen()); MojAssert(plan.get() && txn); MojRefCountedPtr<MojDbLevelQuery> storageQuery(new MojDbLevelQuery()); MojAllocCheck(storageQuery.get()); MojErr err = storageQuery->open(m_db.get(), m_primaryDb.get(), plan, txn); MojErrCheck(err); queryOut = storageQuery; return MojErrNone; }
MojErr MojDbIsamQuery::open(MojAutoPtr<MojDbQueryPlan> plan, MojDbStorageTxn* txn) { MojAssert(!m_isOpen); MojAssert(plan.get() && txn); m_isOpen = true; m_plan = plan; m_iter = m_plan->ranges().begin(); m_state = StateSeek; m_txn = txn; m_endKey.clear(); m_distinct = m_plan->query().distinct(); return MojErrNone; }
MojErr MojDbLevelQuery::open(MojDbLevelDatabase* db, MojDbLevelDatabase* joinDb, MojAutoPtr<MojDbQueryPlan> plan, MojDbStorageTxn* txn) { MojAssert(!m_isOpen); MojAssert(db && db->impl() && plan.get()); MojErr err = MojDbIsamQuery::open(plan, txn); MojErrCheck(err); err = m_cursor.open(db, txn, 0); MojErrCheck(err); m_db = joinDb; return MojErrNone; }
MojErr MojDbTestStorageIndex::find(MojAutoPtr<MojDbQueryPlan> plan, MojDbStorageTxn* txn, MojRefCountedPtr<MojDbStorageQuery>& queryOut) { MojErr err = m_testEngine->checkErrMap(_T("index.find")); MojErrCheck(err); MojAssert(m_idx.get()); MojAssert(plan.get()); //create the real query MojRefCountedPtr<MojDbStorageQuery> realQuery; err = m_idx->find(plan, MojTestTxn(txn), realQuery); MojErrCheck(err); MojRefCountedPtr<MojDbTestStorageQuery> storageQuery(new MojDbTestStorageQuery(realQuery.get(), m_testEngine)); MojAllocCheck(storageQuery.get()); queryOut = storageQuery; return MojErrNone; }
MojErr MojAutoPtrTest::run() { MojErr err = MojErrNone; MojAutoPtr<int> intPtr1; MojAutoPtr<MojString> strPtr1; MojAutoArrayPtr<MojChar> charPtr1; MojAutoPtr<int> intPtr2(new int(5)); MojAutoPtr<MojString> strPtr2(new MojString()); MojAutoArrayPtr<MojChar> charPtr2(new MojChar[6]); MojAutoPtr<int> intPtr3(new int(5)); MojAutoPtr<MojString> strPtr3(new MojString()); MojAutoArrayPtr<MojChar> charPtr3(new MojChar[6]); MojAutoPtr<int> intPtr4(intPtr3); MojAutoPtr<MojString> strPtr4(strPtr3); MojAutoArrayPtr<MojChar> charPtr4(charPtr3); MojSharedPtr<int> intSp1; MojSharedPtr<int> intSp2(intSp1); MojSharedPtr<MojString> strSp1; MojSharedPtr<MojString> strSp2(strSp1); MojSharedArrayPtr<MojChar> charSp1; MojSharedArrayPtr<MojChar> charSp2; MojTestAssert(!intPtr1.get()); MojTestAssert(!strPtr1.get()); MojTestAssert(!charPtr1.get()); MojTestAssert(!intPtr3.get()); MojTestAssert(!strPtr3.get()); MojTestAssert(!charPtr3.get()); MojTestAssert(intPtr2.get()); MojTestAssert(strPtr2.get()); MojTestAssert(charPtr2.get()); MojTestAssert(intPtr4.get()); MojTestAssert(strPtr4.get()); MojTestAssert(charPtr4.get()); MojTestAssert(!intPtr1.release()); intPtr1.reset(); strPtr1.reset(); charPtr1.reset(); MojTestAssert(*intPtr2.get() == 5); MojTestAssert(*intPtr2 == 5); MojTestAssert(strPtr2->empty()); MojStrCpy(charPtr2.get(), _T("hello")); MojTestAssert(*charPtr2 == _T('h')); err = strPtr2->assign(charPtr2.get()); MojTestErrCheck(err); MojTestAssert(*strPtr2 == charPtr2.get()); intPtr1 = intPtr2; strPtr1 = strPtr2; charPtr1 = charPtr2; MojTestAssert(!intPtr2.get()); MojTestAssert(!strPtr2.get()); MojTestAssert(!charPtr2.get()); MojTestAssert(intPtr1.get()); MojTestAssert(strPtr1.get()); MojTestAssert(charPtr1.get()); MojTestAssert(*intPtr1 == 5); MojTestAssert(*strPtr1 == _T("hello")); MojTestAssert(*charPtr1 == _T('h')); delete intPtr1.release(); // related type MojAutoPtr<FooTest> foop; MojAutoPtr<BarTest> barp(new BarTest()); MojAllocCheck(barp.get()); BarTest* barraw = barp.get(); foop = barp; MojTestAssert(foop.get() == barraw); MojTestAssert(barp.get() == NULL); MojAutoPtr<FooTest> foop2(barp); MojSharedPtr<FooTest> foosp; MojSharedPtr<BarTest> barsp; foosp = barsp; MojSharedPtr<FooTest> foosp2(barsp); // shared ptrs MojTestAssert(!intSp1.get()); MojTestAssert(intSp1.refcount() == 0); MojTestAssert(!intSp2.get()); MojTestAssert(intSp2.refcount() == 0); MojTestAssert(!strSp1.get()); MojTestAssert(strSp1.refcount() == 0); MojTestAssert(!strSp2.get()); MojTestAssert(strSp2.refcount() == 0); MojTestAssert(!charSp1.get()); MojTestAssert(charSp1.refcount() == 0); MojTestAssert(!charSp2.get()); MojTestAssert(charSp2.refcount() == 0); err = intSp1.reset(new int(10)); MojTestErrCheck(err); MojTestAssert(intSp1.get() && *intSp1 == 10); MojTestAssert(!intSp2.get()); MojTestAssert(intSp1.refcount() == 1); intSp2 = intSp1; MojTestAssert(intSp1.get() && *intSp1 == 10); MojTestAssert(intSp2.get() && *intSp2 == 10); MojTestAssert(intSp1.refcount() == 2); MojTestAssert(intSp2.refcount() == 2); err = intSp1.reset(new int(20)); MojTestErrCheck(err); MojTestAssert(intSp1.get() && *intSp1 == 20); MojTestAssert(intSp2.get() && *intSp2 == 10); MojTestAssert(intSp1.refcount() == 1); MojTestAssert(intSp2.refcount() == 1); intSp2 = intSp1; MojTestAssert(intSp1.get() && *intSp1 == 20); MojTestAssert(intSp2.get() && *intSp2 == 20); MojTestAssert(intSp1.refcount() == 2); MojTestAssert(intSp2.refcount() == 2); err = intSp1.reset(NULL); MojTestErrCheck(err); MojTestAssert(!intSp1.get()); MojTestAssert(intSp1.refcount() == 0); MojTestAssert(intSp2.get() && *intSp2 == 20); MojTestAssert(intSp2.refcount() == 1); err = strSp1.reset(new MojString); MojTestErrCheck(err); MojTestAssert(strSp1.get()); MojTestAssert(strSp1->empty()); MojTestAssert(*strSp1 == _T("")); strSp2 = strSp1; MojTestAssert(*strSp2 == _T("")); err = charSp1.reset(new MojChar[100]); MojErrCheck(err); MojTestAssert(charSp1.get()); charSp2 = charSp1; MojTestAssert(charSp1.get() == charSp2.get()); err = charSp1.resetChecked(new MojChar[100]); MojErrCheck(err); err = charSp1.resetChecked(NULL); MojTestErrExpected(err, MojErrNoMem); // refs MojAutoPtr<FooTest> foop3 = makeFooAuto(); takeFooAuto(foop3); takeFooAuto(makeFooAuto()); MojSharedPtr<FooTest> foosp3 = makeFooShared(); takeFooShared(foosp3); takeFooShared(makeFooShared()); return MojErrNone; }
static MojErr takeFooAuto(MojAutoPtr<FooTest> p) { MojTestAssert(p.get()); return MojErrNone; }