diff options
Diffstat (limited to 'src/test/ObjectMap/KeyValueDBMemory.h')
-rw-r--r-- | src/test/ObjectMap/KeyValueDBMemory.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/test/ObjectMap/KeyValueDBMemory.h b/src/test/ObjectMap/KeyValueDBMemory.h index 93d0809d491..5cffce3ef04 100644 --- a/src/test/ObjectMap/KeyValueDBMemory.h +++ b/src/test/ObjectMap/KeyValueDBMemory.h @@ -126,6 +126,24 @@ public: return static_cast<TransactionImpl_*>(trans.get())->complete(); } + uint64_t get_estimated_size(map<string,uint64_t> &extras) { + uint64_t total_size = 0; + + for (map<pair<string,string>,bufferlist>::iterator p = db.begin(); + p != db.end(); ++p) { + string prefix = p->first.first; + bufferlist &bl = p->second; + + uint64_t sz = bl.length(); + total_size += sz; + if (extras.count(prefix) == 0) + extras[prefix] = 0; + extras[prefix] += sz; + } + + return total_size; + } + private: bool exists_prefix(const string &prefix) { std::map<std::pair<string,string>,bufferlist>::iterator it; |