Sirikata
|
RegionODPFlowScheduler doesn't collect any real statistics about ODP flows. More...
#include <RegionODPFlowScheduler.hpp>
Public Member Functions | |
RegionODPFlowScheduler (SpaceContext *ctx, ForwarderServiceQueue *parent, ServerID sid, uint32 serv_id, uint32 max_size) | |
virtual | ~RegionODPFlowScheduler () |
virtual const Type & | front () const |
virtual Type & | front () |
virtual Type | pop () |
virtual bool | empty () const |
virtual uint32 | size () const |
virtual bool | push (Sirikata::Protocol::Object::ObjectMessage *msg, const OSegEntry &, const OSegEntry &) |
virtual float | totalActiveWeight () |
virtual float | totalSenderUsedWeight () |
virtual float | totalReceiverUsedWeight () |
Private Attributes | |
Message * | mQueueBuffer |
Sirikata::SizedThreadSafeQueue < Message * > | mQueue |
Sirikata::AtomicValue< bool > | mNeedsNotification |
RegionODPFlowScheduler doesn't collect any real statistics about ODP flows.
Instead, it uses a simple FIFO queue for packets and just reports region-to-region weights.
Sirikata::RegionODPFlowScheduler::RegionODPFlowScheduler | ( | SpaceContext * | ctx, |
ForwarderServiceQueue * | parent, | ||
ServerID | sid, | ||
uint32 | serv_id, | ||
uint32 | max_size | ||
) |
Sirikata::RegionODPFlowScheduler::~RegionODPFlowScheduler | ( | ) | [virtual] |
bool Sirikata::RegionODPFlowScheduler::empty | ( | ) | const [virtual] |
const RegionODPFlowScheduler::Type & Sirikata::RegionODPFlowScheduler::front | ( | ) | const [virtual] |
Implements Sirikata::ODPFlowScheduler.
References mNeedsNotification, mQueue, mQueueBuffer, and Sirikata::SizedThreadSafeQueue< T, ResourceMonitor, Superclass >::pop().
Referenced by pop().
RegionODPFlowScheduler::Type & Sirikata::RegionODPFlowScheduler::front | ( | ) | [virtual] |
Implements Sirikata::ODPFlowScheduler.
References mNeedsNotification, mQueue, mQueueBuffer, and Sirikata::SizedThreadSafeQueue< T, ResourceMonitor, Superclass >::pop().
RegionODPFlowScheduler::Type Sirikata::RegionODPFlowScheduler::pop | ( | ) | [virtual] |
Implements Sirikata::ODPFlowScheduler.
References front(), and mQueueBuffer.
virtual uint32 Sirikata::RegionODPFlowScheduler::size | ( | ) | const [inline, virtual] |
float Sirikata::RegionODPFlowScheduler::totalActiveWeight | ( | ) | [virtual] |
Implements Sirikata::ODPFlowScheduler.
References Sirikata::SpaceContext::cseg(), Sirikata::SpaceContext::id(), Sirikata::ODPFlowScheduler::mContext, Sirikata::ODPFlowScheduler::mDestServer, Sirikata::ODPFlowScheduler::mWeightCalculator, Sirikata::CoordinateSegmentation::serverRegion(), and Sirikata::RegionWeightCalculator::weight().
float Sirikata::RegionODPFlowScheduler::totalReceiverUsedWeight | ( | ) | [virtual] |
Implements Sirikata::ODPFlowScheduler.
References Sirikata::SpaceContext::cseg(), Sirikata::SpaceContext::id(), Sirikata::ODPFlowScheduler::mContext, Sirikata::ODPFlowScheduler::mDestServer, Sirikata::ODPFlowScheduler::mWeightCalculator, Sirikata::CoordinateSegmentation::serverRegion(), and Sirikata::RegionWeightCalculator::weight().
float Sirikata::RegionODPFlowScheduler::totalSenderUsedWeight | ( | ) | [virtual] |
Implements Sirikata::ODPFlowScheduler.
References Sirikata::SpaceContext::cseg(), Sirikata::SpaceContext::id(), Sirikata::ODPFlowScheduler::mContext, Sirikata::ODPFlowScheduler::mDestServer, Sirikata::ODPFlowScheduler::mWeightCalculator, Sirikata::CoordinateSegmentation::serverRegion(), and Sirikata::RegionWeightCalculator::weight().
Sirikata::AtomicValue<bool> Sirikata::RegionODPFlowScheduler::mNeedsNotification [mutable, private] |
Sirikata::SizedThreadSafeQueue<Message*> Sirikata::RegionODPFlowScheduler::mQueue [mutable, private] |
Message* Sirikata::RegionODPFlowScheduler::mQueueBuffer [mutable, private] |