xrootd
Classes | Public Member Functions | Private Types | Private Attributes
XrdCl::OutQueue Class Reference

A synchronized queue for the outgoing data. More...

#include <XrdClOutQueue.hh>

List of all members.

Classes

struct  MsgHelper

Public Member Functions

void PushBack (Message *msg, OutgoingMsgHandler *handler, time_t expires, bool stateful)
void PushFront (Message *msg, OutgoingMsgHandler *handler, time_t expires, bool stateful)
Message * PopMessage (OutgoingMsgHandler *&handler, time_t &expires, bool &stateful)
 Get a message from the front of the queue.
void PopFront ()
 Remove a message from the front.
void Report (Status status)
 Report status to all the handlers.
bool IsEmpty () const
 Check if the queue is empty.
uint64_t GetSize () const
uint64_t GetSizeStateless () const
 Return the size of the queue counting only the stateless messages.
void GrabExpired (OutQueue &queue, time_t exp=0)
void GrabStateful (OutQueue &queue)
void GrabItems (OutQueue &queue)

Private Types

typedef std::list< MsgHelper > MessageList

Private Attributes

MessageList pMessages

Detailed Description

A synchronized queue for the outgoing data.


Member Typedef Documentation

typedef std::list<MsgHelper> XrdCl::OutQueue::MessageList
private

Member Function Documentation

uint64_t XrdCl::OutQueue::GetSize ( ) const
inline

References pMessages.

uint64_t XrdCl::OutQueue::GetSizeStateless ( ) const

Return the size of the queue counting only the stateless messages.

References pMessages.

void XrdCl::OutQueue::GrabExpired ( OutQueue &  queue,
time_t  exp = 0 
)

Remove all the expired messages from the queue and put them in this one

Parameters:
queuequeue to take the message from
expexpiration timestamp

References pMessages.

Referenced by XrdCl::Stream::Tick().

void XrdCl::OutQueue::GrabItems ( OutQueue &  queue)

Take all the items from the queue and put them in this one

Parameters:
queuequeue to take the message

References pMessages.

Referenced by XrdCl::Stream::OnFatalError().

void XrdCl::OutQueue::GrabStateful ( OutQueue &  queue)

Remove all the stateful messages from the queue and put them in this one

Parameters:
queuethe queue to take the messages from

References pMessages.

Referenced by XrdCl::Stream::OnError().

bool XrdCl::OutQueue::IsEmpty ( ) const
inline

Check if the queue is empty.

References pMessages.

void XrdCl::OutQueue::PopFront ( )

Remove a message from the front.

References pMessages.

Message * XrdCl::OutQueue::PopMessage ( OutgoingMsgHandler *&  handler,
time_t &  expires,
bool &  stateful 
)

Get a message from the front of the queue.

Pop a message from the front of the queue

Returns:
0 if there is no message message

References XrdCl::OutQueue::MsgHelper::expires, XrdCl::OutQueue::MsgHelper::handler, XrdCl::OutQueue::MsgHelper::msg, pMessages, and XrdCl::OutQueue::MsgHelper::stateful.

void XrdCl::OutQueue::PushBack ( Message *  msg,
OutgoingMsgHandler *  handler,
time_t  expires,
bool  stateful 
)

Add a message to the back the queue

Parameters:
msgmessage to be sent
handlerhandler to be notified about the status of the operation
expirestimeout
statefulif true a disconnection will cause an error and removing from the queue, otherwise sending wil be re-attempted

References pMessages.

void XrdCl::OutQueue::PushFront ( Message *  msg,
OutgoingMsgHandler *  handler,
time_t  expires,
bool  stateful 
)

Add a message to the front the queue

Parameters:
msgmessage to be sent
handlerhandler to be notified about the status of the operation
expirestimeout
statefulif true a disconnection will cause an error and removing from the queue, otherwise sending wil be re-attempted

References pMessages.

void XrdCl::OutQueue::Report ( Status  status)

Report status to all the handlers.

References pMessages.

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


Member Data Documentation

MessageList XrdCl::OutQueue::pMessages
private

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