--- /dev/null
+#include "kvservice.h"
+#include <iostream>
+
+using namespace std;
+
+namespace kvstore
+{
+
+KeyValueRpcService::KeyValueRpcService(Backend *backend)
+ :_backend(backend)
+{
+}
+
+KeyValueRpcService::~KeyValueRpcService()
+{
+}
+
+void KeyValueRpcService::PutValue(
+ ::google::protobuf::RpcController* /*controller*/,
+ const ::kvrpc::Put* request,
+ ::kvrpc::PutReply* response,
+ ::google::protobuf::Closure* done)
+{
+ if (_backend->Put(request->key(), request->value()))
+ {
+ response->set_result(kvrpc::SUCCESS);
+ }
+ else
+ {
+ response->set_result(kvrpc::FAILURE);
+ }
+
+ done->Run();
+}
+
+void KeyValueRpcService::GetValue(
+ ::google::protobuf::RpcController* /*controller*/,
+ const ::kvrpc::Get* request,
+ ::kvrpc::GetReply* response,
+ ::google::protobuf::Closure* done)
+{
+ string value;
+ if (_backend->Get(request->key(), &value))
+ {
+ response->set_result(kvrpc::SUCCESS);
+ response->set_value(value);
+ }
+ else
+ {
+ response->set_result(kvrpc::FAILURE);
+ }
+ done->Run();
+}
+
+}; // namespace kvstore