Sirikata
Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
Sirikata::ServerMessageQueue Class Reference

#include <ServerMessageQueue.hpp>

Inheritance diagram for Sirikata::ServerMessageQueue:
Collaboration diagram for Sirikata::ServerMessageQueue:

List of all members.

Classes

class  Sender
 Implement the Sender interface to set a class up to feed messages into the ServerMessageQueue. More...

Public Member Functions

 ServerMessageQueue (SpaceContext *ctx, SpaceNetwork *net, Sender *sender)
virtual ~ServerMessageQueue ()
virtual void messageReady (ServerID sid)=0
 Indicate that a new message is available upstream, destined for the specified server.
double totalUsedWeight ()
double capacity ()
void updateReceiverStats (ServerID sid, double total_weight, double used_weight)
bool isBlocked () const

Protected Types

typedef
std::tr1::unordered_map
< ServerID,
SpaceNetwork::SendStream * > 
SendStreamMap
typedef
std::tr1::unordered_map
< ServerID, double > 
WeightMap

Protected Member Functions

void connect (const ServerID &dest)
virtual void networkReadyToSend (const ServerID &from)=0
 Invoked when, after a call to Network::send() fails, the network determines it can accept more data.
virtual void updatedSegmentation (CoordinateSegmentation *cseg, const std::vector< SegmentationInfo > &new_segmentation)
virtual void handleUpdateReceiverStats (ServerID sid, double total_weight, double used_weight)=0
uint32 trySend (const ServerID &addr, const Message *msg)

Protected Attributes

double mCapacityOverestimate
SpaceContextmContext
Network::IOStrandmSenderStrand
SpaceNetworkmNetwork
TimeProfiler::StagemProfiler
SendermSender
SendStreamMap mSendStreams
WeightMap mUsedWeights
double mUsedWeightSum
SimpleRateEstimator mCapacityEstimator
bool mBlocked

Member Typedef Documentation

typedef std::tr1::unordered_map<ServerID, SpaceNetwork::SendStream*> Sirikata::ServerMessageQueue::SendStreamMap [protected]
typedef std::tr1::unordered_map<ServerID, double> Sirikata::ServerMessageQueue::WeightMap [protected]

Constructor & Destructor Documentation

Sirikata::ServerMessageQueue::ServerMessageQueue ( SpaceContext ctx,
SpaceNetwork net,
Sender sender 
)
Sirikata::ServerMessageQueue::~ServerMessageQueue ( ) [virtual]

References mProfiler, and mSenderStrand.


Member Function Documentation

double Sirikata::ServerMessageQueue::capacity ( )
void Sirikata::ServerMessageQueue::connect ( const ServerID &  dest) [protected]
virtual void Sirikata::ServerMessageQueue::handleUpdateReceiverStats ( ServerID  sid,
double  total_weight,
double  used_weight 
) [protected, pure virtual]
bool Sirikata::ServerMessageQueue::isBlocked ( ) const [inline]
virtual void Sirikata::ServerMessageQueue::messageReady ( ServerID  sid) [pure virtual]

Indicate that a new message is available upstream, destined for the specified server.

Implemented in Sirikata::FairServerMessageQueue.

Referenced by Sirikata::Forwarder::forwarderServiceMessageReady().

virtual void Sirikata::ServerMessageQueue::networkReadyToSend ( const ServerID &  from) [protected, pure virtual]

Invoked when, after a call to Network::send() fails, the network determines it can accept more data.

Implements Sirikata::SpaceNetwork::SendListener.

Implemented in Sirikata::FairServerMessageQueue.

double Sirikata::ServerMessageQueue::totalUsedWeight ( )
uint32 Sirikata::ServerMessageQueue::trySend ( const ServerID &  addr,
const Message msg 
) [protected]
void Sirikata::ServerMessageQueue::updatedSegmentation ( CoordinateSegmentation cseg,
const std::vector< SegmentationInfo > &  new_segmentation 
) [protected, virtual]
void Sirikata::ServerMessageQueue::updateReceiverStats ( ServerID  sid,
double  total_weight,
double  used_weight 
)

Member Data Documentation

Referenced by ServerMessageQueue().

Referenced by connect(), and ServerMessageQueue().

Referenced by connect(), and trySend().

Referenced by updateReceiverStats().


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