xrootd
Public Member Functions | List of all members
XrdCl::TransportHandler Class Referenceabstract

Perform the handshake and the authentication for each physical stream. More...

#include <XrdClPostMasterInterfaces.hh>

Inheritance diagram for XrdCl::TransportHandler:
Inheritance graph
[legend]

Public Member Functions

virtual ~TransportHandler ()
 
virtual Status GetMessage (Message *message, Socket *socket)=0
 
virtual void InitializeChannel (AnyObject &channelData)=0
 Initialize channel. More...
 
virtual void FinalizeChannel (AnyObject &channelData)=0
 Finalize channel. More...
 
virtual Status HandShake (HandShakeData *handShakeData, AnyObject &channelData)=0
 HandHake. More...
 
virtual bool IsStreamTTLElapsed (time_t inactiveTime, AnyObject &channelData)=0
 Check if the stream should be disconnected. More...
 
virtual PathID Multiplex (Message *msg, AnyObject &channelData, PathID *hint=0)=0
 
virtual PathID MultiplexSubStream (Message *msg, AnyObject &channelData, PathID *hint=0)=0
 
virtual uint16_t StreamNumber (AnyObject &channelData)=0
 Return a number of streams that should be created. More...
 
virtual uint16_t SubStreamNumber (AnyObject &channelData)=0
 Return a number of substreams per stream that should be created. More...
 
virtual void Disconnect (AnyObject &channelData, uint16_t streamId, uint16_t subStreamId)=0
 The stream has been disconnected, do the cleanups. More...
 
virtual Status Query (uint16_t query, AnyObject &result, AnyObject &channelData)=0
 Query the channel. More...
 
virtual bool Highjack (Message *msg, AnyObject &channelData)=0
 Check whether the transport can highjack the message. More...
 

Detailed Description

Perform the handshake and the authentication for each physical stream.

Constructor & Destructor Documentation

virtual XrdCl::TransportHandler::~TransportHandler ( )
inlinevirtual

Member Function Documentation

virtual void XrdCl::TransportHandler::Disconnect ( AnyObject &  channelData,
uint16_t  streamId,
uint16_t  subStreamId 
)
pure virtual

The stream has been disconnected, do the cleanups.

Implemented in XrdCl::XRootDTransport.

Referenced by XrdCl::AsyncSocketHandler::Close().

virtual void XrdCl::TransportHandler::FinalizeChannel ( AnyObject &  channelData)
pure virtual

Finalize channel.

Implemented in XrdCl::XRootDTransport.

Referenced by XrdCl::Channel::~Channel().

virtual Status XrdCl::TransportHandler::GetMessage ( Message *  message,
Socket *  socket 
)
pure virtual

Read a message from the socket, the socket is non blocking, so if there is not enough data the function should retutn errRetry in which case it will be called again when more data arrives with the data previousely read stored in the message buffer

Parameters
messagethe message
socketthe socket
Returns
stOK if the message has been processed properly, stError & errRetry when the method needs to be called again to finish reading the message stError on faiure

Implemented in XrdCl::XRootDTransport.

Referenced by XrdCl::AsyncSocketHandler::ReadMessage().

virtual Status XrdCl::TransportHandler::HandShake ( HandShakeData *  handShakeData,
AnyObject &  channelData 
)
pure virtual
virtual bool XrdCl::TransportHandler::Highjack ( Message *  msg,
AnyObject &  channelData 
)
pure virtual

Check whether the transport can highjack the message.

Implemented in XrdCl::XRootDTransport.

Referenced by XrdCl::Stream::OnIncoming().

virtual void XrdCl::TransportHandler::InitializeChannel ( AnyObject &  channelData)
pure virtual

Initialize channel.

Implemented in XrdCl::XRootDTransport.

Referenced by XrdCl::Channel::Channel().

virtual bool XrdCl::TransportHandler::IsStreamTTLElapsed ( time_t  inactiveTime,
AnyObject &  channelData 
)
pure virtual

Check if the stream should be disconnected.

Implemented in XrdCl::XRootDTransport.

virtual PathID XrdCl::TransportHandler::Multiplex ( Message *  msg,
AnyObject &  channelData,
PathID *  hint = 0 
)
pure virtual

Return the ID for the up stream this message should be sent by and the down stream which the answer should be expected at. Modify the message itself if necessary. If hint is non-zero then the message should be modified such that the answer will be returned via the hinted stream.

Implemented in XrdCl::XRootDTransport.

Referenced by XrdCl::Channel::Send().

virtual PathID XrdCl::TransportHandler::MultiplexSubStream ( Message *  msg,
AnyObject &  channelData,
PathID *  hint = 0 
)
pure virtual

Return the ID for the up substream this message should be sent by and the down substream which the answer should be expected at. Modify the message itself if necessary. If hint is non-zero then the message should be modified such that the answer will be returned via the hinted stream.

Implemented in XrdCl::XRootDTransport.

Referenced by XrdCl::Stream::Send().

virtual Status XrdCl::TransportHandler::Query ( uint16_t  query,
AnyObject &  result,
AnyObject &  channelData 
)
pure virtual

Query the channel.

Implemented in XrdCl::XRootDTransport.

Referenced by XrdCl::Stream::OnConnect(), and XrdCl::Channel::QueryTransport().

virtual uint16_t XrdCl::TransportHandler::StreamNumber ( AnyObject &  channelData)
pure virtual

Return a number of streams that should be created.

Implemented in XrdCl::XRootDTransport.

Referenced by XrdCl::Channel::Channel().

virtual uint16_t XrdCl::TransportHandler::SubStreamNumber ( AnyObject &  channelData)
pure virtual

Return a number of substreams per stream that should be created.

Implemented in XrdCl::XRootDTransport.

Referenced by XrdCl::Stream::OnConnect().


The documentation for this class was generated from the following file: