in src/hbase/client/raw-async-table.cc [141:166]
folly::Future<bool> RawAsyncTable::CheckAndDelete(const std::string& row, const std::string& family,
const std::string& qualifier,
const std::string& value,
const hbase::Delete& del,
const pb::CompareType& compare_op) {
auto caller =
CreateCallerBuilder<bool>(row, connection_conf_->write_rpc_timeout())
->action([=, &del](std::shared_ptr<hbase::HBaseRpcController> controller,
std::shared_ptr<hbase::RegionLocation> loc,
std::shared_ptr<hbase::RpcClient> rpc_client) -> folly::Future<bool> {
return Call<hbase::Delete, hbase::Request, hbase::Response, bool>(
rpc_client, controller, loc, del,
// request conversion
[=, &del](const hbase::Delete& dlt,
const std::string& region_name) -> std::unique_ptr<Request> {
auto checkReq = RequestConverter::CheckAndDeleteToMutateRequest(
row, family, qualifier, value, compare_op, dlt, region_name);
return checkReq;
},
// response conversion
&ResponseConverter::BoolFromMutateResponse);
})
->Build();
return caller->Call().then([caller](const auto r) { return r; });
}