• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: None

Try<Option<Entry> > LevelDBStorageProcess::read(const string& name)
{
  CHECK_NONE(error);

  leveldb::ReadOptions options;

  string value;

  leveldb::Status status = db->Get(options, name, &value);

  if (status.IsNotFound()) {
    return None();
  } else if (!status.ok()) {
    return Error(status.ToString());
  }

  google::protobuf::io::ArrayInputStream stream(value.data(), value.size());

  Entry entry;

  if (!entry.ParseFromZeroCopyStream(&stream)) {
    return Error("Failed to deserialize Entry");
  }

  return Some(entry);
}
开发者ID:ankurcha,项目名称:mesos,代码行数:26,代码来源:leveldb.cpp


示例2: GetVIPCData

inline BOOL ConfDB::GetVIPCData(u32 nId, VSCVIPCData &pData)
{
    VSCConfVIPCKey sChKey(nId);

    leveldb::Slice key((char *)&sChKey, sizeof(sChKey));


    leveldb::Iterator* it = m_pDb->NewIterator(leveldb::ReadOptions());

    it->Seek(key);
    leveldb::Slice sysValue;

    if (it->Valid())
    {
        sysValue = it->value();
    }

    if (sysValue.size() != sizeof(VSCVIPCData))
    {
        VDC_DEBUG( "Device Can not find !!!\n");

        delete it;
        return FALSE;
    }

    memcpy(&pData, sysValue.data(), sizeof(VSCVIPCData));

    // Check for any errors found during the scan
    assert(it->status().ok());
    delete it;

    return TRUE;
}
开发者ID:geolffrey,项目名称:ve,代码行数:33,代码来源:confdb.hpp


示例3: key

inline   BOOL ConfDB::GetLicense(astring &strLicense)
{
	VSCConfLicenseKey sLicKey;
	

	leveldb::Slice key((char *)&sLicKey, sizeof(sLicKey));


	leveldb::Iterator* it = m_pDb->NewIterator(leveldb::ReadOptions());

	it->Seek(key);
	leveldb::Slice sysValue;

	if (it->Valid())
	{
		sysValue = it->value();
		strLicense = sysValue.ToString();
	}
	
	// Check for any errors found during the scan
	assert(it->status().ok());
	delete it;

	return TRUE;

}
开发者ID:geolffrey,项目名称:ve,代码行数:26,代码来源:confdb.hpp


示例4: licKey

inline   BOOL ConfDB::SetLicense(astring &strLicense)
{
	VSCConfLicenseKey sLic;
	leveldb::WriteOptions writeOptions;

	leveldb::Slice licKey((char *)&sLic, sizeof(sLic));
	leveldb::Slice licValue(strLicense);
	m_pDb->Put(writeOptions, licKey, licValue);
	return true;
    
}
开发者ID:geolffrey,项目名称:ve,代码行数:11,代码来源:confdb.hpp


示例5: UpdateVIPCData

inline BOOL ConfDB::UpdateVIPCData(u32 nId, VSCVIPCData &pData)
{
    VSCConfVIPCKey sChKey(nId);
    leveldb::WriteOptions writeOptions;

    leveldb::Slice chKey((char *)&sChKey, sizeof(sChKey));
    leveldb::Slice chValue((char *)&pData, sizeof(VSCDeviceData));
    m_pDb->Put(writeOptions, chKey, chValue);

    return TRUE;
}
开发者ID:geolffrey,项目名称:ve,代码行数:11,代码来源:confdb.hpp


示例6: sysKey

/* HDFS record  */
inline s32 ConfDB::UpdateHdfsRecordData(VSCHdfsRecordData &pData)
{
    VSCConfHdfsRecordKey sKey;

    leveldb::WriteOptions writeOptions;

    leveldb::Slice sysKey((char *)&sKey, sizeof(sKey));
    leveldb::Slice sysValue((char *)&pData, sizeof(VSCHdfsRecordData));

    m_pDb->Put(writeOptions, sysKey, sysValue);

    return TRUE;
}
开发者ID:geolffrey,项目名称:ve,代码行数:14,代码来源:confdb.hpp


示例7: initialize

void LevelDBStorageProcess::initialize()
{
  leveldb::Options options;
  options.create_if_missing = true;

  leveldb::Status status = leveldb::DB::Open(options, path, &db);

  if (!status.ok()) {
    // TODO(benh): Consider trying to repair the DB.
    error = status.ToString();
  } else {
    // TODO(benh): Conditionally compact to avoid long recovery times?
    db->CompactRange(NULL, NULL);
  }
}
开发者ID:ankurcha,项目名称:mesos,代码行数:15,代码来源:leveldb.cpp


示例8: Failure

Future<std::set<string> > LevelDBStorageProcess::names()
{
  if (error.isSome()) {
    return Failure(error.get());
  }

  std::set<string> results;

  leveldb::Iterator* iterator = db->NewIterator(leveldb::ReadOptions());

  iterator->SeekToFirst();

  while (iterator->Valid()) {
    results.insert(iterator->key().ToString());
    iterator->Next();
  }

  delete iterator;

  return results;
}
开发者ID:ankurcha,项目名称:mesos,代码行数:21,代码来源:leveldb.cpp


示例9: Error

Try<bool> LevelDBStorageProcess::write(const Entry& entry)
{
  CHECK_NONE(error);

  leveldb::WriteOptions options;
  options.sync = true;

  string value;

  if (!entry.SerializeToString(&value)) {
    return Error("Failed to serialize Entry");
  }

  leveldb::Status status = db->Put(options, entry.name(), value);

  if (!status.ok()) {
    return Error(status.ToString());
  }

  return true;
}
开发者ID:ankurcha,项目名称:mesos,代码行数:21,代码来源:leveldb.cpp


示例10: GetSystemConf

inline BOOL ConfDB::GetSystemConf(VSCConfData &pSys)
{
    VSCConfSystemKey sSysKey;

    leveldb::Slice key((char *)&sSysKey, sizeof(sSysKey));


    leveldb::Iterator* it = m_pDb->NewIterator(leveldb::ReadOptions());

    it->Seek(key);
    leveldb::Slice sysValue;

    if (it->Valid())
    {
        sysValue = it->value();
    }

    if (sysValue.size() != sizeof(VSCConfData))
    {
        VDC_DEBUG( "System Config is not init\n");
        delete it;
        memset(&pSys, 0, sizeof(VSCConfData));
        SysConfDataDefault(pSys);
        UpdateSysData(pSys);
        astring strLicense = " ";
        SetLicense(strLicense);//set the default license
        /* Call get system again */
        return TRUE;
    }

    memcpy(&pSys, sysValue.data(), sizeof(VSCConfData));

    // Check for any errors found during the scan
    assert(it->status().ok());
    delete it;

    return TRUE;

}
开发者ID:geolffrey,项目名称:ve,代码行数:39,代码来源:confdb.hpp


示例11: GetHdfsRecordConf

inline BOOL ConfDB::GetHdfsRecordConf(VSCHdfsRecordData &pData)
{
    VSCConfHdfsRecordKey sKey;

    leveldb::Slice key((char *)&sKey, sizeof(sKey));


    leveldb::Iterator* it = m_pDb->NewIterator(leveldb::ReadOptions());

    it->Seek(key);
    leveldb::Slice sysValue;

    if (it->Valid())
    {
        sysValue = it->value();
    }

    if (sysValue.size() != sizeof(VSCHdfsRecordData))
    {
        VDC_DEBUG( "Hdfs Record Config is not init\n");
        delete it;
		memset(&pData, 0, sizeof(VSCHdfsRecordData));
		VSCHdfsRecordDataItemDefault(pData.data.conf);
		UpdateHdfsRecordData(pData);
        /* Call get system again */
        return TRUE;
    }

	memcpy(&pData, sysValue.data(), sizeof(VSCHdfsRecordData));

    // Check for any errors found during the scan
    assert(it->status().ok());
    delete it;

    return TRUE;

}
开发者ID:geolffrey,项目名称:ve,代码行数:37,代码来源:confdb.hpp


示例12: load

		void load(unsigned short bamIndex)
			{
			size_t n_reads=0;
			std::string value;
			bam1_t *b= bam_init1();
			
			index2chromNames.resize(bamIndex+1);
			WHERE(in->header);
			for(int32_t i=0;i< in->header->n_targets;++i)
				{
				string target_name(in->header->target_name[i]);
				
				index2chromNames.back().push_back(target_name);
				}
			while(samread(this->in, b) > 0) /* loop over the records */
				{
				std::auto_ptr<vector<Hit> > hits(0);
				Bam1Sequence seq(b);
				leveldb::Slice key1(seq.name());
				value.clear();
				WHERE(n_reads);
				leveldb::Status status = db->Get(this->read_options, key1, &value);
				
				if(!status.ok())
					{
					hits.reset(new vector<Hit>());
					n_reads++;
					if(n_reads%1000000UL==0)
						{
						clog <<  n_reads << endl;
						//break;//TODO
						}
					}
				else
					{
					hits=decode(value);
					}
				
				Hit hit;
				hit.bamIndex=bamIndex;
				hit.tid = seq.tid();
				hit.pos = seq.pos();
				hit.flag = seq.flag();
				hits->push_back(hit);
				
				std::auto_ptr<string> encoded = this->encode(hits.get());
				leveldb::Slice value1(encoded->data(),encoded->size());
				status = db->Put(this->write_options, key1, value1);
				if(!status.ok())
					{
					cerr << "Cannot insert into db" << endl;
					break;
					}
				}
			bam_destroy1(b);
			
			}
开发者ID:BioWu,项目名称:variationtoolkit,代码行数:57,代码来源:comparebam.cpp


示例13: Get

			Status Get(const std::string& key, std::string* value)
			{
				leveldb::Status s = db->Get(leveldb::ReadOptions(), key, value);
				if (s.ok())
				{
					return Status::OK();
				}

				return Status::NotFound();
			}
开发者ID:AndryLeon,项目名称:zsearch,代码行数:10,代码来源:KVStoreLevelDb.hpp


示例14: Delete

			Status Delete(const std::string& key)
			{
				leveldb::Status s = db->Delete(leveldb::WriteOptions(), key);

				if (s.ok())
				{
					return Status::OK();
				}

				return Status::NotFound();
			}
开发者ID:AndryLeon,项目名称:zsearch,代码行数:11,代码来源:KVStoreLevelDb.hpp


示例15: Put

			Status Put(const std::string& key, const std::string& value)
			{
				leveldb::Status s = db->Put(leveldb::WriteOptions(), key, value);

				if (s.ok())
				{
					return Status::OK();
				}
                std::cerr << s.ToString() << std::endl;
				return Status::NotFound();

			}
开发者ID:AndryLeon,项目名称:zsearch,代码行数:12,代码来源:KVStoreLevelDb.hpp


示例16: Compact

	      	void Compact()
	      	{
		        db->CompactRange(NULL,NULL);
			}
开发者ID:AndryLeon,项目名称:zsearch,代码行数:4,代码来源:KVStoreLevelDb.hpp


示例17: dump

		void dump()
			{
			
			leveldb::Iterator* it=db->NewIterator(this->read_options);
			for (it->SeekToFirst(); it->Valid(); it->Next())
				{
				std::auto_ptr<vector<Hit> > hits = decode(it->value().ToString());
				size_t i0=0;
				
				while(i0 < hits->size())
					{
					size_t i1=i0+1;
					while(i1<hits->size())
						{
						if(hits->at(i0).bamIndex==hits->at(i1).bamIndex) {++i1; continue;}
		
						if(IS_FLAG_SET(hits->at(i0).flag,BAM_FREAD1)!=IS_FLAG_SET(hits->at(i1).flag,BAM_FREAD1))
							{
							++i1;
							continue;
							}
						if(IS_FLAG_SET(hits->at(i0).flag,BAM_FREAD2)!=IS_FLAG_SET(hits->at(i1).flag,BAM_FREAD2))
							{
							++i1;
							continue;
							}
						if(!hits->at(i0).mapped() && !hits->at(i1).mapped())
							{
							break;
							}

						if(hits->at(i0).tid==-1 && hits->at(i1).tid==-1)
							{
							break;
							}
						else if(sameChromosome(
							index2chromNames[hits->at(i0).bamIndex][hits->at(i0).tid].c_str(),
							index2chromNames[hits->at(i1).bamIndex][hits->at(i1).tid].c_str()
							))
							{
							if(hits->at(i0).pos==hits->at(i1).pos)
								{
								break;
								}
							}
						
						++i1;
						}
					if(i1!=	hits->size())
						{
						cout 	<< it->key().ToString()
							<< "\t";
						if(IS_FLAG_SET(hits->at(i0).flag,BAM_FREAD1)) { cout << "1\t"; }
						else if(IS_FLAG_SET(hits->at(i0).flag,BAM_FREAD2)) { cout << "2\t";}
						else cout << "?\t";
						print(hits->at(i0));
						cout << "\t";
						print(hits->at(i1));				
						cout << "\t=";
						cout << endl;
						hits->erase(hits->begin()+i1);//that one before
						hits->erase(hits->begin()+i0);
						}
					else
						{
						++i0;
						}
					}
				
				for(i0=0;i0<hits->size();++i0)
					{
					cout 	<< it->key().ToString()
						<< "\t";
					if(IS_FLAG_SET(hits->at(i0).flag,BAM_FREAD1)) cout << "1\t";
					else if(IS_FLAG_SET(hits->at(i0).flag,BAM_FREAD2)) cout << "2\t";
					else cout << "?\t";
					if(hits->at(i0).bamIndex==1) cout << ".\t";	
					print(hits->at(i0));
					if(hits->at(i0).bamIndex==0) cout << "\t.";		
					cout << endl;
					}

				
				}
			delete it;
			}
开发者ID:BioWu,项目名称:variationtoolkit,代码行数:86,代码来源:comparebam.cpp



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ leveldb::Slice类代码示例发布时间:2022-05-31
下一篇:
C++ iridium::Macro_Parser类代码示例发布时间:2022-05-31
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap