Changeset View
Changeset View
Standalone View
Standalone View
src/dbwrapper.h
Show First 20 Lines • Show All 267 Lines • ▼ Show 20 Lines | public: | ||||
CDBIterator *NewIterator() { | CDBIterator *NewIterator() { | ||||
return new CDBIterator(*this, pdb->NewIterator(iteroptions)); | return new CDBIterator(*this, pdb->NewIterator(iteroptions)); | ||||
} | } | ||||
/** | /** | ||||
* Return true if the database managed by this class contains no entries. | * Return true if the database managed by this class contains no entries. | ||||
*/ | */ | ||||
bool IsEmpty(); | bool IsEmpty(); | ||||
template <typename K> | |||||
size_t EstimateSize(const K &key_begin, const K &key_end) const { | |||||
CDataStream ssKey1(SER_DISK, CLIENT_VERSION), | |||||
ssKey2(SER_DISK, CLIENT_VERSION); | |||||
ssKey1.reserve(DBWRAPPER_PREALLOC_KEY_SIZE); | |||||
ssKey2.reserve(DBWRAPPER_PREALLOC_KEY_SIZE); | |||||
ssKey1 << key_begin; | |||||
ssKey2 << key_end; | |||||
leveldb::Slice slKey1(ssKey1.data(), ssKey1.size()); | |||||
leveldb::Slice slKey2(ssKey2.data(), ssKey2.size()); | |||||
uint64_t size = 0; | |||||
leveldb::Range range(slKey1, slKey2); | |||||
pdb->GetApproximateSizes(&range, 1, &size); | |||||
return size; | |||||
} | |||||
}; | }; | ||||
#endif // BITCOIN_DBWRAPPER_H | #endif // BITCOIN_DBWRAPPER_H |