Sirikata
|
This class acts like a thread safe queue but it conservatively tracks a particular resource size of the list to avoid wasting too much memory Is an adapter on any type of thread safe queue including Lock Free queues. More...
#include <SizedThreadSafeQueue.hpp>
Public Member Functions | |
SizedThreadSafeQueue (const ResourceMonitor &rm) | |
const ResourceMonitor & | getResourceMonitor () const |
void | popAll (std::deque< T > *popResults) |
bool | push (const T &value, bool force) |
bool | pop (T &value) |
void | blockingPop (T &value) |
template<class U > | |
bool | probablyCanPush (const U &specifier) |
bool | probablyEmpty () |
Private Attributes | |
ResourceMonitor | mResourceMonitor |
This class acts like a thread safe queue but it conservatively tracks a particular resource size of the list to avoid wasting too much memory Is an adapter on any type of thread safe queue including Lock Free queues.
Sirikata::SizedThreadSafeQueue< T, ResourceMonitor, Superclass >::SizedThreadSafeQueue | ( | const ResourceMonitor & | rm | ) | [inline] |
void Sirikata::SizedThreadSafeQueue< T, ResourceMonitor, Superclass >::blockingPop | ( | T & | value | ) | [inline] |
const ResourceMonitor& Sirikata::SizedThreadSafeQueue< T, ResourceMonitor, Superclass >::getResourceMonitor | ( | ) | const [inline] |
bool Sirikata::SizedThreadSafeQueue< T, ResourceMonitor, Superclass >::pop | ( | T & | value | ) | [inline] |
void Sirikata::SizedThreadSafeQueue< T, ResourceMonitor, Superclass >::popAll | ( | std::deque< T > * | popResults | ) | [inline] |
Referenced by Sirikata::Network::MultiplexedSocket::CommitCallbacks(), Sirikata::Network::ASIOSocketWrapper::finishAsyncSend(), Sirikata::SizedThreadSafeQueue< Chunk *, CountResourceMonitor >::popAll(), Sirikata::Network::ASIOSocketWrapper::retryQueuedSend(), and Sirikata::Network::MultiplexedSocket::~MultiplexedSocket().
bool Sirikata::SizedThreadSafeQueue< T, ResourceMonitor, Superclass >::probablyCanPush | ( | const U & | specifier | ) | [inline] |
bool Sirikata::SizedThreadSafeQueue< T, ResourceMonitor, Superclass >::probablyEmpty | ( | ) | [inline] |
Referenced by Sirikata::RegionODPFlowScheduler::empty(), Sirikata::CSFQODPFlowScheduler::empty(), Sirikata::Server::handleObjectHostMessageRouting(), Sirikata::Network::ASIOSocketWrapper::ioReactorThreadPauseStream(), Sirikata::Server::onObjectHostMessageReceived(), Sirikata::SizedThreadSafeQueue< Chunk *, CountResourceMonitor >::probablyEmpty(), Sirikata::Forwarder::processReceivedServerMessages(), and Sirikata::Forwarder::serverMessageReceived().
bool Sirikata::SizedThreadSafeQueue< T, ResourceMonitor, Superclass >::push | ( | const T & | value, |
bool | force | ||
) | [inline] |
Referenced by Sirikata::Server::onObjectHostMessageReceived(), Sirikata::RegionODPFlowScheduler::push(), Sirikata::CSFQODPFlowScheduler::push(), Sirikata::SizedThreadSafeQueue< Chunk *, CountResourceMonitor >::push(), Sirikata::Network::ASIOSocketWrapper::rawSend(), Sirikata::Network::MultiplexedSocket::sendBytes(), and Sirikata::Forwarder::serverMessageReceived().
ResourceMonitor Sirikata::SizedThreadSafeQueue< T, ResourceMonitor, Superclass >::mResourceMonitor [private] |
Referenced by Sirikata::SizedThreadSafeQueue< Chunk *, CountResourceMonitor >::blockingPop(), Sirikata::SizedThreadSafeQueue< Chunk *, CountResourceMonitor >::getResourceMonitor(), Sirikata::SizedThreadSafeQueue< Chunk *, CountResourceMonitor >::pop(), Sirikata::SizedThreadSafeQueue< Chunk *, CountResourceMonitor >::popAll(), Sirikata::SizedThreadSafeQueue< Chunk *, CountResourceMonitor >::probablyCanPush(), Sirikata::SizedThreadSafeQueue< Chunk *, CountResourceMonitor >::push(), and Sirikata::SizedThreadSafeQueue< Chunk *, CountResourceMonitor >::SizedThreadSafeQueue().