orxonox::TrafficControl Class Reference

#include <src/network/TrafficControl.h>

Inheritance diagram for orxonox::TrafficControl:

orxonox::ClientConnectionListener orxonox::OrxonoxClass

List of all members.

Public Member Functions

bool dataSort (obj i, obj j)
void deleteObject (unsigned int objectID)
void fixCreatorDependencies (std::list< obj >::iterator it, std::list< obj > &list, unsigned int clientID)
void printList (std::list< obj > &list, unsigned int clientID)
bool prioritySort (uint32_t clientID, obj i, obj j)
void processObjectList (unsigned int clientID, unsigned int gamestateID, std::list< obj > &list)
void setConfigValues ()
 TrafficControl ()
 Constructor: assures that only one reference will be created and sets the pointer.
virtual ~TrafficControl ()
 Destructor: resets the instance pointer to 0.

Static Public Member Functions

static TrafficControlgetInstance ()
static void processAck (unsigned int clientID, unsigned int gamestateID)

Static Protected Attributes

static TrafficControlinstance_ = 0

Private Member Functions

void ack (unsigned int clientID, unsigned int gamestateID)
virtual void clientConnected (unsigned int clientID)
virtual void clientDisconnected (unsigned int clientID)
void cut (std::list< obj > &list, unsigned int targetsize)
void evaluateList (unsigned int clientID, std::list< obj > &list)
void insertinClientListPerm (unsigned int clientID, obj objinf)
void updateClientListTemp (std::list< obj > &list)

Private Attributes

bool bActive_
std::map< unsigned int,
std::map< unsigned int,
objInfo > > 
clientListPerm_
std::map< unsigned int,
std::map< unsigned int,
std::list< obj > > > 
clientListTemp_
unsigned int currentClientID
unsigned int currentGamestateID
unsigned int targetSize


Constructor & Destructor Documentation

orxonox::TrafficControl::TrafficControl (  ) 

Constructor: assures that only one reference will be created and sets the pointer.

References instance_, RegisterObject, and setConfigValues().

orxonox::TrafficControl::~TrafficControl (  )  [virtual]

Destructor: resets the instance pointer to 0.

References instance_.


Member Function Documentation

void orxonox::TrafficControl::ack ( unsigned int  clientID,
unsigned int  gamestateID 
) [private]

References bActive_, clientListPerm_, and clientListTemp_.

Referenced by processAck().

virtual void orxonox::TrafficControl::clientConnected ( unsigned int  clientID  )  [inline, private, virtual]

void orxonox::TrafficControl::clientDisconnected ( unsigned int  clientID  )  [private, virtual]

void orxonox::TrafficControl::cut ( std::list< obj > &  list,
unsigned int  targetsize 
) [private]

cut takes the current list that has to be returned to the gsmanager and shortens it in criteria of bandwidth of clientID(XY)

References clientListPerm_, currentClientID, and orxonox::SCHED_PRIORITY_OFFSET.

Referenced by evaluateList().

bool orxonox::TrafficControl::dataSort ( obj  i,
obj  j 
)

sort-algorithm for sorting the objectList after position in original data stream

References orxonox::obj::objDataOffset.

Referenced by evaluateList().

void orxonox::TrafficControl::deleteObject ( unsigned int  objectID  ) 

void orxonox::TrafficControl::evaluateList ( unsigned int  clientID,
std::list< obj > &  list 
) [private]

evaluates Data given (list) and produces result(->Data to be updated)

evaluateList evaluates whether new obj are there, whether there are things to be updatet and manipulates all this.

References bActive_, clientListPerm_, currentGamestateID, cut(), dataSort(), fixCreatorDependencies(), insertinClientListPerm(), prioritySort(), targetSize, and updateClientListTemp().

Referenced by processObjectList().

void orxonox::TrafficControl::fixCreatorDependencies ( std::list< obj >::iterator  it,
std::list< obj > &  list,
unsigned int  clientID 
)

TrafficControl * orxonox::TrafficControl::getInstance (  )  [static]

void orxonox::TrafficControl::insertinClientListPerm ( unsigned int  clientID,
obj  objinf 
) [private]

void orxonox::TrafficControl::printList ( std::list< obj > &  list,
unsigned int  clientID 
)

References clientListPerm_, and COUT.

bool orxonox::TrafficControl::prioritySort ( uint32_t  clientID,
obj  i,
obj  j 
)

sort-algorithm for sorting the objectlist after priorities

References clientListPerm_, and orxonox::obj::objID.

Referenced by evaluateList().

static void orxonox::TrafficControl::processAck ( unsigned int  clientID,
unsigned int  gamestateID 
) [inline, static]

References ack(), and instance_.

Referenced by orxonox::GamestateManager::ack().

void orxonox::TrafficControl::processObjectList ( unsigned int  clientID,
unsigned int  gamestateID,
std::list< obj > &  list 
)

void orxonox::TrafficControl::setConfigValues (  ) 

is being used by GSManager from Server: list contains: ObjIds, CreatorIds, Size (in this order) from Client XY Elements of list are accessed by *list[i] Elements of struct i are therefore: *list[i].objID

Definition of public members

Reimplemented from orxonox::OrxonoxClass.

References bActive_, SetConfigValue, and targetSize.

Referenced by TrafficControl().

void orxonox::TrafficControl::updateClientListTemp ( std::list< obj > &  list  )  [private]

updateClientListTemp takes the shortened list which will be sent to the gsmanager and puts the *info into clientListTemp

References clientListTemp_, currentClientID, and currentGamestateID.

Referenced by evaluateList().


Member Data Documentation

std::map<unsigned int, std::map<unsigned int, objInfo > > orxonox::TrafficControl::clientListPerm_ [private]

permanent client list: contains client ids, object ids and objectInfos (in this order)

Referenced by ack(), clientDisconnected(), cut(), evaluateList(), fixCreatorDependencies(), insertinClientListPerm(), printList(), and prioritySort().

std::map<unsigned int, std::map<unsigned int, std::list<obj> > > orxonox::TrafficControl::clientListTemp_ [private]

temporary client list: contains client ids, gamestate ids and object ids (in this order)

Referenced by ack(), clientDisconnected(), and updateClientListTemp().

updateReferenceList currentGamestateID and currentClientID will be defined as soon as TrafficControl is being called by Server

Referenced by evaluateList(), insertinClientListPerm(), processObjectList(), and updateClientListTemp().

Initializing protected members

Referenced by getInstance(), processAck(), TrafficControl(), and ~TrafficControl().

unsigned int orxonox::TrafficControl::targetSize [private]

Referenced by evaluateList(), and setConfigValues().


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

Generated on Tue Jul 28 16:23:11 2009 for Orxonox by  doxygen 1.5.6