xrootd
Loading...
Searching...
No Matches
Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
XrdCl::InQueue Class Reference

A synchronize queue for incoming data. More...

#include <XrdClInQueue.hh>

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

Public Member Functions

void AddMessageHandler (MsgHandler *handler, time_t expires, bool &rmMsg)
 
MsgHandlerGetHandlerForMessage (std::shared_ptr< Message > &msg, time_t &expires, uint16_t &action)
 
void ReAddMessageHandler (MsgHandler *handler, time_t expires)
 Re-insert the handler without scanning the cached messages.
 
void RemoveMessageHandler (MsgHandler *handler)
 Remove a listener.
 
void ReportStreamEvent (MsgHandler::StreamEvent event, XRootDStatus status)
 Report an event to the handlers.
 
void ReportTimeout (time_t now=0)
 Timeout handlers.
 

Private Types

typedef std::pair< MsgHandler *, time_t > HandlerAndExpire
 
typedef std::map< uint16_t, HandlerAndExpireHandlerMap
 

Private Member Functions

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

Private Attributes

HandlerMap pHandlers
 
XrdSysRecMutex pMutex
 

Detailed Description

A synchronize queue for incoming data.

Member Typedef Documentation

◆ HandlerAndExpire

typedef std::pair<MsgHandler *, time_t> XrdCl::InQueue::HandlerAndExpire
private

◆ HandlerMap

typedef std::map<uint16_t, HandlerAndExpire> XrdCl::InQueue::HandlerMap
private

Member Function Documentation

◆ AddMessageHandler()

void XrdCl::InQueue::AddMessageHandler ( MsgHandler handler,
time_t  expires,
bool &  rmMsg 
)

Add a listener that should be notified about incoming messages

Parameters
handlermessage handler
expirestime when the message handler expires
rmMsgwill be set to true if a left over message matching the request has been removed from the queue

◆ DiscardMessage()

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
msgmessage object
sidextracted message sid used later for matching with the handler
Returns
true if message discarded, otherwise false

◆ GetHandlerForMessage()

MsgHandler * XrdCl::InQueue::GetHandlerForMessage ( std::shared_ptr< Message > &  msg,
time_t &  expires,
uint16_t &  action 
)

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

Parameters
msgmessage header
expireshandle's expiration timestamp
actionthe action declared by the handler
Returns
handler or 0 if none is interested

◆ ReAddMessageHandler()

void XrdCl::InQueue::ReAddMessageHandler ( MsgHandler handler,
time_t  expires 
)

Re-insert the handler without scanning the cached messages.

◆ RemoveMessageHandler()

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

Remove a listener.

◆ ReportStreamEvent()

void XrdCl::InQueue::ReportStreamEvent ( MsgHandler::StreamEvent  event,
XRootDStatus  status 
)

Report an event to the handlers.

◆ ReportTimeout()

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

Timeout handlers.

Member Data Documentation

◆ pHandlers

HandlerMap XrdCl::InQueue::pHandlers
private

◆ pMutex

XrdSysRecMutex XrdCl::InQueue::pMutex
private

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