19#ifndef __XRD_CL_STREAM_HH__
20#define __XRD_CL_STREAM_HH__
44 class TransportHandler;
184 std::shared_ptr<Message> msg,
185 uint32_t bytesReceived );
190 std::pair<Message *, MsgHandler *>
198 uint32_t bytesSent );
291 std::vector<XrdNetAddr> &addresses )
293 auto itr = addresses.begin();
294 for( ; itr != addresses.end() ; ++itr )
296 if( itr->Same( &addr ) )
return true;
#define XRD_WARN_UNUSED_RESULT
Definition XrdOucCompiler.hh:31
Definition XrdClAnyObject.hh:33
Channel event handler.
Definition XrdClPostMasterInterfaces.hh:210
A helper for handling channel event handlers.
Definition XrdClChannelHandlerList.hh:34
A synchronize queue for incoming data.
Definition XrdClInQueue.hh:37
A synchronized queue.
Definition XrdClJobManager.hh:51
Interface for a job to be run by the job manager.
Definition XrdClJobManager.hh:34
The message representation used throughout the system.
Definition XrdClMessage.hh:30
Message handler.
Definition XrdClPostMasterInterfaces.hh:51
virtual void Process()
Definition XrdClPostMasterInterfaces.hh:125
Interface for socket pollers.
Definition XrdClPoller.hh:87
Definition XrdClStream.hh:306
virtual void Run(void *)
The job logic.
Definition XrdClStream.hh:310
MsgHandler * pHandler
Definition XrdClStream.hh:316
virtual ~HandleIncMsgJob()
Definition XrdClStream.hh:309
HandleIncMsgJob(MsgHandler *handler)
Definition XrdClStream.hh:308
Stream.
Definition XrdClStream.hh:52
XRootDStatus Send(Message *msg, MsgHandler *handler, bool stateful, time_t expires)
Queue the message for sending.
static bool HasNetAddr(const XrdNetAddr &addr, std::vector< XrdNetAddr > &addresses)
Check if addresses contains given address.
Definition XrdClStream.hh:290
void SetTransport(TransportHandler *transport)
Set the transport.
Definition XrdClStream.hh:91
StreamStatus
Status of the stream.
Definition XrdClStream.hh:58
@ Disconnected
Not connected.
Definition XrdClStream.hh:59
@ Error
Broken.
Definition XrdClStream.hh:62
@ Connected
Connected.
Definition XrdClStream.hh:60
@ Connecting
In the process of being connected.
Definition XrdClStream.hh:61
void SetIncomingQueue(InQueue *incomingQueue)
Set the incoming queue.
Definition XrdClStream.hh:107
timeval pConnectionStarted
Definition XrdClStream.hh:367
std::vector< SubStreamData * > SubStreamList
Definition XrdClStream.hh:336
bool OnReadTimeout(uint16_t subStream) XRD_WARN_UNUSED_RESULT
On read timeout.
bool CanCollapse(const URL &url)
InQueue * pIncomingQueue
Definition XrdClStream.hh:349
XrdSysRecMutex pMutex
Definition XrdClStream.hh:348
Utils::AddressType pAddressType
Definition XrdClStream.hh:360
void SetPoller(Poller *poller)
Set the poller.
Definition XrdClStream.hh:99
void ForceConnect()
Force connection.
XRootDStatus pLastFatalError
Definition XrdClStream.hh:352
time_t pConnectionInitTime
Definition XrdClStream.hh:356
void SetTaskManager(TaskManager *taskManager)
Set task manager.
Definition XrdClStream.hh:123
void SetOnDataConnectHandler(std::shared_ptr< Job > &onConnJob)
Set the on-connect handler for data streams.
Definition XrdClStream.hh:263
Poller * pPoller
Definition XrdClStream.hh:345
TaskManager * pTaskManager
Definition XrdClStream.hh:346
void SetJobManager(JobManager *jobManager)
Set job manager.
Definition XrdClStream.hh:131
Status Query(uint16_t query, AnyObject &result)
Query the stream.
uint32_t pLastStreamError
Definition XrdClStream.hh:351
void Disconnect(bool force=false)
Disconnect the stream.
XRootDStatus RequestClose(Message &resp)
Send close after an open request timed out.
uint16_t pConnectionRetry
Definition XrdClStream.hh:355
void MonitorDisconnection(XRootDStatus status)
Inform the monitoring about disconnection.
XRootDStatus EnableLink(PathID &path)
Stream(const URL *url, const URL &prefer=URL())
Constructor.
void OnConnect(uint16_t subStream)
Call back when a message has been reconstructed.
const std::string & GetName() const
Return stream name.
Definition XrdClStream.hh:170
uint64_t pBytesReceived
Definition XrdClStream.hh:370
void ForceError(XRootDStatus status)
Force error.
AnyObject * pChannelData
Definition XrdClStream.hh:350
static RAtomic_uint64_t sSessCntGen
Definition XrdClStream.hh:380
void OnConnectError(uint16_t subStream, XRootDStatus status)
On connect error.
std::vector< XrdNetAddr > pAddresses
Definition XrdClStream.hh:359
bool OnWriteTimeout(uint16_t subStream) XRD_WARN_UNUSED_RESULT
On write timeout.
const URL * pUrl
Definition XrdClStream.hh:341
void DisableIfEmpty(uint16_t subStream)
Disables respective uplink if empty.
void RemoveEventHandler(ChannelEventHandler *handler)
Remove a channel event handler.
const URL pPrefer
Definition XrdClStream.hh:342
JobManager * pJobManager
Definition XrdClStream.hh:347
uint16_t pConnectionCount
Definition XrdClStream.hh:354
void OnMessageSent(uint16_t subStream, Message *msg, uint32_t bytesSent)
std::string pStreamName
Definition XrdClStream.hh:343
MsgHandler * InstallIncHandler(std::shared_ptr< Message > &msg, uint16_t stream)
SubStreamList pSubStreams
Definition XrdClStream.hh:358
void OnIncoming(uint16_t subStream, std::shared_ptr< Message > msg, uint32_t bytesReceived)
Call back when a message has been reconstructed.
void OnError(uint16_t subStream, XRootDStatus status)
On error.
ChannelHandlerList pChannelEvHandlers
Definition XrdClStream.hh:361
uint64_t pBytesSent
Definition XrdClStream.hh:369
uint16_t pConnectionWindow
Definition XrdClStream.hh:357
TransportHandler * pTransport
Definition XrdClStream.hh:344
uint16_t pStreamErrorWindow
Definition XrdClStream.hh:353
const URL * GetURL() const
Get the URL.
Definition XrdClStream.hh:157
timeval pConnectionDone
Definition XrdClStream.hh:368
uint16_t InspectStatusRsp(uint16_t stream, MsgHandler *&incHandler)
void OnFatalError(uint16_t subStream, XRootDStatus status, XrdSysMutexHelper &lock)
On fatal error - unlocks the stream.
std::shared_ptr< Job > pOnDataConnJob
Definition XrdClStream.hh:375
static bool IsPartial(Message &msg)
Check if message is a partial response.
void SetChannelData(AnyObject *channelData)
Set the channel data.
Definition XrdClStream.hh:115
uint64_t pSessionId
Definition XrdClStream.hh:362
std::pair< Message *, MsgHandler * > OnReadyToWrite(uint16_t subStream)
XRootDStatus Initialize()
Initializer.
void RegisterEventHandler(ChannelEventHandler *handler)
Register channel event handler.
Definition XrdClTaskManager.hh:76
Perform the handshake and the authentication for each physical stream.
Definition XrdClPostMasterInterfaces.hh:310
URL representation.
Definition XrdClURL.hh:31
AddressType
Address type.
Definition XrdClUtils.hh:87
Request status.
Definition XrdClXRootDResponses.hh:219
Definition XrdNetAddr.hh:42
Definition XrdSysPthread.hh:263
Definition XrdSysPthread.hh:242
Definition XrdSysRAtomic.hh:26
Definition XrdClAction.hh:34
Definition XrdClPostMasterInterfaces.hh:269
Procedure execution status.
Definition XrdClStatus.hh:115