preparation for merge
This commit is contained in:
parent
261bf7deac
commit
2e858aa26b
|
|
@ -21,7 +21,7 @@ public:
|
|||
etcdserverpb::DeleteRangeResponse deleteResponse;
|
||||
grpc::Status status;
|
||||
grpc::ClientContext context;
|
||||
grpc::CompletionQueue completionQueue;
|
||||
grpc::CompletionQueue cq_;
|
||||
std::unique_ptr<grpc::ClientAsyncResponseReader<etcdserverpb::DeleteRangeResponse>> rpcInstance;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
#include <vector>
|
||||
|
||||
#include "etcd/Value.hpp"
|
||||
#include <grpc++/grpc++.h>
|
||||
|
||||
namespace etcd
|
||||
{
|
||||
|
|
@ -19,6 +20,37 @@ namespace etcd
|
|||
public:
|
||||
static pplx::task<Response> create(pplx::task<web::http::http_response> response_task);
|
||||
|
||||
//parang mas magandang ilagay ito sa baseclass imbis na here ooorrr
|
||||
//talagang response v2 lang talaga dito
|
||||
template<typename T>static pplx::task<etcd::Response> create(T call)
|
||||
{
|
||||
return pplx::task<etcd::Response>([call]()
|
||||
{
|
||||
void* got_tag;
|
||||
bool ok = false;
|
||||
etcd::Response resp;
|
||||
|
||||
//blocking
|
||||
call->cq_.Next(&got_tag, &ok);
|
||||
GPR_ASSERT(got_tag == (void*)call);
|
||||
GPR_ASSERT(ok);
|
||||
|
||||
T call = static_cast<T>(got_tag);
|
||||
if(call->status.ok())
|
||||
{
|
||||
// auto v3resp = call->ParseResponse();
|
||||
resp = *call;// stripping off instead of creating a new response class
|
||||
}
|
||||
else
|
||||
{
|
||||
throw std::runtime_error(call->status.error_message());
|
||||
}
|
||||
|
||||
delete call; //todo:make this a smart pointer
|
||||
return resp;
|
||||
});
|
||||
};
|
||||
|
||||
Response();
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -118,40 +118,41 @@ pplx::task<etcd::Response> etcd::Client::removeEntry(std::string const & entryKe
|
|||
}
|
||||
|
||||
|
||||
|
||||
//then delete
|
||||
std::cout << "removing etcd v3 entry naman" << std::endl;
|
||||
std::cout << "removing etcd v3 entry naman with template na" << std::endl;
|
||||
|
||||
etcdserverpb::DeleteRangeRequest deleteRangeRequest;
|
||||
deleteRangeRequest.set_key(entryKey);
|
||||
|
||||
drp->rpcInstance = stub_->AsyncDeleteRange(&drp->context, deleteRangeRequest, &drp->completionQueue);
|
||||
drp->rpcInstance = stub_->AsyncDeleteRange(&drp->context, deleteRangeRequest, &drp->cq_);
|
||||
drp->rpcInstance->Finish(&drp->deleteResponse, &drp->status, (void*)drp);
|
||||
|
||||
return pplx::task<etcd::Response>([drp]()
|
||||
{
|
||||
std::cout << "doing delete v3 entry task" << std::endl;
|
||||
void* got_tag;
|
||||
bool ok = false;
|
||||
etcd::Response resp;
|
||||
return Response::create(drp);
|
||||
|
||||
drp->completionQueue.Next(&got_tag, &ok);
|
||||
GPR_ASSERT(got_tag == (void*)drp);
|
||||
GPR_ASSERT(ok);
|
||||
|
||||
etcd::DeleteRpcResponse* deleteResponse = static_cast<etcd::DeleteRpcResponse*>(got_tag);
|
||||
|
||||
if (deleteResponse->status.ok()){
|
||||
std::cout << "doing delete v3 entry task OK" << std::endl;
|
||||
resp = *drp; //simply stripping off the response part
|
||||
}
|
||||
else
|
||||
std::cout << "doing delete v3 entry task NOK" << std::endl;
|
||||
delete deleteResponse;
|
||||
std::cout << "delete done, returning" << std::endl;
|
||||
return resp;
|
||||
}
|
||||
);
|
||||
// return pplx::task<etcd::Response>([drp]()
|
||||
// {
|
||||
// std::cout << "doing delete v3 entry task" << std::endl;
|
||||
// void* got_tag;
|
||||
// bool ok = false;
|
||||
// etcd::Response resp;
|
||||
//
|
||||
// drp->completionQueue.Next(&got_tag, &ok);
|
||||
// GPR_ASSERT(got_tag == (void*)drp);
|
||||
// GPR_ASSERT(ok);
|
||||
//
|
||||
// etcd::DeleteRpcResponse* deleteResponse = static_cast<etcd::DeleteRpcResponse*>(got_tag);
|
||||
//
|
||||
// if (deleteResponse->status.ok()){
|
||||
// std::cout << "doing delete v3 entry task OK" << std::endl;
|
||||
// resp = *drp; //simply stripping off the response part
|
||||
// }
|
||||
// else
|
||||
// std::cout << "doing delete v3 entry task NOK" << std::endl;
|
||||
// delete deleteResponse;
|
||||
// std::cout << "delete done, returning" << std::endl;
|
||||
// return resp;
|
||||
// }
|
||||
// );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue