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

A synchronize queue for incomming data. More...

#include <XrdClInQueue.hh>

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

Public Member Functions

bool AddMessage (Message *msg)
 Add a message to the queue. More...
 
void AddMessageHandler (IncomingMsgHandler *handler, time_t expires)
 
void RemoveMessageHandler (IncomingMsgHandler *handler)
 Remove a listener. More...
 
void ReportStreamEvent (IncomingMsgHandler::StreamEvent event, uint16_t streamNum, Status status)
 Report an event to the handlers. More...
 
void ReportTimeout (time_t now=0)
 Timeout handlers. More...
 

Private Types

typedef std::pair
< IncomingMsgHandler *, time_t > 
HandlerAndExpire
 
typedef std::list
< HandlerAndExpire > 
HandlerList
 

Private Attributes

std::list< Message * > pMessages
 
HandlerList pHandlers
 
XrdSysMutex pMutex
 

Detailed Description

A synchronize queue for incomming data.

Member Typedef Documentation

typedef std::pair<IncomingMsgHandler *, time_t> XrdCl::InQueue::HandlerAndExpire
private
typedef std::list<HandlerAndExpire> XrdCl::InQueue::HandlerList
private

Member Function Documentation

bool XrdCl::InQueue::AddMessage ( Message *  msg)
void XrdCl::InQueue::AddMessageHandler ( IncomingMsgHandler *  handler,
time_t  expires 
)

Add a listener that should be notified about incomming messages

Parameters
handlermessage handler
expirestime when the message handler expires

References XrdCl::IncomingMsgHandler::OnIncoming(), pHandlers, pMessages, pMutex, XrdCl::IncomingMsgHandler::RemoveHandler, and XrdCl::IncomingMsgHandler::Take.

Referenced by XrdCl::Channel::Receive().

void XrdCl::InQueue::RemoveMessageHandler ( IncomingMsgHandler *  handler)

Remove a listener.

References pHandlers, and pMutex.

void XrdCl::InQueue::ReportStreamEvent ( IncomingMsgHandler::StreamEvent  event,
uint16_t  streamNum,
Status  status 
)

Report an event to the handlers.

References pHandlers, pMutex, and XrdCl::IncomingMsgHandler::RemoveHandler.

Referenced by XrdCl::Stream::OnError(), and XrdCl::Stream::OnFatalError().

void XrdCl::InQueue::ReportTimeout ( time_t  now = 0)

Member Data Documentation

HandlerList XrdCl::InQueue::pHandlers
private
std::list<Message *> XrdCl::InQueue::pMessages
private

Referenced by AddMessage(), and AddMessageHandler().

XrdSysMutex XrdCl::InQueue::pMutex
private

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