![]() |
XRootD
|
A synchronize queue for incoming data. More...
#include <XrdClInQueue.hh>
Public Member Functions | |
void | AddMessageHandler (MsgHandler *handler, bool &rmMsg) |
void | AssignTimeout (MsgHandler *handler) |
MsgHandler * | GetHandlerForMessage (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. More... | |
void | RemoveMessageHandler (MsgHandler *handler) |
Remove a listener. More... | |
void | ReportStreamEvent (MsgHandler::StreamEvent event, XRootDStatus status) |
Report an event to the handlers. More... | |
void | ReportTimeout (time_t now=0) |
Timeout handlers. More... | |
A synchronize queue for incoming data.
Definition at line 36 of file XrdClInQueue.hh.
void XrdCl::InQueue::AddMessageHandler | ( | MsgHandler * | handler, |
bool & | rmMsg | ||
) |
Add a listener that should be notified about incoming messages. Freshly added handlers have no expire time set and will not trigger the timeout reporting. The expiry is added by AssignTimeout or GetHandlerForMessage.
handler | message handler |
rmMsg | will be set to true if a left over message matching the request has been removed from the queue |
Definition at line 54 of file XrdClInQueue.cc.
References XrdCl::MsgHandler::GetSid().
Referenced by XrdCl::Stream::OnReadyToWrite().
void XrdCl::InQueue::AssignTimeout | ( | MsgHandler * | handler | ) |
If the specified handler is in the queue but has not yet had an expiry time assigned, query the handler for the expiry and record it. Expiry will also be assigned by GetHandlerForMessage if not already assigned.
handler | handler to check |
Definition at line 192 of file XrdClInQueue.cc.
References XrdCl::Log::Debug(), XrdCl::ExDbgMsg, XrdCl::MsgHandler::GetExpiration(), XrdCl::DefaultEnv::GetLog(), and XrdCl::MsgHandler::GetSid().
Referenced by XrdCl::Stream::OnMessageSent().
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
msg | message header |
expires | handle's expiration timestamp |
action | the action declared by the handler |
Definition at line 66 of file XrdClInQueue.cc.
References XrdCl::Log::Debug(), XrdCl::MsgHandler::Examine(), XrdCl::ExDbgMsg, XrdCl::MsgHandler::GetExpiration(), XrdCl::DefaultEnv::GetLog(), and XrdCl::MsgHandler::RemoveHandler.
Referenced by XrdCl::Stream::InstallIncHandler().
void XrdCl::InQueue::ReAddMessageHandler | ( | MsgHandler * | handler, |
time_t | expires | ||
) |
Re-insert the handler without scanning the cached messages.
Definition at line 118 of file XrdClInQueue.cc.
References XrdCl::MsgHandler::GetSid().
Referenced by XrdCl::Stream::ForceError(), and XrdCl::Stream::OnError().
void XrdCl::InQueue::RemoveMessageHandler | ( | MsgHandler * | handler | ) |
Remove a listener.
Definition at line 129 of file XrdClInQueue.cc.
References XrdCl::Log::Debug(), XrdCl::ExDbgMsg, XrdCl::DefaultEnv::GetLog(), and XrdCl::MsgHandler::GetSid().
Referenced by XrdCl::Stream::ForceError(), XrdCl::Stream::InspectStatusRsp(), and XrdCl::Stream::OnError().
void XrdCl::InQueue::ReportStreamEvent | ( | MsgHandler::StreamEvent | event, |
XRootDStatus | status | ||
) |
Report an event to the handlers.
Definition at line 143 of file XrdClInQueue.cc.
References XrdCl::MsgHandler::RemoveHandler.
Referenced by XrdCl::Stream::ForceError(), and XrdCl::Stream::OnError().
void XrdCl::InQueue::ReportTimeout | ( | time_t | now = 0 | ) |
Timeout handlers.
Definition at line 166 of file XrdClInQueue.cc.
References XrdCl::errOperationExpired, XrdCl::MsgHandler::RemoveHandler, XrdCl::stError, and XrdCl::MsgHandler::Timeout.
Referenced by XrdCl::Stream::Tick().