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


C++ leveldb::Status类代码示例

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


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

示例1: write

bool LevelDBDatabase::write(LevelDBWriteBatch& writeBatch)
{
    leveldb::WriteOptions writeOptions;
    writeOptions.sync = true;

    const leveldb::Status s = m_db->Write(writeOptions, writeBatch.m_writeBatch.get());
    if (s.ok())
        return true;
    LOG_ERROR("LevelDB write failed: %s", s.ToString().c_str());
    return false;
}
开发者ID:CannedFish,项目名称:deepin-webkit,代码行数:11,代码来源:LevelDBDatabase.cpp

示例2: HandleError

void HandleError(const leveldb::Status &status) throw(leveldb_error) {
    if (status.ok())
        return;
    if (status.IsCorruption())
        throw leveldb_error("Database corrupted");
    if (status.IsIOError())
        throw leveldb_error("Database I/O error");
    if (status.IsNotFound())
        throw leveldb_error("Database entry missing");
    throw leveldb_error("Unknown database error");
}
开发者ID:Abioy,项目名称:darkcoin,代码行数:11,代码来源:leveldb.cpp

示例3: makeSlice

bool LevelDBDatabase::put(const LevelDBSlice& key, const Vector<char>& value)
{
    leveldb::WriteOptions writeOptions;
    writeOptions.sync = true;

    const leveldb::Status s = m_db->Put(writeOptions, makeSlice(key), makeSlice(value));
    if (s.ok())
        return true;
    LOG_ERROR("LevelDB put failed: %s", s.ToString().c_str());
    return false;
}
开发者ID:CannedFish,项目名称:deepin-webkit,代码行数:11,代码来源:LevelDBDatabase.cpp

示例4: HandleError

void HandleError(const leveldb::Status &status) noexcept(false) {
    if (status.ok())
        return;
    LogPrintf("%s\n", status.ToString());
    if (status.IsCorruption())
        throw leveldb_error("Database corrupted");
    if (status.IsIOError())
        throw leveldb_error("Database I/O error");
    if (status.IsNotFound())
        throw leveldb_error("Database entry missing");
    throw leveldb_error("Unknown database error");
}
开发者ID:aurarad,项目名称:Auroracoin,代码行数:12,代码来源:leveldbwrapper.cpp

示例5: makeSlice

bool LevelDBDatabase::get(const LevelDBSlice& key, Vector<char>& value)
{
    std::string result;
    leveldb::ReadOptions readOptions;
    readOptions.verify_checksums = true; // FIXME: Disable this if the performance impact is too great.

    const leveldb::Status s = m_db->Get(readOptions, makeSlice(key), &result);
    if (s.ok()) {
        value = makeVector(result);
        return true;
    }
    if (s.IsNotFound())
        return false;
    LOG_ERROR("LevelDB get failed: %s", s.ToString().c_str());
    return false;
}
开发者ID:studiomobile,项目名称:webcore,代码行数:16,代码来源:LevelDBDatabase.cpp

示例6: make_status_tuple

extern ERL_NIF_TERM make_status_tuple(ErlNifEnv* env, leveldb::Status status){
    const char* type;
    if(status.IsNotFound()){
	type = "not_found";
    }
    else if(status.IsCorruption()){
	type = "corruption";
    }
    else if(status.IsIOError()){
	type = "io_error";
    }
    else{
	type = "unspecified";
    }
    const char* stString = status.ToString().c_str();
    return enif_make_tuple2(env, enif_make_atom(env, "error"),
			    enif_make_atom(env, type));
}
开发者ID:pundunlabs,项目名称:erl_leveldb,代码行数:18,代码来源:leveldb_lib.cpp

示例7: throw

void LevelDB::checkDbError(leveldb::Status aStatus) throw(DbException) {
	if (aStatus.ok())
		return;

	if (aStatus.IsNotFound())
		return;

	string ret = Text::toUtf8(aStatus.ToString());

#ifdef _WIN32
	if (aStatus.IsCorruption() || aStatus.IsIOError()) {
		if (ret.back() != '.')
			ret += ".";
		ret += " " + STRING_F(DB_ERROR_HINT, STRING(HASHING));
	}
#endif

	throw DbException(ret);
}
开发者ID:airdcnano,项目名称:airdcnano,代码行数:19,代码来源:LevelDB.cpp

示例8: adoptPtr

PassOwnPtr<LevelDBDatabase> LevelDBDatabase::open(const String& fileName, const LevelDBComparator* comparator)
{
    OwnPtr<ComparatorAdapter> comparatorAdapter = adoptPtr(new ComparatorAdapter(comparator));

    leveldb::Options options;
    options.comparator = comparatorAdapter.get();
    options.create_if_missing = true;
    options.paranoid_checks = true;
    leveldb::DB* db;
    const leveldb::Status s = leveldb::DB::Open(options, fileName.utf8().data(), &db);

    if (!s.ok()) {
        LOG_ERROR("Failed to open LevelDB database from %s: %s", fileName.ascii().data(), s.ToString().c_str());
        return nullptr;
    }

    OwnPtr<LevelDBDatabase> result = adoptPtr(new LevelDBDatabase);
    result->m_db = adoptPtr(db);
    result->m_comparatorAdapter = comparatorAdapter.release();
    result->m_comparator = comparator;

    return result.release();
}
开发者ID:studiomobile,项目名称:webcore,代码行数:23,代码来源:LevelDBDatabase.cpp

示例9: lock

bool KeyValueStorage::process_status(const leveldb::Status & status, bool reopen) {
	if (status.ok()) {
		return true;
	}
	std::lock_guard<Mutex> lock(mutex);
	error = status.ToString();
	if (status.IsCorruption()) {
		if (++repairs > 2)
			return false;
		errorstream << "Trying to repair database [" << db_name << "] try=" << repairs << " [" << error << "]" << std::endl;
		leveldb::Options options;
		options.create_if_missing = true;
		leveldb::Status status_repair;
		try {
			status_repair = leveldb::RepairDB(fullpath, options);
		} catch (std::exception &e) {
			errorstream << "First repair [" << db_name << "] exception [" << e.what() << "]" << std::endl;
			auto options_repair = options;
			options_repair.paranoid_checks = true;
			try {
				status_repair = leveldb::RepairDB(fullpath, options_repair);
			} catch (std::exception &e) {
				errorstream << "Second repair [" << db_name << "] exception [" << e.what() << "]" << std::endl;
			}
		}
		if (!status.ok()) {
			error = status.ToString();
			errorstream << "Repair [" << db_name << "] fail [" << error << "]" << std::endl;
			delete db;
			db = nullptr;
			return false;
		}
		if (reopen) {
			auto status_open = leveldb::DB::Open(options, fullpath, &db);
			if (!status_open.ok()) {
				error = status_open.ToString();
				errorstream << "Trying to reopen database [" << db_name << "] fail [" << error << "]" << std::endl;
				delete db;
				db = nullptr;
				return false;
			}
		}
	}
	return status.ok();
}
开发者ID:alexxvk,项目名称:freeminer,代码行数:45,代码来源:key_value_storage.cpp

示例10: CheckStatus

bool CheckStatus(leveldb::Status& status) {
	if (!status.ok()) {
		std::cerr << status.ToString() << std::endl;
	}
	return status.ok();
}
开发者ID:icejoywoo,项目名称:HelloCpp,代码行数:6,代码来源:hello_world.cpp


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