当前位置: 首页>>代码示例>>C++>>正文


C++ MojAssert函数代码示例

本文整理汇总了C++中MojAssert函数的典型用法代码示例。如果您正苦于以下问题:C++ MojAssert函数的具体用法?C++ MojAssert怎么用?C++ MojAssert使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了MojAssert函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: LOG_TRACE

MojErr MojDbSandwichDatabase::update(const MojObject& id, MojBuffer& val, MojDbStorageItem* oldVal, MojDbStorageTxn* txn)
{
    LOG_TRACE("Entering function %s", __FUNCTION__);
    MojAssert(oldVal && txn);

    MojErr err = txn->offsetQuota(-(MojInt64) oldVal->size());
    MojErrCheck(err);

    // add/replace with a new one
    err = put(id, val, txn, false);
    MojErrCheck(err);

    return MojErrNone;
}
开发者ID:ctbrowser,项目名称:db8,代码行数:14,代码来源:MojDbSandwichDatabase.cpp

示例2: MojAssert

MojErr MojDbServiceHandler::handleFind(MojServiceMessage* msg, MojObject& payload, MojDbReq& req)
{
	MojAssert(msg);
	MojLogTrace(s_log);
	
	bool doCount = false;
	payload.get(MojDbServiceDefs::CountKey, doCount);

	MojDbCursor cursor;
	MojErr err = findImpl(msg, payload, req, cursor, doCount);
	MojErrCheck(err);

	return MojErrNone;
}
开发者ID:anttiharju-owo,项目名称:db8,代码行数:14,代码来源:MojDbServiceHandler.cpp

示例3: MojAssert

MojErr MojService::dispatchCancel(MojServiceMessage* msg)
{
	MojAssert(msg);
	MojAssertMutexUnlocked(m_mutex);
	MojLogTrace(s_log);

	SubscriptionKey key;
	MojErr err = key.init(msg);
	MojErrCheck(err);
	err = dispatchCancel(key);
	MojErrCheck(err);

	return MojErrNone;
}
开发者ID:BigBlueHat,项目名称:db8,代码行数:14,代码来源:MojService.cpp

示例4: LOG_TRACE

MojErr MojDbSearchCursor::sort()
{
    LOG_TRACE("Entering function %s", __FUNCTION__);
    MojAssert(!m_orderProp.empty());

    // TODO: instead of parsing all objects, find the serialized field in the object and compare it directly
    // create extractor for sort prop
    MojRefCountedPtr<MojDbTextCollator> collator(new MojDbTextCollator);
    MojAllocCheck(collator.get());
    // TODO: use real locale
    //MojErr err = collator->init(_T(""), MojDbCollationPrimary);
    MojErr err = MojErrNone;

    // set locale
    MojString locale = m_locale;
    if(m_dbIndex) {
        locale = m_dbIndex->locale();
    }
    // set collate
    MojDbCollationStrength coll = m_collation;
    if (coll == MojDbCollationInvalid) {
        // default setting is primary
        coll = MojDbCollationPrimary;
    }
    err = collator->init(locale, coll);
    MojErrCheck(err);

    MojDbPropExtractor extractor;
    extractor.collator(collator.get());
    err = extractor.prop(m_orderProp);
    MojErrCheck(err);

    // create sort keys
    MojDbKeyBuilder builder;
    ItemVec::Iterator begin;
    err = m_items.begin(begin);
    MojErrCheck(err);
    for (ItemVec::Iterator i = begin; i != m_items.end(); ++i) {
        KeySet keys;
        err = extractor.vals((*i)->obj(), keys);
        MojErrCheck(err);
        (*i)->sortKeys(keys);
    }

    // sort
    err = m_items.sort();
    MojErrCheck(err);

    return MojErrNone;
}
开发者ID:pombredanne,项目名称:db8,代码行数:50,代码来源:MojDbSearchCursor.cpp

示例5: MojAssert

MojErr MojDbIndex::cancelWatch(MojDbWatcher* watcher)
{
	MojAssert(isOpen());
	MojAssert(watcher);
	MojLogTrace(s_log);

	MojLogInfo(s_log, _T("Index_cancelWatch: index name = %s; domain = %s\n"),
				this->name().data(), watcher->domain().data());

	MojThreadWriteGuard guard(m_lock);
	MojSize idx;
	MojSize size = m_watcherVec.size();
	for (idx = 0; idx < size; ++idx) {
		if (m_watcherVec.at(idx).get() == watcher) {
			MojErr err = m_watcherVec.erase(idx);
			MojErrCheck(err);
			WatcherMap::Iterator iter;
			err = m_watcherMap.find(watcher->domain(), iter);
			MojErrCheck(err);
			if (iter != m_watcherMap.end()) {
				iter.value() -= 1;
				if (iter.value() == 0) {
					bool found = false;
					m_watcherMap.del(iter.key(), found);
					MojAssert(found);
					MojLogInfo(s_log, _T("Index_cancelwatch: Domain Del found = %d; index name = %s; domain = %s\n"),
 						(int)found, this->name().data(), watcher->domain().data());
				}
			}
			break;
		}
	}
	if (idx == size)
		MojErrThrow(MojErrDbWatcherNotRegistered);

	return MojErrNone;
}
开发者ID:KyleMaas,项目名称:db8,代码行数:37,代码来源:MojDbIndex.cpp

示例6: MojAssert

MojErr MojDbSandwichEngine::open(const MojChar* path)
{
    MojAssert(path);
    MojAssert(m_env.get());
	MojAssert(!m_isOpen);

	MojErr err;

	err = m_path.assign(path);
	MojErrCheck(err);

	// TODO: We should get this options from ENV
	m_db->options = MojDbSandwichEngine::getOpenOptions();
	m_db->writeOptions = MojDbSandwichEngine::getWriteOptions();
	m_db->readOptions = MojDbSandwichEngine::getReadOptions();

	leveldb::Status status = m_db->Open(path);
	MojLdbErrCheck(status, _T("db_create/db_open"));

	// open seqence db
	m_seqDb.reset(new MojDbSandwichDatabase(m_db.use(MojEnvSeqDbName)));
	MojAllocCheck(m_seqDb.get());

	err = m_seqDb->open(MojEnvSeqDbName, this);
	MojErrCheck(err);

	// open index db
	m_indexDb.reset(new MojDbSandwichDatabase(m_db.use(MojEnvIndexDbName)));
	MojAllocCheck(m_indexDb.get());

	err = m_indexDb->open(MojEnvIndexDbName, this);
	MojErrCheck(err);

	m_isOpen = true;

    return MojErrNone;
}
开发者ID:feniksa,项目名称:indb8,代码行数:37,代码来源:MojDbSandwichEngine.cpp

示例7: LOG_TRACE

MojErr MojDbIndex::cancelWatch(MojDbWatcher* watcher)
{
    LOG_TRACE("Entering function %s", __FUNCTION__);
	MojAssert(isOpen());
	MojAssert(watcher);

    LOG_DEBUG("[db_mojodb] Index_cancelWatch: index name = %s; domain = %s\n",
		this->name().data(), watcher->domain().data());

	MojThreadWriteGuard guard(m_lock);
	MojSize idx;
	MojSize size = m_watcherVec.size();
	for (idx = 0; idx < size; ++idx) {
		if (m_watcherVec.at(idx).get() == watcher) {
			MojErr err = m_watcherVec.erase(idx);
			MojErrCheck(err);
			WatcherMap::Iterator iter;
			err = m_watcherMap.find(watcher->domain(), iter);
			MojErrCheck(err);
			if (iter != m_watcherMap.end()) {
				iter.value() -= 1;
				if (iter.value() == 0) {
					bool found = false;
					m_watcherMap.del(iter.key(), found);
					MojAssert(found);
					LOG_DEBUG("[db_mojodb] Index_cancelwatch: Domain Del found = %d; index name = %s; domain = %s\n",
 						(int)found, this->name().data(), watcher->domain().data());
				}
			}
			break;
		}
	}
	if (idx == size)
		MojErrThrow(MojErrDbWatcherNotRegistered);

	return MojErrNone;
}
开发者ID:sailesharya,项目名称:db8,代码行数:37,代码来源:MojDbIndex.cpp

示例8: MojErrCheck

MojErr MojDbTestStorageTxn::commitImpl()
{
	MojErr err = m_testEngine->checkErrMap(_T("txn.commit"));
	if (err != MojErrNone) {
		MojErr errAbort = m_txn->abort();
		MojErrCheck(errAbort);
		return err;
	}

	MojAssert(m_txn.get());
	err = m_txn->commit();
	MojErrCheck(err);

	return MojErrNone;
}
开发者ID:anttiharju-owo,项目名称:db8,代码行数:15,代码来源:MojDbTestStorageEngine.cpp

示例9: MojAssert

MojErr MojGmainReactor::addSock(MojSockT sock)
{
	MojAssert(sock != MojInvalidSock);
	MojAssert(m_mainLoop.get());

	MojThreadGuard guard(m_mutex);
	MojAssert(!m_sources.contains(sock));

	// alloc info and source
	SourcePtr source;
	MojErr err = source.resetChecked((Source*) g_source_new(&s_sourceFuncs, sizeof(Source)));
	MojErrCheck(err);
	source->m_info = new SockInfo(sock, m_mutex);
	MojAllocCheck(source->m_info);
	source->m_info->retain();
	// add to vec
	err = m_sources.put(sock, source);
	MojErrCheck(err);
	// attach
	g_source_attach(source.get(), g_main_loop_get_context(m_mainLoop.get()));
	g_source_add_poll(source.get(), &source->m_info->m_pollFd);

	return MojErrNone;
}
开发者ID:anttiharju-owo,项目名称:db8,代码行数:24,代码来源:MojGmainReactor.cpp

示例10: MojAssert

MojErr MojDbKindState::writeObj(const MojChar* key, const MojObject& val, MojDbStorageDatabase* db,
		MojDbStorageTxn* txn, MojRefCountedPtr<MojDbStorageItem>& oldItem)
{
	MojAssert(key && db && txn);
	MojAssertMutexLocked(m_lock);

	// reconstitute obj
	MojObject obj;
	if (oldItem.get()) {
		MojErr err = oldItem->toObject(obj, *m_kindEngine, false);
		MojErrCheck(err);
	}
	MojErr err = obj.put(key, val);
	MojErrCheck(err);

	// we directly use the storage engine apis because the higher-level apis depend on the kind state.
	MojBuffer buf;
	err = obj.toBytes(buf);
	MojErrCheck(err);

	txn->quotaEnabled(false);
	if (oldItem.get()) {
		err = db->update(m_kindId, buf, oldItem.get(), txn);
		MojErrCheck(err);
	} else {
		err = db->insert(m_kindId, buf, txn);
		MojErrCheck(err);
		// get old item so we can update it next time
		err = db->get(m_kindId, txn, false, oldItem);
                MojAssert(oldItem.get());
		MojErrCheck(err);
	}
	txn->quotaEnabled(true);

	return MojErrNone;
}
开发者ID:feniksa,项目名称:indb8,代码行数:36,代码来源:MojDbKindState.cpp

示例11: MojAssert

MojErr MojDbQuotaEngine::getUsage(const MojString& kindId, MojDbStorageTxn* txn, bool forUpdate, MojInt64& usageOut, MojRefCountedPtr<MojDbStorageItem>& itemOut)
{
	MojAssert(txn);

	usageOut = 0;
	MojErr err = m_usageDb->get(kindId, txn, forUpdate, itemOut);
	MojErrCheck(err);
	if (itemOut.get()) {
		MojObject val;
		err = itemOut->toObject(val, *m_db->kindEngine(), false);
		MojErrCheck(err);
		usageOut = val.intValue();
	}
	return MojErrNone;
}
开发者ID:anttiharju-owo,项目名称:db8,代码行数:15,代码来源:MojDbQuotaEngine.cpp

示例12: MojAssert

MojErr MojDecimal::assign(const MojChar* str, MojSize n)
{
	MojAssert(str);

    MojNumber::Parser p;
    MojErr err;

    err = MojNumber::Lexer::parse(p, str, n);
    MojErrCheck( err );

    err = p.toDecimal( *this );
    MojErrCheck( err );

    return MojErrNone;
}
开发者ID:ctbrowser,项目名称:db8,代码行数:15,代码来源:MojDecimal.cpp

示例13: MojAssert

MojErr MojDbKind::openIndex(MojDbIndex* index, MojDbReq& req)
{
	MojAssert(index);
	MojAssert(m_db);
	MojLogTrace(s_log);

	// construct storage index name
	MojString name;
	MojErr err = name.format(_T("%s-%d-%s"), m_name.data(), m_version, index->name().data());
	MojErrCheck(err);
	// get id
	MojObject id;
	bool created = false;
	err = m_state->indexId(index->name(), req, id, created);
	MojErrCheck(err);
	// open
	MojRefCountedPtr<MojDbStorageIndex> storageIndex;
	err = m_db->openIndex(id, req.txn(), storageIndex);
	MojErrCheck(err);
	err = index->open(storageIndex.get(), id, req, created);
	MojErrCheck(err);

	return MojErrNone;
}
开发者ID:webOS101,项目名称:db8,代码行数:24,代码来源:MojDbKind.cpp

示例14: MojAssert

MojErr MojSocketMessageParser::readFromSocket(MojSockT sock, MojRefCountedPtr<MojSocketMessage>& msgOut, bool& completeOut)
{
	MojErr err = MojErrNone;
	MojAssert(sock != -1);
	completeOut = false;

	while (m_headerBytes < sizeof(m_header)) {
		MojInt32 sz = recv(sock, m_headerBuf+m_headerBytes, sizeof(m_header) - m_headerBytes, 0);
		MojParserRecvCheck(sz);
		m_headerBytes += sz;
		if (m_headerBytes == sizeof(m_header)) {
			MojDataReader reader(m_headerBuf, m_headerBytes);
			err = m_header.read(reader);
			MojErrCheck(err);
			m_messageData = new MojByte[m_header.messageLen()];
			MojAllocCheck(m_messageData);
		}
	}

	while (m_messageBytesRead < m_header.messageLen()) {
		MojInt32 sz = recv(sock, m_messageData + m_messageBytesRead, m_header.messageLen() - m_messageBytesRead, 0);
		MojParserRecvCheck(sz);
		m_messageBytesRead += sz;
	}

	msgOut.reset(new MojSocketMessage);
	if (!msgOut.get()) {
		err = MojErrNoMem;
		MojErrGoto(err, done);
	}
	MojSize cbConsumed;
	err = msgOut->extract(m_messageData, m_header.messageLen(), cbConsumed);
	MojErrGoto(err, done);
	if (m_header.messageLen() != cbConsumed) {
		err = MojErrInvalidMsg;
		MojErrGoto(err, done);
	}

	completeOut = true;

done:
	if (m_messageData) {
		delete[] m_messageData;
		m_messageData = NULL;
	}

	return err;
}
开发者ID:KyleMaas,项目名称:db8,代码行数:48,代码来源:MojSocketEncoding.cpp

示例15: MojAssert

MojErr MojSockAddr::fromPath(const MojChar* path)
{
    MojAssert(path);

    MojSockAddrUnT addr;
    MojZero(&addr, sizeof(addr));

    if (MojStrLen(path) > (sizeof(addr.sun_path) - 1))
        MojErrThrow(MojErrPathTooLong);
    MojStrCpy(addr.sun_path, path);

    addr.sun_family = MOJ_PF_LOCAL;
    fromAddr((MojSockAddrT*) &addr, sizeof(addr));

    return MojErrNone;
}
开发者ID:webOS-ports,项目名称:db8,代码行数:16,代码来源:MojSock.cpp


注:本文中的MojAssert函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。