hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Xiaobing Zhou (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-17051) [C++] implement RPC client and connection management
Date Mon, 19 Dec 2016 22:41:58 GMT

    [ https://issues.apache.org/jira/browse/HBASE-17051?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15762531#comment-15762531
] 

Xiaobing Zhou commented on HBASE-17051:
---------------------------------------

I posted v6 patch to fix this. Thanks [~enis] for reporting this. std::make_shared a sub class
to return as base class shared_ptr is not working since shared_ptr is not aware of polymorphism.
Instead, static or dynamic cast is good to use.
{code}
115	std::shared_ptr<RpcChannel> RpcClient::CreateRpcChannel(const std::string &host,
116	    uint16_t port, std::shared_ptr<User> ticket, int rpc_timeout) {
117	
118	  std::shared_ptr<RpcChannelImplementation> channel = std::make_shared<
119	      RpcChannelImplementation>(shared_from_this(), host, port, ticket,
120	      rpc_timeout);
121	
122	  /* static_pointer_cast is safe since RpcChannelImplementation derives
123	   * from RpcChannel, otherwise, dynamic_pointer_cast should be used. */
124	  return std::static_pointer_cast<RpcChannel>(channel);
125	}
{code}


> [C++] implement RPC client and connection management
> ----------------------------------------------------
>
>                 Key: HBASE-17051
>                 URL: https://issues.apache.org/jira/browse/HBASE-17051
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Xiaobing Zhou
>            Assignee: Xiaobing Zhou
>         Attachments: HBASE-17051-HBASE-14850.000.patch, HBASE-17051-HBASE-14850.001.patch,
HBASE-17051-HBASE-14850.002.patch, HBASE-17051-HBASE-14850.003.patch, HBASE-17051-HBASE-14850.004.patch,
HBASE-17051-HBASE-14850.005.patch, HBASE-17051-HBASE-14850.006.patch
>
>
> This proposes building RPC client and connection management layer, which supports the
equivalent functions resides in RpcClient.java and RpcConnection.java. Specifically, handler/pipeline
concepts will be used for implementation, similar to NettyRpcClient and NettyRpcConnection
in java side.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message