[Orxonox-commit 131] r2823 - branches/netp/src/network/synchronisable
rgrieder at orxonox.net
rgrieder at orxonox.net
Mon Mar 23 11:12:14 CET 2009
Author: rgrieder
Date: 2009-03-23 10:12:14 +0000 (Mon, 23 Mar 2009)
New Revision: 2823
Modified:
branches/netp/src/network/synchronisable/Synchronisable.cc
branches/netp/src/network/synchronisable/Synchronisable.h
Log:
Further optimisations by using std::vector instead of std::list for the sync lists.
Modified: branches/netp/src/network/synchronisable/Synchronisable.cc
===================================================================
--- branches/netp/src/network/synchronisable/Synchronisable.cc 2009-03-23 09:28:25 UTC (rev 2822)
+++ branches/netp/src/network/synchronisable/Synchronisable.cc 2009-03-23 10:12:14 UTC (rev 2823)
@@ -97,7 +97,7 @@
Synchronisable::~Synchronisable(){
// delete callback function objects
if(!Identifier::isCreatingHierarchy()){
- for(std::list<SynchronisableVariableBase*>::iterator it = syncList.begin(); it!=syncList.end(); it++)
+ for(std::vector<SynchronisableVariableBase*>::iterator it = syncList.begin(); it!=syncList.end(); it++)
delete (*it);
if (this->objectMode_ != 0x0 && (Host::running() && Host::isServer()))
deletedObjects_.push(objectID);
@@ -251,7 +251,7 @@
this->classID = this->getIdentifier()->getNetworkID();
assert(this->classID==this->getIdentifier()->getNetworkID());
- std::list<SynchronisableVariableBase*>::iterator i;
+ std::vector<SynchronisableVariableBase*>::iterator i;
// start copy header
SynchronisableHeader header(mem);
@@ -291,7 +291,7 @@
bool Synchronisable::updateData(uint8_t*& mem, uint8_t mode, bool forceCallback){
if(mode==0x0)
mode=state_;
- std::list<SynchronisableVariableBase *>::iterator i;
+ std::vector<SynchronisableVariableBase *>::iterator i;
if(syncList.empty()){
assert(0);
COUT(4) << "Synchronisable::updateData syncList is empty" << std::endl;
@@ -336,7 +336,7 @@
return 0;
assert( mode==state_ );
tsize += this->dataSize_;
- std::list<SynchronisableVariableBase*>::iterator i;
+ std::vector<SynchronisableVariableBase*>::iterator i;
for(i=stringList.begin(); i!=stringList.end(); ++i){
tsize += (*i)->getSize( mode );
}
Modified: branches/netp/src/network/synchronisable/Synchronisable.h
===================================================================
--- branches/netp/src/network/synchronisable/Synchronisable.h 2009-03-23 09:28:25 UTC (rev 2822)
+++ branches/netp/src/network/synchronisable/Synchronisable.h 2009-03-23 10:12:14 UTC (rev 2823)
@@ -32,6 +32,7 @@
#include "network/NetworkPrereqs.h"
#include <list>
+#include <vector>
#include <map>
#include <queue>
#include <cassert>
@@ -155,8 +156,8 @@
uint32_t creatorID;
uint32_t classID;
- std::list<SynchronisableVariableBase*> syncList;
- std::list<SynchronisableVariableBase*> stringList;
+ std::vector<SynchronisableVariableBase*> syncList;
+ std::vector<SynchronisableVariableBase*> stringList;
uint32_t dataSize_; //size of all variables except strings
static uint8_t state_; // detemines wheter we are server (default) or client
bool backsync_; // if true the variables with mode > 1 will be synchronised to server (client -> server)
@@ -195,7 +196,7 @@
// template <class T> void Synchronisable::unregisterVariable(T& var){
-// std::list<SynchronisableVariableBase*>::iterator it = syncList.begin();
+// std::vector<SynchronisableVariableBase*>::iterator it = syncList.begin();
// while(it!=syncList.end()){
// if( ((*it)->getReference()) == &var ){
// delete (*it);
More information about the Orxonox-commit
mailing list