hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Enis Soztutar (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HBASE-17727) [C++] Make RespConverter work with RawAsyncTableImpl
Date Wed, 22 Mar 2017 23:41:41 GMT

     [ https://issues.apache.org/jira/browse/HBASE-17727?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Enis Soztutar updated HBASE-17727:
----------------------------------
    Summary: [C++] Make RespConverter work with RawAsyncTableImpl  (was: [C++] Make RespConverter
work with MockRawAsyncTableImpl)

> [C++] Make RespConverter work with RawAsyncTableImpl
> ----------------------------------------------------
>
>                 Key: HBASE-17727
>                 URL: https://issues.apache.org/jira/browse/HBASE-17727
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Xiaobing Zhou
>            Assignee: Enis Soztutar
>
> 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.
> {code}
> template<typename R,
>          typename S>
> using RespConverter = std::function<R(const S&)>;
> {code}
> {code}
>   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)
{
>         rpc_call(
>             rpc_client,
>             loc,
>             controller,
>             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);
>           promise_->setValue(std::move(*result));
>         })
>         .onError([this] (const std::exception& e) {promise_->setException(e);});
>     return promise_->getFuture();
>   }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message