26#include "chain/storage/proto/leveldb_config.pb.h"
28#include "leveldb/db.h"
29#include "leveldb/write_batch.h"
35 const std::string& path, std::optional<LevelDBInfo> config = std::nullopt);
37 std::optional<LevelDBInfo> config = std::nullopt);
41 ResLevelDB(std::optional<LevelDBInfo> config_data = std::nullopt);
44 int SetValue(
const std::string& key,
const std::string& value)
override;
45 std::string
GetValue(
const std::string& key)
override;
47 std::string
GetRange(
const std::string& min_key,
48 const std::string& max_key)
override;
51 int version)
override;
53 int version)
override;
56 std::map<std::string, std::pair<std::string, int>>
GetAllItems()
override;
57 std::map<std::string, std::pair<std::string, int>>
GetKeyRange(
58 const std::string& min_key,
const std::string& max_key)
override;
61 std::vector<std::pair<std::string, int>>
GetHistory(
const std::string& key,
63 int max_version)
override;
66 const std::string& key,
int top_number)
override;
68 bool Flush()
override;
71 void CreateDB(
const std::string& path);
74 std::unique_ptr<leveldb::DB> db_ =
nullptr;
75 ::leveldb::WriteBatch batch_;
76 unsigned int write_buffer_size_ = 64 << 20;
77 unsigned int write_batch_size_ = 1;
std::map< std::string, std::pair< std::string, int > > GetKeyRange(const std::string &min_key, const std::string &max_key) override
std::string GetAllValues(void) override
std::map< std::string, std::pair< std::string, int > > GetAllItems() override
std::vector< std::pair< std::string, int > > GetTopHistory(const std::string &key, int top_number) override
std::vector< std::pair< std::string, int > > GetHistory(const std::string &key, int min_version, int max_version) override
std::pair< std::string, int > GetValueWithVersion(const std::string &key, int version) override
int SetValue(const std::string &key, const std::string &value) override
std::string GetRange(const std::string &min_key, const std::string &max_key) override
int SetValueWithVersion(const std::string &key, const std::string &value, int version) override
std::string GetValue(const std::string &key) override
std::unique_ptr< Storage > storage
std::unique_ptr< Storage > NewResLevelDB(const std::string &path, std::optional< LevelDBInfo > config)