thrift-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ben Craig <ben.cr...@ni.com>
Subject Re: streaming binary data
Date Tue, 17 Dec 2013 17:14:10 GMT
Budric Bundy <budric@gmail.com> wrote on 12/17/2013 11:07:56 AM:

> From: Budric Bundy <budric@gmail.com>
> To: user@thrift.apache.org, 
> Date: 12/17/2013 11:08 AM
> Subject: Re: streaming binary data
> 
> Thanks Ben,
> 
> I dug through the code and I can't find the TSocket information you
> mentioned.  TConnectionInfo is defined as follows in TProcessor.h:
> struct TConnectionInfo {
>   // The input and output protocols
>   boost::shared_ptr<protocol::TProtocol> input;
>   boost::shared_ptr<protocol::TProtocol> output;
>   // The underlying transport used for the connection
>   // This is the transport that was returned by 
TServerTransport::accept(),
>   // and it may be different than the transport pointed to by the input 
and
>   // output protocols.
>   boost::shared_ptr<transport::TTransport> transport;
> };
> 
> TTransport doesn't have TSocket or getPeer*(), and neither does 
TProtocol.
>  I'm using thrift 0.9.1.  I'm also using TThreadPoolServer which also 
has
> no accessor methods to socket.
> 
> Thanks.

Downcast the transport member to a TSocket with code similar to the 
following:
boost::shared_ptr<TSocket> sock = 
boost::dynamic_pointer_cast<TSocket>(connInfo.transport);

Note that if you change your underlying transport to something else (like 
TSSLSocket), you will need to change your dynamic_pointer_cast as well.


Mime
View raw message