hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Xiaobing Zhou (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HBASE-17727) [C++] Make RespConverter work with MockRawAsyncTableImpl
Date Fri, 03 Mar 2017 20:58:45 GMT
Xiaobing Zhou created HBASE-17727:

             Summary: [C++] Make RespConverter work with MockRawAsyncTableImpl
                 Key: HBASE-17727
                 URL: https://issues.apache.org/jira/browse/HBASE-17727
             Project: HBase
          Issue Type: Sub-task
            Reporter: Xiaobing Zhou
            Assignee: Xiaobing Zhou

This is a follow up work of HBASE-17465. 

There's a problem to dereference instance of RpcCallback when it's passed as function argument.

template<typename R,
                typename S>
using RespConverter = std::function<R(const S&)>;

  template<typename REQ,
           typename PREQ,
           typename PRESP,
           typename RESP>
  folly::Future<RESP> Call(
      std::shared_ptr<hbase::RpcClient> rpc_client,
      std::shared_ptr<HBaseRpcController> controller,
      std::shared_ptr<RegionLocation> loc,
      const REQ& req,
      const ReqConverter<std::unique_ptr<PREQ>, REQ, std::string>& req_converter,
      const hbase::RpcCall<PREQ, PRESP, hbase::RpcClient>& rpc_call,
      const RespConverter<std::unique_ptr<RESP>, PRESP>& resp_converter) {
            std::move(req_converter(req, loc->region_name())))
        .then([&, this](std::unique_ptr<PRESP> presp) {
          // std::unique_ptr<hbase::Result> result = resp_converter(presp);
          std::unique_ptr<hbase::Result> result = hbase::ResponseConverter::FromGetResponse(*presp);
        .onError([this] (const std::exception& e) {promise_->setException(e);});
    return promise_->getFuture();

This message was sent by Atlassian JIRA

View raw message