XrdCl::InQueue Class Reference

A synchronize queue for incoming data. More...

#include <XrdClInQueue.hh>

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

List of all members.

Public Member Functions

bool AddMessage (Message *msg)
 Add a fully reconstructed message to the queue.
void AddMessageHandler (IncomingMsgHandler *handler, time_t expires)
IncomingMsgHandlerGetHandlerForMessage (Message *msg, time_t &expires, uint16_t &action)
void ReAddMessageHandler (IncomingMsgHandler *handler, time_t expires)
 Re-insert the handler without scanning the cached messages.
void RemoveMessageHandler (IncomingMsgHandler *handler)
 Remove a listener.
void ReportStreamEvent (IncomingMsgHandler::StreamEvent event, uint16_t streamNum, Status status)
 Report an event to the handlers.
void ReportTimeout (time_t now=0)
 Timeout handlers.

Private Types

typedef std::pair
< IncomingMsgHandler *, time_t > 
HandlerAndExpire
typedef std::map< uint16_t,
HandlerAndExpire
HandlerMap
typedef std::map< uint16_t,
Message * > 
MessageMap

Private Member Functions

bool DiscardMessage (Message *msg, uint16_t &sid) const

Private Attributes

MessageMap pMessages
HandlerMap pHandlers
XrdSysRecMutex pMutex

Detailed Description

A synchronize queue for incoming data.


Member Typedef Documentation

typedef std::pair<IncomingMsgHandler *, time_t> XrdCl::InQueue::HandlerAndExpire [private]
typedef std::map<uint16_t, HandlerAndExpire> XrdCl::InQueue::HandlerMap [private]
typedef std::map<uint16_t, Message*> XrdCl::InQueue::MessageMap [private]

Member Function Documentation

bool XrdCl::InQueue::AddMessage ( Message msg  ) 

Add a fully reconstructed message to the queue.

Referenced by XrdCl::Stream::QueueIncMsgJob::Run().

void XrdCl::InQueue::AddMessageHandler ( IncomingMsgHandler handler,
time_t  expires 
)

Add a listener that should be notified about incoming messages

Parameters:
handler message handler
expires time when the message handler expires
bool XrdCl::InQueue::DiscardMessage ( Message msg,
uint16_t &  sid 
) const [private]

Discard messages that don't meet basic criteria and extract the message sid

Parameters:
msg message object
sid extracted message sid used later for matching with the handler
Returns:
true if message discarded, otherwise false
IncomingMsgHandler* XrdCl::InQueue::GetHandlerForMessage ( Message msg,
time_t &  expires,
uint16_t &  action 
)

Get a message handler interested in receiving message whose header is stored in msg

Parameters:
msg message header
expires handle's expiration timestamp
action the action declared by the handler
Returns:
handler or 0 if none is interested
void XrdCl::InQueue::ReAddMessageHandler ( IncomingMsgHandler handler,
time_t  expires 
)

Re-insert the handler without scanning the cached messages.

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

Remove a listener.

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

Report an event to the handlers.

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

Timeout handlers.


Member Data Documentation


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

Generated on 17 Dec 2019 for xrootd by  doxygen 1.6.1