#include "db-leveldb.h" #include #include #include "types.h" inline int64_t stoi64(const std::string &s) { std::stringstream tmp(s); long long t; tmp >> t; return t; } inline std::string i64tos(int64_t i) { std::ostringstream o; o<NewIterator(leveldb::ReadOptions()); for (it->SeekToFirst(); it->Valid(); it->Next()) { m_blockPosList.push_back(BlockPos(it->key().ToString())); } delete it; return m_blockPosList; } DB::Block DBLevelDB::getBlockOnPos(const BlockPos &pos) { std::string datastr; leveldb::Status status; m_blocksReadCount++; status = m_db->Get(leveldb::ReadOptions(), pos.databasePosStr(), &datastr); if(status.ok()) { m_blocksUnCachedCount++; return Block(pos, ustring(reinterpret_cast(datastr.c_str()), datastr.size())); } else { return Block(pos, ustring(reinterpret_cast(""))); } }