25#ifndef __XRD_CL_POST_MASTER_INTERFACES_HH__
26#define __XRD_CL_POST_MASTER_INTERFACES_HH__
99 virtual uint16_t
Examine( std::shared_ptr<Message> &msg ) = 0;
140 uint32_t &bytesRead )
142 (void)msg; (void)socket; (void)bytesRead;
156 (void)event; (void)status;
184 virtual bool IsRaw()
const {
return false; }
197 uint32_t &bytesWritten )
199 (void)socket; (void)bytesWritten;
281 static const uint16_t
Name = 1;
282 static const uint16_t
Auth = 2;
442 uint16_t subStreamId ) = 0;
Definition XrdClAnyObject.hh:33
Channel event handler.
Definition XrdClPostMasterInterfaces.hh:210
virtual bool OnChannelEvent(ChannelEvent event, Status status)=0
ChannelEvent
Events that may have occurred to the channel.
Definition XrdClPostMasterInterfaces.hh:216
@ StreamBroken
The stream is broken.
Definition XrdClPostMasterInterfaces.hh:218
@ StreamReady
The stream has become connected.
Definition XrdClPostMasterInterfaces.hh:217
@ FatalError
Stream has been broken and won't be recovered.
Definition XrdClPostMasterInterfaces.hh:219
virtual ~ChannelEventHandler()
Destructor.
Definition XrdClPostMasterInterfaces.hh:225
The message representation used throughout the system.
Definition XrdClMessage.hh:30
Message handler.
Definition XrdClPostMasterInterfaces.hh:51
virtual ~MsgHandler()
Event types that the message handler may receive.
Definition XrdClPostMasterInterfaces.hh:90
virtual uint16_t Examine(std::shared_ptr< Message > &msg)=0
virtual XRootDStatus ReadMessageBody(Message *msg, Socket *socket, uint32_t &bytesRead)
Definition XrdClPostMasterInterfaces.hh:138
virtual XRootDStatus WriteMessageBody(Socket *socket, uint32_t &bytesWritten)
Definition XrdClPostMasterInterfaces.hh:196
virtual uint16_t GetSid() const =0
Action
Actions to be taken after a message is processed by the handler.
Definition XrdClPostMasterInterfaces.hh:57
@ NoProcess
Definition XrdClPostMasterInterfaces.hh:66
@ Raw
Definition XrdClPostMasterInterfaces.hh:63
@ RemoveHandler
Definition XrdClPostMasterInterfaces.hh:61
@ Nop
A place holder.
Definition XrdClPostMasterInterfaces.hh:59
@ More
there are more (non-raw) data to be read
Definition XrdClPostMasterInterfaces.hh:72
@ Ignore
Ignore the message.
Definition XrdClPostMasterInterfaces.hh:60
@ Corrupted
Definition XrdClPostMasterInterfaces.hh:69
virtual void OnReadyToSend(Message *msg)
Definition XrdClPostMasterInterfaces.hh:174
virtual uint8_t OnStreamEvent(StreamEvent event, XRootDStatus status)
Definition XrdClPostMasterInterfaces.hh:153
virtual time_t GetExpiration()=0
StreamEvent
Events that may have occurred to the stream.
Definition XrdClPostMasterInterfaces.hh:79
@ FatalError
Stream has been broken and won't be recovered.
Definition XrdClPostMasterInterfaces.hh:83
@ Ready
The stream has become connected.
Definition XrdClPostMasterInterfaces.hh:80
@ Broken
The stream is broken.
Definition XrdClPostMasterInterfaces.hh:81
virtual uint16_t InspectStatusRsp()=0
virtual void OnStatusReady(const Message *message, XRootDStatus status)=0
The requested action has been performed and the status is available.
virtual void Process()
Definition XrdClPostMasterInterfaces.hh:125
virtual bool IsRaw() const
Definition XrdClPostMasterInterfaces.hh:184
A network socket.
Definition XrdClSocket.hh:43
Definition XrdClOperationTimeout.hh:20
Perform the handshake and the authentication for each physical stream.
Definition XrdClPostMasterInterfaces.hh:310
StreamAction
Stream actions that may be triggered by incoming control messages.
Definition XrdClPostMasterInterfaces.hh:317
@ NoAction
No action.
Definition XrdClPostMasterInterfaces.hh:318
@ DigestMsg
Definition XrdClPostMasterInterfaces.hh:319
@ RequestClose
Send a close request.
Definition XrdClPostMasterInterfaces.hh:329
@ AbortStream
Definition XrdClPostMasterInterfaces.hh:321
@ HoldStream
Stop sending requests [not yet implemented].
Definition XrdClPostMasterInterfaces.hh:328
@ CloseStream
Definition XrdClPostMasterInterfaces.hh:324
@ ResumeStream
Definition XrdClPostMasterInterfaces.hh:326
virtual bool NeedEncryption(HandShakeData *handShakeData, AnyObject &channelData)=0
virtual uint32_t MessageReceived(Message &msg, uint16_t subStream, AnyObject &channelData)=0
Check if the message invokes a stream action.
virtual uint16_t SubStreamNumber(AnyObject &channelData)=0
Return a number of substreams per stream that should be created.
virtual bool IsStreamTTLElapsed(time_t inactiveTime, AnyObject &channelData)=0
Check if the stream should be disconnected.
virtual PathID Multiplex(Message *msg, AnyObject &channelData, PathID *hint=0)=0
virtual Status Query(uint16_t query, AnyObject &result, AnyObject &channelData)=0
Query the channel.
virtual PathID MultiplexSubStream(Message *msg, AnyObject &channelData, PathID *hint=0)=0
virtual XRootDStatus GetBody(Message &message, Socket *socket)=0
virtual void FinalizeChannel(AnyObject &channelData)=0
Finalize channel.
virtual void Disconnect(AnyObject &channelData, uint16_t subStreamId)=0
The stream has been disconnected, do the cleanups.
virtual ~TransportHandler()
Definition XrdClPostMasterInterfaces.hh:333
virtual bool HandShakeDone(HandShakeData *handShakeData, AnyObject &channelData)=0
virtual void WaitBeforeExit()=0
Wait before exit.
virtual void InitializeChannel(const URL &url, AnyObject &channelData)=0
Initialize channel.
virtual XRootDStatus GetHeader(Message &message, Socket *socket)=0
virtual void DecFileInstCnt(AnyObject &channelData)=0
Decrement file object instance count bound to this channel.
virtual URL GetBindPreference(const URL &url, AnyObject &channelData)=0
Get bind preference for the next data stream.
virtual Status IsStreamBroken(time_t inactiveTime, AnyObject &channelData)=0
virtual XRootDStatus HandShake(HandShakeData *handShakeData, AnyObject &channelData)=0
HandHake.
virtual void MessageSent(Message *msg, uint16_t subStream, uint32_t bytesSent, AnyObject &channelData)=0
Notify the transport about a message having been sent.
virtual XRootDStatus GetMore(Message &message, Socket *socket)=0
virtual Status GetSignature(Message *toSign, Message *&sign, AnyObject &channelData)=0
Get signature for given message.
URL representation.
Definition XrdClURL.hh:31
Request status.
Definition XrdClXRootDResponses.hh:219
Definition XrdNetAddr.hh:42
Definition XrdClAction.hh:34
const uint16_t stOK
Everything went OK.
Definition XrdClStatus.hh:31
const uint16_t suDone
Definition XrdClStatus.hh:38
Data structure that carries the handshake information.
Definition XrdClPostMasterInterfaces.hh:244
uint16_t step
Handshake step.
Definition XrdClPostMasterInterfaces.hh:252
time_t startTime
Timestamp of when the handshake started.
Definition XrdClPostMasterInterfaces.hh:257
std::string streamName
Name of the stream.
Definition XrdClPostMasterInterfaces.hh:261
std::string clientName
Client name (an IPv6 representation)
Definition XrdClPostMasterInterfaces.hh:260
HandShakeData(const URL *addr, uint16_t subStream)
Constructor.
Definition XrdClPostMasterInterfaces.hh:248
const URL * url
Destination URL.
Definition XrdClPostMasterInterfaces.hh:255
const XrdNetAddr * serverAddr
Server address.
Definition XrdClPostMasterInterfaces.hh:259
Message * in
Message that has been received.
Definition XrdClPostMasterInterfaces.hh:254
uint16_t subStreamId
Sub-stream id.
Definition XrdClPostMasterInterfaces.hh:256
Message * out
Message to be sent out.
Definition XrdClPostMasterInterfaces.hh:253
none object for initializing empty Optional
Definition XrdClOptional.hh:35
Definition XrdClPostMasterInterfaces.hh:269
uint16_t down
Definition XrdClPostMasterInterfaces.hh:272
PathID(uint16_t u=0, uint16_t d=0)
Definition XrdClPostMasterInterfaces.hh:270
uint16_t up
Definition XrdClPostMasterInterfaces.hh:271
Procedure execution status.
Definition XrdClStatus.hh:115
Definition XrdClPostMasterInterfaces.hh:300
static const uint16_t IpAddr
Definition XrdClPostMasterInterfaces.hh:301
static const uint16_t HostName
Definition XrdClPostMasterInterfaces.hh:303
static const uint16_t IpStack
Definition XrdClPostMasterInterfaces.hh:302
Definition XrdClPostMasterInterfaces.hh:280
static const uint16_t Name
Transport name, returns const char *.
Definition XrdClPostMasterInterfaces.hh:281
static const uint16_t Auth
Transport name, returns std::string *.
Definition XrdClPostMasterInterfaces.hh:282
XRootD related protocol queries.
Definition XrdClPostMasterInterfaces.hh:289
static const uint16_t ServerFlags
returns server flags
Definition XrdClPostMasterInterfaces.hh:290
static const uint16_t ProtocolVersion
returns the protocol version
Definition XrdClPostMasterInterfaces.hh:291
static const uint16_t IsEncrypted
returns true if the channel is encrypted
Definition XrdClPostMasterInterfaces.hh:292