XrdCl::Stream Class Reference

Stream. More...

#include <XrdClStream.hh>

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

List of all members.

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

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.
void MonitorDisconnection (Status status)
 Inform the monitoring about disconnection.
Status RequestClose (Message *resp)
 Send close after an open request timed out.

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

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 
)

Constructor.

XrdCl::Stream::~Stream (  ) 

Destructor.


Member Function Documentation

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

Disables respective uplink if empty.

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

Disconnect the stream.

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

void XrdCl::Stream::ForceConnect (  ) 

Force connection.

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

Force error.

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

Return stream name.

References pStreamName.

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

Get the stream number.

References pStreamNum.

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

Get the URL.

References pUrl.

Status XrdCl::Stream::Initialize (  ) 

Initializer.

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:
msg message header
stream stream concerned
Returns:
a pair containing the handler and ownership flag
void XrdCl::Stream::MonitorDisconnection ( Status  status  )  [private]

Inform the monitoring about disconnection.

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

Call back when a message has been reconstructed.

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

On connect error.

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

On error.

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

On fatal error - unlocks the stream.

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

Call back when a message has been reconstructed.

void XrdCl::Stream::OnMessageSent ( uint16_t  subStream,
Message msg,
uint32_t  bytesSent 
)
void XrdCl::Stream::OnReadTimeout ( uint16_t  subStream,
bool &  isBroken 
)

On read timeout.

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

On write timeout.

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

Register channel event handler.

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

Remove a channel event handler.

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

Send close after an open request timed out.

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

Queue the message for sending.

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, and pQueueIncMsgJob.

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

Set job manager.

References pJobManager.

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

Set the on-connect handler for data streams.

References pOnConnJob.

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  ) 

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


Member Data Documentation

std::vector<XrdNetAddr> XrdCl::Stream::pAddresses [private]
uint64_t XrdCl::Stream::pBytesReceived [private]
uint64_t XrdCl::Stream::pBytesSent [private]

Referenced by SetChannelData().

uint16_t XrdCl::Stream::pConnectionCount [private]
timeval XrdCl::Stream::pConnectionDone [private]
uint16_t XrdCl::Stream::pConnectionRetry [private]

Referenced by SetIncomingQueue().

Referenced by SetJobManager().

uint32_t XrdCl::Stream::pLastStreamError [private]

Referenced by SetOnConnectHandler().

Referenced by SetPoller().

Referenced by SetIncomingQueue().

uint64_t XrdCl::Stream::pSessionId [private]
std::string XrdCl::Stream::pStreamName [private]

Referenced by GetName().

uint16_t XrdCl::Stream::pStreamNum [private]

Referenced by GetStreamNumber().

Referenced by SetTaskManager().

Referenced by SetTransport().

const URL* XrdCl::Stream::pUrl [private]

Referenced by GetURL().


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 8 May 2020 for xrootd by  doxygen 1.6.1