etcd-cpp-apiv3/src/v3/AsyncLeaseGrantAction.cpp

33 lines
873 B
C++

#include "etcd/v3/AsyncLeaseGrantAction.hpp"
#include "etcd/v3/action_constants.hpp"
#include "etcd/v3/Transaction.hpp"
using etcdserverpb::LeaseGrantRequest;
etcdv3::AsyncLeaseGrantAction::AsyncLeaseGrantAction(etcdv3::ActionParameters param)
: etcdv3::Action(param)
{
etcdv3::Transaction transaction;
transaction.setup_lease_grant_operation(parameters.ttl);
response_reader = parameters.lease_stub->AsyncLeaseGrant(&context, transaction.leasegrant_request, &cq_);
response_reader->Finish(&reply, &status, (void*)this);
}
etcdv3::AsyncLeaseGrantResponse etcdv3::AsyncLeaseGrantAction::ParseResponse()
{
AsyncLeaseGrantResponse lease_resp;
if(!status.ok())
{
lease_resp.set_error_code(status.error_code());
lease_resp.set_error_message(status.error_message());
}
else
{
lease_resp.ParseResponse(reply);
}
return lease_resp;
}