22#include <glog/logging.h>
31 request.set_cmd(KVRequest::SET);
33 request.set_value(
data);
39 request.set_cmd(KVRequest::GET);
44 LOG(ERROR) <<
"send request fail, ret:" << ret;
47 return std::make_unique<std::string>(response.value());
52 request.set_cmd(KVRequest::GETALLVALUES);
56 LOG(ERROR) <<
"send request fail, ret:" << ret;
59 return std::make_unique<std::string>(response.value());
63 const std::string& max_key) {
65 request.set_cmd(KVRequest::GETRANGE);
66 request.set_key(min_key);
67 request.set_value(max_key);
71 LOG(ERROR) <<
"send request fail, ret:" << ret;
74 return std::make_unique<std::string>(response.value());
80 request.set_cmd(KVRequest::SET_WITH_VERSION);
82 request.set_value(
data);
83 request.set_version(version);
87std::unique_ptr<ValueInfo>
KVClient::Get(
const std::string& key,
int version) {
89 request.set_cmd(KVRequest::GET_WITH_VERSION);
91 request.set_version(version);
95 LOG(ERROR) <<
"send request fail, ret:" << ret;
98 return std::make_unique<ValueInfo>(response.value_info());
102 const std::string& max_key) {
104 request.set_cmd(KVRequest::GET_KEY_RANGE);
105 request.set_min_key(min_key);
106 request.set_max_key(max_key);
110 LOG(ERROR) <<
"send request fail, ret:" << ret;
113 return std::make_unique<Items>(response.items());
120 request.set_cmd(KVRequest::GET_HISTORY);
121 request.set_key(key);
122 request.set_min_version(min_version);
123 request.set_max_version(max_version);
127 LOG(ERROR) <<
"send request fail, ret:" << ret;
130 return std::make_unique<Items>(response.items());
136 request.set_cmd(KVRequest::GET_TOP);
137 request.set_key(key);
138 request.set_top_number(top_number);
142 LOG(ERROR) <<
"send request fail, ret:" << ret;
145 return std::make_unique<Items>(response.items());
int Set(const std::string &key, const std::string &data, int version)
std::unique_ptr< Items > GetKeyTopHistory(const std::string &key, int top_number)
std::unique_ptr< std::string > GetRange(const std::string &min_key, const std::string &max_key)
KVClient(const ResDBConfig &config)
std::unique_ptr< Items > GetKeyHistory(const std::string &key, int min_version, int max_version)
std::unique_ptr< ValueInfo > Get(const std::string &key, int version)
std::unique_ptr< Items > GetKeyRange(const std::string &min_key, const std::string &max_key)
std::unique_ptr< std::string > GetAllValues()
int SendRequest(const google::protobuf::Message &message, Request::Type type=Request::TYPE_CLIENT_REQUEST)