xrootd
Classes | Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
XrdCl::Stream Class Reference

Stream. More...

#include <XrdClStream.hh>

Collaboration diagram for XrdCl::Stream:
Collaboration graph
[legend]

Classes

class  HandleIncMsgJob
 
class  QueueIncMsgJob
 

Public Types

enum  StreamStatus { Disconnected = 0, Connected = 1, Connecting = 2, Error = 3 }
 Status of the stream. More...
 

Public Member Functions

 Stream (const URL *url, uint16_t streamNum)
 Constructor. More...
 
 ~Stream ()
 Destructor. More...
 
Status Initialize ()
 Initializer. More...
 
Status Send (Message *msg, OutgoingMsgHandler *handler, bool stateful, time_t expires)
 Queue the message for sending. More...
 
void SetTransport (TransportHandler *transport)
 Set the transport. More...
 
void SetPoller (Poller *poller)
 Set the poller. More...
 
void SetIncomingQueue (InQueue *incomingQueue)
 Set the incoming queue. More...
 
void SetChannelData (AnyObject *channelData)
 Set the channel data. More...
 
void SetTaskManager (TaskManager *taskManager)
 Set task manager. More...
 
void SetJobManager (JobManager *jobManager)
 Set job manager. More...
 
Status EnableLink (PathID &path)
 
void Disconnect (bool force=false)
 Disconnect the stream. More...
 
void Tick (time_t now)
 
const URLGetURL () const
 Get the URL. More...
 
uint16_t GetStreamNumber () const
 Get the stream number. More...
 
void ForceConnect ()
 Force connection. More...
 
const std::string & GetName () const
 Return stream name. More...
 
void DisableIfEmpty (uint16_t subStream)
 Disables respective uplink if empty. More...
 
void OnIncoming (uint16_t subStream, Message *msg, uint32_t bytesReceived)
 Call back when a message has been reconstructed. More...
 
std::pair< Message *, OutgoingMsgHandler * > OnReadyToWrite (uint16_t subStream)
 
void OnMessageSent (uint16_t subStream, Message *msg, uint32_t bytesSent)
 
void OnConnect (uint16_t subStream)
 Call back when a message has been reconstructed. More...
 
void OnConnectError (uint16_t subStream, Status status)
 On connect error. More...
 
void OnError (uint16_t subStream, Status status)
 On error. More...
 
void ForceError (Status status)
 Force error. More...
 
void OnReadTimeout (uint16_t subStream, bool &isBroken)
 On read timeout. More...
 
void OnWriteTimeout (uint16_t subStream)
 On write timeout. More...
 
void RegisterEventHandler (ChannelEventHandler *handler)
 Register channel event handler. More...
 
void RemoveEventHandler (ChannelEventHandler *handler)
 Remove a channel event handler. More...
 
std::pair< IncomingMsgHandler *, bool > InstallIncHandler (Message *msg, uint16_t stream)
 
void SetOnConnectHandler (Job *onConnJob)
 Set the on-connect handler for data streams. More...
 

Private Types

typedef std::vector< SubStreamData * > SubStreamList
 

Private Member Functions

void OnFatalError (uint16_t subStream, Status status, XrdSysMutexHelper &lock)
 On fatal error - unlocks the stream. More...
 
void MonitorDisconnection (Status status)
 Inform the monitoring about disconnection. More...
 
Status RequestClose (Message *resp)
 Send close after an open request timed out. More...
 

Private Attributes

const URLpUrl
 
uint16_t pStreamNum
 
std::string pStreamName
 
TransportHandlerpTransport
 
PollerpPoller
 
TaskManagerpTaskManager
 
JobManagerpJobManager
 
XrdSysRecMutex pMutex
 
InQueuepIncomingQueue
 
AnyObjectpChannelData
 
uint32_t pLastStreamError
 
Status pLastFatalError
 
uint16_t pStreamErrorWindow
 
uint16_t pConnectionCount
 
uint16_t pConnectionRetry
 
time_t pConnectionInitTime
 
uint16_t pConnectionWindow
 
SubStreamList pSubStreams
 
std::vector< XrdNetAddrpAddresses
 
Utils::AddressType pAddressType
 
ChannelHandlerList pChannelEvHandlers
 
uint64_t pSessionId
 
QueueIncMsgJobpQueueIncMsgJob
 
timeval pConnectionStarted
 
timeval pConnectionDone
 
uint64_t pBytesSent
 
uint64_t pBytesReceived
 
JobpOnConnJob
 

Detailed Description

Stream.

Member Typedef Documentation

◆ SubStreamList

typedef std::vector<SubStreamData*> XrdCl::Stream::SubStreamList
private

Member Enumeration Documentation

◆ StreamStatus

Status of the stream.

Enumerator
Disconnected 

Not connected.

Connected 

Connected.

Connecting 

In the process of being connected.

Error 

Broken.

Constructor & Destructor Documentation

◆ Stream()

XrdCl::Stream::Stream ( const URL url,
uint16_t  streamNum 
)

Constructor.

◆ ~Stream()

XrdCl::Stream::~Stream ( )

Destructor.

Member Function Documentation

◆ DisableIfEmpty()

void XrdCl::Stream::DisableIfEmpty ( uint16_t  subStream)

Disables respective uplink if empty.

◆ Disconnect()

void XrdCl::Stream::Disconnect ( bool  force = false)

Disconnect the stream.

◆ EnableLink()

Status XrdCl::Stream::EnableLink ( PathID path)

Connect if needed, otherwise make sure that the underlying socket handler gets write readiness events, it will update the path with what it has actually enabled

◆ ForceConnect()

void XrdCl::Stream::ForceConnect ( )

Force connection.

◆ ForceError()

void XrdCl::Stream::ForceError ( Status  status)

Force error.

◆ GetName()

const std::string& XrdCl::Stream::GetName ( ) const
inline

Return stream name.

References pStreamName.

◆ GetStreamNumber()

uint16_t XrdCl::Stream::GetStreamNumber ( ) const
inline

Get the stream number.

References pStreamNum.

◆ GetURL()

const URL* XrdCl::Stream::GetURL ( ) const
inline

Get the URL.

References pUrl.

◆ Initialize()

Status XrdCl::Stream::Initialize ( )

Initializer.

◆ InstallIncHandler()

std::pair<IncomingMsgHandler *, bool> XrdCl::Stream::InstallIncHandler ( Message msg,
uint16_t  stream 
)

Install a message handler for the given message if there is one available, if the handler want's to be called in the raw mode it will be returned, the message ownership flag is returned in any case

Parameters
msgmessage header
streamstream concerned
Returns
a pair containing the handler and ownership flag

◆ MonitorDisconnection()

void XrdCl::Stream::MonitorDisconnection ( Status  status)
private

Inform the monitoring about disconnection.

◆ OnConnect()

void XrdCl::Stream::OnConnect ( uint16_t  subStream)

Call back when a message has been reconstructed.

◆ OnConnectError()

void XrdCl::Stream::OnConnectError ( uint16_t  subStream,
Status  status 
)

On connect error.

◆ OnError()

void XrdCl::Stream::OnError ( uint16_t  subStream,
Status  status 
)

On error.

◆ OnFatalError()

void XrdCl::Stream::OnFatalError ( uint16_t  subStream,
Status  status,
XrdSysMutexHelper lock 
)
private

On fatal error - unlocks the stream.

◆ OnIncoming()

void XrdCl::Stream::OnIncoming ( uint16_t  subStream,
Message msg,
uint32_t  bytesReceived 
)

Call back when a message has been reconstructed.

◆ OnMessageSent()

void XrdCl::Stream::OnMessageSent ( uint16_t  subStream,
Message msg,
uint32_t  bytesSent 
)

◆ OnReadTimeout()

void XrdCl::Stream::OnReadTimeout ( uint16_t  subStream,
bool &  isBroken 
)

On read timeout.

◆ OnReadyToWrite()

std::pair<Message *, OutgoingMsgHandler *> XrdCl::Stream::OnReadyToWrite ( uint16_t  subStream)

◆ OnWriteTimeout()

void XrdCl::Stream::OnWriteTimeout ( uint16_t  subStream)

On write timeout.

◆ RegisterEventHandler()

void XrdCl::Stream::RegisterEventHandler ( ChannelEventHandler handler)

Register channel event handler.

◆ RemoveEventHandler()

void XrdCl::Stream::RemoveEventHandler ( ChannelEventHandler handler)

Remove a channel event handler.

◆ RequestClose()

Status XrdCl::Stream::RequestClose ( Message resp)
private

Send close after an open request timed out.

◆ Send()

Status XrdCl::Stream::Send ( Message msg,
OutgoingMsgHandler handler,
bool  stateful,
time_t  expires 
)

Queue the message for sending.

◆ SetChannelData()

void XrdCl::Stream::SetChannelData ( AnyObject channelData)
inline

Set the channel data.

References pChannelData.

◆ SetIncomingQueue()

void XrdCl::Stream::SetIncomingQueue ( InQueue incomingQueue)
inline

Set the incoming queue.

References pIncomingQueue, and pQueueIncMsgJob.

◆ SetJobManager()

void XrdCl::Stream::SetJobManager ( JobManager jobManager)
inline

Set job manager.

References pJobManager.

◆ SetOnConnectHandler()

void XrdCl::Stream::SetOnConnectHandler ( Job onConnJob)
inline

Set the on-connect handler for data streams.

References pOnConnJob.

◆ SetPoller()

void XrdCl::Stream::SetPoller ( Poller poller)
inline

Set the poller.

References pPoller.

◆ SetTaskManager()

void XrdCl::Stream::SetTaskManager ( TaskManager taskManager)
inline

Set task manager.

References pTaskManager.

◆ SetTransport()

void XrdCl::Stream::SetTransport ( TransportHandler transport)
inline

Set the transport.

References pTransport.

◆ Tick()

void XrdCl::Stream::Tick ( time_t  now)

Handle a clock event generated either by socket timeout, or by the task manager event

Member Data Documentation

◆ pAddresses

std::vector<XrdNetAddr> XrdCl::Stream::pAddresses
private

◆ pAddressType

Utils::AddressType XrdCl::Stream::pAddressType
private

◆ pBytesReceived

uint64_t XrdCl::Stream::pBytesReceived
private

◆ pBytesSent

uint64_t XrdCl::Stream::pBytesSent
private

◆ pChannelData

AnyObject* XrdCl::Stream::pChannelData
private

Referenced by SetChannelData().

◆ pChannelEvHandlers

ChannelHandlerList XrdCl::Stream::pChannelEvHandlers
private

◆ pConnectionCount

uint16_t XrdCl::Stream::pConnectionCount
private

◆ pConnectionDone

timeval XrdCl::Stream::pConnectionDone
private

◆ pConnectionInitTime

time_t XrdCl::Stream::pConnectionInitTime
private

◆ pConnectionRetry

uint16_t XrdCl::Stream::pConnectionRetry
private

◆ pConnectionStarted

timeval XrdCl::Stream::pConnectionStarted
private

◆ pConnectionWindow

uint16_t XrdCl::Stream::pConnectionWindow
private

◆ pIncomingQueue

InQueue* XrdCl::Stream::pIncomingQueue
private

Referenced by SetIncomingQueue().

◆ pJobManager

JobManager* XrdCl::Stream::pJobManager
private

Referenced by SetJobManager().

◆ pLastFatalError

Status XrdCl::Stream::pLastFatalError
private

◆ pLastStreamError

uint32_t XrdCl::Stream::pLastStreamError
private

◆ pMutex

XrdSysRecMutex XrdCl::Stream::pMutex
private

◆ pOnConnJob

Job* XrdCl::Stream::pOnConnJob
private

Referenced by SetOnConnectHandler().

◆ pPoller

Poller* XrdCl::Stream::pPoller
private

Referenced by SetPoller().

◆ pQueueIncMsgJob

QueueIncMsgJob* XrdCl::Stream::pQueueIncMsgJob
private

Referenced by SetIncomingQueue().

◆ pSessionId

uint64_t XrdCl::Stream::pSessionId
private

◆ pStreamErrorWindow

uint16_t XrdCl::Stream::pStreamErrorWindow
private

◆ pStreamName

std::string XrdCl::Stream::pStreamName
private

Referenced by GetName().

◆ pStreamNum

uint16_t XrdCl::Stream::pStreamNum
private

Referenced by GetStreamNumber().

◆ pSubStreams

SubStreamList XrdCl::Stream::pSubStreams
private

◆ pTaskManager

TaskManager* XrdCl::Stream::pTaskManager
private

Referenced by SetTaskManager().

◆ pTransport

TransportHandler* XrdCl::Stream::pTransport
private

Referenced by SetTransport().

◆ pUrl

const URL* XrdCl::Stream::pUrl
private

Referenced by GetURL().


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