xrootd
|
A synchronize queue for incoming data. More...
#include <XrdClInQueue.hh>
Public Member Functions | |
bool | AddMessage (Message *msg) |
Add a fully reconstructed message to the queue. More... | |
void | AddMessageHandler (IncomingMsgHandler *handler, time_t expires) |
IncomingMsgHandler * | GetHandlerForMessage (Message *msg, time_t &expires, uint16_t &action) |
void | ReAddMessageHandler (IncomingMsgHandler *handler, time_t expires) |
Re-insert the handler without scanning the cached messages. More... | |
void | RemoveMessageHandler (IncomingMsgHandler *handler) |
Remove a listener. More... | |
void | ReportStreamEvent (IncomingMsgHandler::StreamEvent event, XRootDStatus 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::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 |
A synchronize queue for incoming data.
|
private |
|
private |
|
private |
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
handler | message handler |
expires | time when the message handler expires |
|
private |
Discard messages that don't meet basic criteria and extract the message sid
msg | message object |
sid | extracted message sid used later for matching with the handler |
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
msg | message header |
expires | handle's expiration timestamp |
action | the action declared by the handler |
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, |
XRootDStatus | status | ||
) |
Report an event to the handlers.
void XrdCl::InQueue::ReportTimeout | ( | time_t | now = 0 | ) |
Timeout handlers.
|
private |
|
private |
|
private |