Perform the handshake and the authentication for each physical stream.
More...
#include <XrdClPostMasterInterfaces.hh>
|
virtual | ~TransportHandler () |
|
virtual Status | GetHeader (Message *message, int socket)=0 |
|
virtual Status | GetBody (Message *message, int 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, uint16_t streamId, AnyObject &channelData)=0 |
| Check if the stream should be disconnected. More...
|
|
virtual Status | IsStreamBroken (time_t inactiveTime, uint16_t streamId, AnyObject &channelData)=0 |
|
virtual PathID | Multiplex (Message *msg, AnyObject &channelData, PathID *hint=0)=0 |
|
virtual PathID | MultiplexSubStream (Message *msg, uint16_t streamId, 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 uint32_t | MessageReceived (Message *msg, uint16_t streamId, uint16_t subStream, AnyObject &channelData)=0 |
| Check if the message invokes a stream action. More...
|
|
virtual void | MessageSent (Message *msg, uint16_t streamId, uint16_t subStream, uint32_t bytesSent, AnyObject &channelData)=0 |
| Notify the transport about a message having been sent. More...
|
|
Perform the handshake and the authentication for each physical stream.
Stream actions that may be triggered by incoming control messages.
Enumerator |
---|
NoAction |
No action.
|
DigestMsg |
Digest the incoming message so that it won't be passed to the user handlers
|
AbortStream |
Disconnect, abort all the on-going operations and mark the stream as permanently broken [not yet implemented]
|
CloseStream |
Disconnect and attempt reconnection later [not yet implemented]
|
ResumeStream |
Resume sending requests [not yet implemented]
|
HoldStream |
Stop sending requests [not yet implemented].
|
virtual XrdCl::TransportHandler::~TransportHandler |
( |
| ) |
|
|
inlinevirtual |
virtual void XrdCl::TransportHandler::Disconnect |
( |
AnyObject & |
channelData, |
|
|
uint16_t |
streamId, |
|
|
uint16_t |
subStreamId |
|
) |
| |
|
pure virtual |
The stream has been disconnected, do the cleanups.
virtual void XrdCl::TransportHandler::FinalizeChannel |
( |
AnyObject & |
channelData | ) |
|
|
pure virtual |
virtual Status XrdCl::TransportHandler::GetBody |
( |
Message * |
message, |
|
|
int |
socket |
|
) |
| |
|
pure virtual |
Read the message body from the socket, the socket is non-blocking, the method may be called multiple times - see GetHeader for details
- Parameters
-
message | the message buffer containing the header |
socket | the socket |
- Returns
- stOK & suDone if the whole message has been processed stOK & suRetry if more data is needed stError on failure
virtual Status XrdCl::TransportHandler::GetHeader |
( |
Message * |
message, |
|
|
int |
socket |
|
) |
| |
|
pure virtual |
Read a message header from the socket, the socket is non-blocking, so if there is not enough data the function should return errRetry in which case it will be called again when more data arrives, with the data previously read stored in the message buffer
- Parameters
-
message | the message buffer |
socket | the socket |
- Returns
- stOK & suDone if the whole message has been processed stOK & suRetry if more data is needed stError on failure
virtual void XrdCl::TransportHandler::InitializeChannel |
( |
AnyObject & |
channelData | ) |
|
|
pure virtual |
virtual Status XrdCl::TransportHandler::IsStreamBroken |
( |
time_t |
inactiveTime, |
|
|
uint16_t |
streamId, |
|
|
AnyObject & |
channelData |
|
) |
| |
|
pure virtual |
Check the stream is broken - ie. TCP connection got broken and went undetected by the TCP stack
virtual bool XrdCl::TransportHandler::IsStreamTTLElapsed |
( |
time_t |
inactiveTime, |
|
|
uint16_t |
streamId, |
|
|
AnyObject & |
channelData |
|
) |
| |
|
pure virtual |
Check if the stream should be disconnected.
virtual uint32_t XrdCl::TransportHandler::MessageReceived |
( |
Message * |
msg, |
|
|
uint16_t |
streamId, |
|
|
uint16_t |
subStream, |
|
|
AnyObject & |
channelData |
|
) |
| |
|
pure virtual |
Check if the message invokes a stream action.
virtual void XrdCl::TransportHandler::MessageSent |
( |
Message * |
msg, |
|
|
uint16_t |
streamId, |
|
|
uint16_t |
subStream, |
|
|
uint32_t |
bytesSent, |
|
|
AnyObject & |
channelData |
|
) |
| |
|
pure virtual |
Notify the transport about a message having been sent.
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.
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.
virtual uint16_t XrdCl::TransportHandler::StreamNumber |
( |
AnyObject & |
channelData | ) |
|
|
pure virtual |
Return a number of streams that should be created.
virtual uint16_t XrdCl::TransportHandler::SubStreamNumber |
( |
AnyObject & |
channelData | ) |
|
|
pure virtual |
Return a number of substreams per stream that should be created.
The documentation for this class was generated from the following file: