xrootd
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]

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...
 
Status EnableLink (PathID &path)
 
void Disconnect (bool force=false)
 Disconnect the stream. More...
 
void Tick (time_t now)
 
const URL * GetURL () 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 OnIncoming (uint16_t subStream, Message *msg)
 Call back when a message has been reconstructed. More...
 
Message * OnReadyToWrite (uint16_t subStream)
 
void OnMessageSent (uint16_t subStream, Message *msg)
 
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 OnReadTimeout (uint16_t subStream)
 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...
 

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...
 

Private Attributes

const URL * pUrl
 
uint16_t pStreamNum
 
std::string pStreamName
 
TransportHandler * pTransport
 
Poller * pPoller
 
TaskManager * pTaskManager
 
XrdSysRecMutex pMutex
 
InQueue * pIncomingQueue
 
AnyObject * pChannelData
 
uint16_t pLastStreamError
 
uint16_t pStreamErrorWindow
 
uint16_t pConnectionCount
 
uint16_t pConnectionRetry
 
time_t pConnectionInitTime
 
uint16_t pConnectionWindow
 
SubStreamList pSubStreams
 
std::vector< sockaddr_in > pAddresses
 
ChannelHandlerList pChannelEvHandlers
 
uint64_t pSessionId
 
timeval pConnectionStarted
 
timeval pConnectionDone
 
uint64_t pBytesSent
 
uint64_t pBytesReceived
 

Detailed Description

Stream.

Member Typedef Documentation

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

Member Enumeration Documentation

Status of the stream.

Enumerator
Disconnected 

Not connected.

Connected 

Connected.

Connecting 

In the process of being connected.

Error 

Broken.

Constructor & Destructor Documentation

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

Member Function Documentation

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

Disconnect the stream.

Referenced by ~Stream().

Status XrdCl::Stream::EnableLink ( PathID &  path)
void XrdCl::Stream::ForceConnect ( )
const std::string& XrdCl::Stream::GetName ( ) const
inline

Return stream name.

References pStreamName.

uint16_t XrdCl::Stream::GetStreamNumber ( ) const
inline
const URL* XrdCl::Stream::GetURL ( ) const
inline
Status XrdCl::Stream::Initialize ( )
void XrdCl::Stream::MonitorDisconnection ( Status  status)
private
void XrdCl::Stream::OnConnect ( uint16_t  subStream)
void XrdCl::Stream::OnConnectError ( uint16_t  subStream,
Status  status 
)
void XrdCl::Stream::OnError ( uint16_t  subStream,
Status  status 
)
void XrdCl::Stream::OnFatalError ( uint16_t  subStream,
Status  status,
XrdSysMutexHelper &  lock 
)
private
void XrdCl::Stream::OnIncoming ( uint16_t  subStream,
Message *  msg 
)
void XrdCl::Stream::OnMessageSent ( uint16_t  subStream,
Message *  msg 
)
void XrdCl::Stream::OnReadTimeout ( uint16_t  subStream)

On read timeout.

Referenced by XrdCl::AsyncSocketHandler::OnReadTimeout().

Message * XrdCl::Stream::OnReadyToWrite ( uint16_t  subStream)
void XrdCl::Stream::OnWriteTimeout ( uint16_t  subStream)

On write timeout.

Referenced by XrdCl::AsyncSocketHandler::OnWriteTimeout().

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

Register channel event handler.

References XrdCl::ChannelHandlerList::AddHandler(), and pChannelEvHandlers.

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

Remove a channel event handler.

References pChannelEvHandlers, and XrdCl::ChannelHandlerList::RemoveHandler().

Status XrdCl::Stream::Send ( Message *  msg,
OutgoingMsgHandler *  handler,
bool  stateful,
time_t  expires 
)
void XrdCl::Stream::SetChannelData ( AnyObject *  channelData)
inline

Set the channel data.

References pChannelData.

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

Set the incoming queue.

References pIncomingQueue.

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

Set the poller.

References pPoller.

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

Set task manager.

References pTaskManager.

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

Set the transport.

References pTransport.

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

Member Data Documentation

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

Referenced by EnableLink(), and OnConnectError().

uint64_t XrdCl::Stream::pBytesReceived
private
uint64_t XrdCl::Stream::pBytesSent
private
AnyObject* XrdCl::Stream::pChannelData
private
ChannelHandlerList XrdCl::Stream::pChannelEvHandlers
private
uint16_t XrdCl::Stream::pConnectionCount
private
timeval XrdCl::Stream::pConnectionDone
private
time_t XrdCl::Stream::pConnectionInitTime
private

Referenced by EnableLink(), and OnConnectError().

uint16_t XrdCl::Stream::pConnectionRetry
private

Referenced by OnConnectError(), and Stream().

timeval XrdCl::Stream::pConnectionStarted
private

Referenced by EnableLink(), OnConnect(), and Stream().

uint16_t XrdCl::Stream::pConnectionWindow
private
InQueue* XrdCl::Stream::pIncomingQueue
private
uint16_t XrdCl::Stream::pLastStreamError
private

Referenced by EnableLink(), OnConnect(), and OnFatalError().

XrdSysRecMutex XrdCl::Stream::pMutex
private
Poller* XrdCl::Stream::pPoller
private

Referenced by Initialize(), OnConnect(), and SetPoller().

uint64_t XrdCl::Stream::pSessionId
private

Referenced by OnConnect(), OnIncoming(), and Send().

uint16_t XrdCl::Stream::pStreamErrorWindow
private

Referenced by EnableLink(), and Stream().

std::string XrdCl::Stream::pStreamName
private
uint16_t XrdCl::Stream::pStreamNum
private
SubStreamList XrdCl::Stream::pSubStreams
private
TaskManager* XrdCl::Stream::pTaskManager
private

Referenced by OnConnectError(), and SetTaskManager().

TransportHandler* XrdCl::Stream::pTransport
private
const URL* XrdCl::Stream::pUrl
private

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