Go to the documentation of this file.
19 #ifndef __XRD_CL_STREAM_HH__
20 #define __XRD_CL_STREAM_HH__
41 class TransportHandler;
192 uint32_t bytesReceived );
197 std::pair<Message *, OutgoingMsgHandler *>
205 uint32_t bytesSent );
257 std::pair<IncomingMsgHandler *, bool>
279 virtual void Run(
void *arg )
296 virtual void Run(
void *arg )
371 #endif // __XRD_CL_STREAM_HH__
Status Initialize()
Initializer.
void OnMessageSent(uint16_t subStream, Message *msg, uint32_t bytesSent)
QueueIncMsgJob * pQueueIncMsgJob
Definition: XrdClStream.hh:354
JobManager * pJobManager
Definition: XrdClStream.hh:334
Poller * pPoller
Definition: XrdClStream.hh:332
uint16_t pStreamNum
Definition: XrdClStream.hh:329
Message status handler.
Definition: XrdClPostMasterInterfaces.hh:168
std::pair< IncomingMsgHandler *, bool > InstallIncHandler(Message *msg, uint16_t stream)
ChannelHandlerList pChannelEvHandlers
Definition: XrdClStream.hh:348
void SetPoller(Poller *poller)
Set the poller.
Definition: XrdClStream.hh:96
Definition: XrdClStream.hh:275
virtual ~HandleIncMsgJob()
Definition: XrdClStream.hh:295
std::vector< SubStreamData * > SubStreamList
Definition: XrdClStream.hh:323
Definition: XrdClPostMasterInterfaces.hh:283
void OnWriteTimeout(uint16_t subStream)
On write timeout.
Utils::AddressType pAddressType
Definition: XrdClStream.hh:347
SubStreamList pSubStreams
Definition: XrdClStream.hh:345
void ForceConnect()
Force connection.
Interface for socket pollers.
Definition: XrdClPoller.hh:87
@ Connecting
In the process of being connected.
Definition: XrdClStream.hh:58
Status RequestClose(Message *resp)
Send close after an open request timed out.
A synchronized queue.
Definition: XrdClJobManager.hh:51
Status EnableLink(PathID &path)
void SetOnConnectHandler(Job *onConnJob)
Set the on-connect handler for data streams.
Definition: XrdClStream.hh:263
void OnConnectError(uint16_t subStream, Status status)
On connect error.
void SetIncomingQueue(InQueue *incomingQueue)
Set the incoming queue.
Definition: XrdClStream.hh:104
Stream(const URL *url, uint16_t streamNum)
Constructor.
The message representation used throughout the system.
Definition: XrdClMessage.hh:30
bool AddMessage(Message *msg)
Add a fully reconstructed message to the queue.
uint16_t GetStreamNumber() const
Get the stream number.
Definition: XrdClStream.hh:164
const std::string & GetName() const
Return stream name.
Definition: XrdClStream.hh:177
A helper for handling channel event handlers.
Definition: XrdClChannelHandlerList.hh:34
uint16_t pConnectionWindow
Definition: XrdClStream.hh:344
std::pair< Message *, OutgoingMsgHandler * > OnReadyToWrite(uint16_t subStream)
IncomingMsgHandler * pHandler
Definition: XrdClStream.hh:303
void OnIncoming(uint16_t subStream, Message *msg, uint32_t bytesReceived)
Call back when a message has been reconstructed.
void Disconnect(bool force=false)
Disconnect the stream.
time_t pConnectionInitTime
Definition: XrdClStream.hh:343
Definition: XrdClTaskManager.hh:76
void SetTaskManager(TaskManager *taskManager)
Set task manager.
Definition: XrdClStream.hh:122
void SetJobManager(JobManager *jobManager)
Set job manager.
Definition: XrdClStream.hh:130
A synchronize queue for incoming data.
Definition: XrdClInQueue.hh:36
const URL * GetURL() const
Get the URL.
Definition: XrdClStream.hh:156
uint64_t pSessionId
Definition: XrdClStream.hh:349
void OnConnect(uint16_t subStream)
Call back when a message has been reconstructed.
Definition: XrdSysPthread.hh:240
Message handler.
Definition: XrdClPostMasterInterfaces.hh:69
virtual ~QueueIncMsgJob()
Definition: XrdClStream.hh:278
void SetChannelData(AnyObject *channelData)
Set the channel data.
Definition: XrdClStream.hh:114
timeval pConnectionDone
Definition: XrdClStream.hh:360
TransportHandler * pTransport
Definition: XrdClStream.hh:331
std::vector< XrdNetAddr > pAddresses
Definition: XrdClStream.hh:346
@ Error
Broken.
Definition: XrdClStream.hh:59
void DisableIfEmpty(uint16_t subStream)
Disables respective uplink if empty.
std::string pStreamName
Definition: XrdClStream.hh:330
Status Send(Message *msg, OutgoingMsgHandler *handler, bool stateful, time_t expires)
Queue the message for sending.
Definition: XrdClAnyObject.hh:26
void OnError(uint16_t subStream, Status status)
On error.
Job * pOnConnJob
Definition: XrdClStream.hh:367
uint64_t pBytesSent
Definition: XrdClStream.hh:361
@ Disconnected
Not connected.
Definition: XrdClStream.hh:56
void ForceError(Status status)
Force error.
void OnFatalError(uint16_t subStream, Status status, XrdSysMutexHelper &lock)
On fatal error - unlocks the stream.
InQueue * pIncomingQueue
Definition: XrdClStream.hh:336
void RemoveEventHandler(ChannelEventHandler *handler)
Remove a channel event handler.
virtual void Run(void *arg)
The job logic.
Definition: XrdClStream.hh:296
HandleIncMsgJob(IncomingMsgHandler *handler)
Definition: XrdClStream.hh:294
InQueue * pQueue
Definition: XrdClStream.hh:285
StreamStatus
Status of the stream.
Definition: XrdClStream.hh:55
uint16_t pStreamErrorWindow
Definition: XrdClStream.hh:340
QueueIncMsgJob(InQueue *queue)
Definition: XrdClStream.hh:277
Procedure execution status.
Definition: XrdClStatus.hh:110
URL representation.
Definition: XrdClURL.hh:31
Definition: XrdSysPthread.hh:261
Interface for a job to be run by the job manager.
Definition: XrdClJobManager.hh:34
const URL * pUrl
Definition: XrdClStream.hh:328
void RegisterEventHandler(ChannelEventHandler *handler)
Register channel event handler.
uint64_t pBytesReceived
Definition: XrdClStream.hh:362
@ Connected
Connected.
Definition: XrdClStream.hh:57
Channel event handler.
Definition: XrdClPostMasterInterfaces.hh:221
TaskManager * pTaskManager
Definition: XrdClStream.hh:333
virtual void Run(void *arg)
The job logic.
Definition: XrdClStream.hh:279
uint32_t pLastStreamError
Definition: XrdClStream.hh:338
uint16_t pConnectionRetry
Definition: XrdClStream.hh:342
timeval pConnectionStarted
Definition: XrdClStream.hh:359
void SetTransport(TransportHandler *transport)
Set the transport.
Definition: XrdClStream.hh:88
Perform the handshake and the authentication for each physical stream.
Definition: XrdClPostMasterInterfaces.hh:303
void OnReadTimeout(uint16_t subStream, bool &isBroken)
On read timeout.
XrdSysRecMutex pMutex
Definition: XrdClStream.hh:335
Definition: XrdClAnyObject.hh:33
virtual void Process(Message *msg)
Definition: XrdClPostMasterInterfaces.hh:126
Stream.
Definition: XrdClStream.hh:49
Status pLastFatalError
Definition: XrdClStream.hh:339
uint16_t pConnectionCount
Definition: XrdClStream.hh:341
Definition: XrdClStream.hh:292
AnyObject * pChannelData
Definition: XrdClStream.hh:337
AddressType
Address type.
Definition: XrdClUtils.hh:94
void MonitorDisconnection(Status status)
Inform the monitoring about disconnection.