[Orxonox-commit 53] r2758 - in branches/network/src/network: . packet synchronisable
scheusso at orxonox.net
scheusso at orxonox.net
Sun Mar 8 16:40:01 CET 2009
Author: scheusso
Date: 2009-03-08 16:40:01 +0100 (Sun, 08 Mar 2009)
New Revision: 2758
Modified:
branches/network/src/network/ConnectionManager.cc
branches/network/src/network/ConnectionManager.h
branches/network/src/network/packet/ClassID.cc
branches/network/src/network/packet/ClassID.h
branches/network/src/network/packet/Gamestate.cc
branches/network/src/network/packet/Gamestate.h
branches/network/src/network/synchronisable/Synchronisable.cc
branches/network/src/network/synchronisable/Synchronisable.h
Log:
some cleanup (mostly comments)
Modified: branches/network/src/network/ConnectionManager.cc
===================================================================
--- branches/network/src/network/ConnectionManager.cc 2009-03-08 12:25:40 UTC (rev 2757)
+++ branches/network/src/network/ConnectionManager.cc 2009-03-08 15:40:01 UTC (rev 2758)
@@ -45,9 +45,6 @@
#include <boost/thread/thread.hpp>
#include <boost/bind.hpp>
-// #include "core/CoreIncludes.h"
-// #include "core/BaseObject.h"
-// #include "core/Iterator.h"
#include "util/Math.h"
#include "util/Sleep.h"
#include "ClientInformation.h"
@@ -123,14 +120,11 @@
void ConnectionManager::createListener() {
receiverThread_ = new boost::thread(boost::bind(&ConnectionManager::receiverThread, this));
- //network_threads.create_thread(boost::bind(boost::mem_fn(&ConnectionManager::receiverThread), this));
- //boost::thread thr(boost::bind(boost::mem_fn(&ConnectionManager::receiverThread), this));
return;
}
bool ConnectionManager::quitListener() {
quit=true;
- //network_threads.join_all();
receiverThread_->join();
return true;
}
@@ -205,25 +199,11 @@
switch(event->type){
// log handling ================
case ENET_EVENT_TYPE_CONNECT:
- //COUT(3) << "adding event_type_connect to queue" << std::endl;
case ENET_EVENT_TYPE_DISCONNECT:
- //addClient(event);
- //this is a workaround to ensure thread safety
- //COUT(5) << "Con.Man: connection event has occured" << std::endl;
- //break;
case ENET_EVENT_TYPE_RECEIVE:
- //std::cout << "received data" << std::endl;
- //COUT(5) << "Con.Man: receive event has occured" << std::endl;
- // only add, if client has connected yet and not been disconnected
- //if(head_->findClient(&event->peer->address))
processData(event);
event = new ENetEvent;
-// else
-// COUT(3) << "received a packet from a client we don't know" << std::endl;
break;
- //case ENET_EVENT_TYPE_DISCONNECT:
- //clientDisconnect(event->peer);
- //break;
case ENET_EVENT_TYPE_NONE:
//receiverThread_->yield();
msleep(1);
@@ -298,35 +278,6 @@
return ClientInformation::findClient(clientID)->getPeer();
}
- /**
- *
- * @param clientID
- */
-// void ConnectionManager::syncClassid(unsigned int clientID) {
-// unsigned int network_id=0, failures=0;
-// std::string classname;
-// Identifier *id;
-// std::map<std::string, Identifier*>::const_iterator it = Factory::getFactoryMapBegin();
-// while(it != Factory::getFactoryMapEnd()){
-// id = (*it).second;
-// if(id == NULL)
-// continue;
-// classname = id->getName();
-// network_id = id->getNetworkID();
-// if(network_id==0)
-// COUT(3) << "we got a null class id: " << id->getName() << std::endl;
-// COUT(4) << "Con.Man:syncClassid:\tnetwork_id: " << network_id << ", classname: " << classname << std::endl;
-//
-// packet::ClassID *classid = new packet::ClassID( network_id, classname );
-// classid->setClientID(clientID);
-// while(!classid->send() && failures < 10){
-// failures++;
-// }
-// ++it;
-// }
-// //sendPackets();
-// COUT(4) << "syncClassid:\tall synchClassID packets have been sent" << std::endl;
-// }
void ConnectionManager::syncClassid(unsigned int clientID) {
int failures=0;
Modified: branches/network/src/network/ConnectionManager.h
===================================================================
--- branches/network/src/network/ConnectionManager.h 2009-03-08 12:25:40 UTC (rev 2757)
+++ branches/network/src/network/ConnectionManager.h 2009-03-08 15:40:01 UTC (rev 2758)
@@ -75,32 +75,23 @@
public:
static boost::recursive_mutex enet_mutex;
ConnectionManager();
- //ConnectionManager(ClientInformation *head);
ConnectionManager(int port);
ConnectionManager(int port, const char *address);
ConnectionManager(int port, const std::string& address);
~ConnectionManager();
- //ENetPacket *getPacket(ENetAddress &address); // thread1
- //ENetPacket *getPacket(int &clientID);
ENetEvent *getEvent();
bool queueEmpty();
void createListener();
bool quitListener();
-// bool addPacket(Packet::Packet *packet);
static bool addPacket(ENetPacket *packet, ENetPeer *peer);
static bool addPacket(ENetPacket *packet, int ID);
static bool addPacketAll(ENetPacket *packet);
- // bool sendPackets(ENetEvent *event);
bool sendPackets();
- //bool createClient(int clientID);
void disconnectClient(ClientInformation *client);
void syncClassid(unsigned int clientID);
private:
-// bool clientDisconnect(ENetPeer *peer);
-// bool removeClient(int clientID);
bool processData(ENetEvent *event);
- //bool addClient(ENetEvent *event);
void receiverThread();
void disconnectClients();
int getClientID(ENetPeer peer);
Modified: branches/network/src/network/packet/ClassID.cc
===================================================================
--- branches/network/src/network/packet/ClassID.cc 2009-03-08 12:25:40 UTC (rev 2757)
+++ branches/network/src/network/packet/ClassID.cc 2009-03-08 15:40:01 UTC (rev 2758)
@@ -154,9 +154,5 @@
}
-// uint32_t ClassID::getClassID(){
-// return *(uint32_t *)(data_ + _CLASSID);
-// }
-
} //namespace packet
}//namespace orxonox
Modified: branches/network/src/network/packet/ClassID.h
===================================================================
--- branches/network/src/network/packet/ClassID.h 2009-03-08 12:25:40 UTC (rev 2757)
+++ branches/network/src/network/packet/ClassID.h 2009-03-08 15:40:01 UTC (rev 2758)
@@ -51,12 +51,7 @@
uint32_t getSize() const;
bool process();
-// uint32_t getClassID();
-// uint32_t getClassNameLength(){ return classNameLength_; }
-// const char *getClassName(){ return (const char*)(data_+_CLASSNAME); }
private:
-// uint32_t classNameLength_;
-// static bool alreadySetOneClassID_;
};
} //namespace packet
Modified: branches/network/src/network/packet/Gamestate.cc
===================================================================
--- branches/network/src/network/packet/Gamestate.cc 2009-03-08 12:25:40 UTC (rev 2757)
+++ branches/network/src/network/packet/Gamestate.cc 2009-03-08 15:40:01 UTC (rev 2758)
@@ -47,10 +47,6 @@
#define PACKET_FLAG_GAMESTATE ENET_PACKET_FLAG_RELIABLE
-// Gamestate::Gamestate()
-// {
-// flags_ = flags_ | PACKET_FLAG_GAMESTATE;
-// }
Gamestate::Gamestate()
{
@@ -126,10 +122,8 @@
}// stop allocate additional memory
#endif
- //if(it->doSelection(id))
if ( it->doSync( id, mode ) )
dataMap_.push_back( obj(it->getObjectID(), it->getCreatorID(), tempsize, mem-data_) );
-// dataMap_[mem-data_]=(*it); // save the mem location of the synchronisable data
if(!it->getData(mem, id, mode))
return false; // mem pointer gets automatically increased because of call by reference
// increase size counter by size of current synchronisable
@@ -157,8 +151,6 @@
assert(!header_->isCompressed());
assert(!header_->isDiffed());
uint8_t *mem=data_+GamestateHeader::getSize();
- // get the start of the Synchronisable list
- //ObjectList<Synchronisable>::iterator it=ObjectList<Synchronisable>::begin();
Synchronisable *s;
// update the data of the objects we received
@@ -176,15 +168,10 @@
{
mem += objectheader.getDataSize();
}
-// COUT(0) << "could not fabricate synchronisable: " << objectheader->objectID << " classid: " << objectheader->classID << " creator: " << objectheader->creatorID << endl;
-// else
-// COUT(0) << "fabricated: " << objectheader->objectID << " classid: " << objectheader->classID << " creator: " << objectheader->creatorID << endl;
}
else
{
bool b = s->updateData(mem, mode);
-// if(!b)
-// COUT(0) << "data could not be updated" << endl;
assert(b);
}
}
@@ -261,7 +248,6 @@
uint8_t *ndata = new uint8_t[buffer+GamestateHeader::getSize()];
uint8_t *dest = ndata + GamestateHeader::getSize();
- //unsigned char *dest = new unsigned char[buffer];
uint8_t *source = data_ + GamestateHeader::getSize();
int retval;
retval = compress( dest, &buffer, source, (uLong)(header_->getDataSize()) );
@@ -293,7 +279,6 @@
uint32_t datasize = header_->getDataSize();
uint32_t compsize = header_->getCompSize();
uint32_t bufsize;
-// assert(compsize<=datasize);
bufsize = datasize;
assert(bufsize!=0);
uint8_t *ndata = new uint8_t[bufsize + GamestateHeader::getSize()];
@@ -339,7 +324,6 @@
assert(!header_->isCompressed());
assert(!header_->isDiffed());
GamestateHeader diffHeader(base->data_);
- //unsigned char *basep = base->getGs()/*, *gs = getGs()*/;
uint8_t *basep = GAMESTATE_START(base->data_), *gs = GAMESTATE_START(this->data_);
uint32_t of=0; // pointers offset
uint32_t dest_length=0;
@@ -396,10 +380,6 @@
//copy in the zeros
for(it=dataMap_.begin(); it!=dataMap_.end();){
-// if((*it).objSize==0)
-// continue;
-// if(it->second->getSize(HEADER->id)==0) // merged from objecthierarchy2, doesn't work anymore; TODO: change this
-// continue; // merged from objecthierarchy2, doesn't work anymore; TODO: change this
SynchronisableHeader oldobjectheader(origdata);
SynchronisableHeader newobjectheader(newdata);
if ( (*it).objSize == 0 )
@@ -407,8 +387,6 @@
++it;
continue;
}
-// object = Synchronisable::getSynchronisable( (*it).objID );
-// assert(object->objectID == oldobjectheader->objectID);
objectsize = oldobjectheader.getDataSize();
objectOffset=SynchronisableHeader::getSize(); //skip the size and the availableData variables in the objectheader
if ( (*it).objID == oldobjectheader.getObjectID() ){
@@ -446,7 +424,6 @@
assert(this && base);assert(data_);
assert(header_->isDiffed());
assert(!header_->isCompressed() && !base->header_->isCompressed());
- //unsigned char *basep = base->getGs()/*, *gs = getGs()*/;
uint8_t *basep = GAMESTATE_START(base->data_);
uint8_t *gs = GAMESTATE_START(this->data_);
uint32_t of=0; // pointers offset
Modified: branches/network/src/network/packet/Gamestate.h
===================================================================
--- branches/network/src/network/packet/Gamestate.h 2009-03-08 12:25:40 UTC (rev 2757)
+++ branches/network/src/network/packet/Gamestate.h 2009-03-08 15:40:01 UTC (rev 2758)
@@ -92,9 +92,6 @@
{ assert(data_); assert(h.data_); memcpy( data_, h.data_, getSize()); }
private:
uint8_t *data_;
-//#define GAMESTATE_START(data) (data + sizeof(GamestateHeader))
-//#define GAMESTATE_HEADER(data) ((GamestateHeader *)data)
-//#define HEADER GAMESTATE_HEADER(data_)
};
Modified: branches/network/src/network/synchronisable/Synchronisable.cc
===================================================================
--- branches/network/src/network/synchronisable/Synchronisable.cc 2009-03-08 12:25:40 UTC (rev 2757)
+++ branches/network/src/network/synchronisable/Synchronisable.cc 2009-03-08 15:40:01 UTC (rev 2758)
@@ -99,28 +99,12 @@
delete (*it);
if (this->objectMode_ != 0x0 && (Host::running() && Host::isServer()))
deletedObjects_.push(objectID);
-// COUT(3) << "destruct synchronisable +++" << objectID << " | " << classID << std::endl;
-// COUT(3) << " bump ---" << objectID << " | " << &objectMap_ << std::endl;
-// assert(objectMap_[objectID]->objectID==objectID);
-// objectMap_.erase(objectID);
}
std::map<uint32_t, Synchronisable*>::iterator it;
it = objectMap_.find(objectID);
if (it != objectMap_.end())
objectMap_.erase(it);
- //HACK HACK HACK HACK HACK HACK
- // this hack ensures that children of this object also get destroyed
-// ObjectList<Synchronisable>::iterator it2, it3;
-// // get total size of gamestate
-// for(it2 = ObjectList<Synchronisable>::begin(); it2; ++it2)
-// {
-// if ( it2->getCreatorID() == this->objectID && it2->getCreatorID() != OBJECTID_UNKNOWN )
-// {
-// Synchronisable::deleteObject( it2->getObjectID() );
-// }
-// }
- //HACK HACK HACK HACK HACK HACK
}
@@ -204,11 +188,9 @@
* @return true/false
*/
bool Synchronisable::deleteObject(uint32_t objectID){
-// assert(getSynchronisable(objectID));
if(!getSynchronisable(objectID))
return false;
assert(getSynchronisable(objectID)->objectID==objectID);
-// delete objectMap_[objectID];
Synchronisable *s = getSynchronisable(objectID);
if(s)
delete s;
@@ -259,7 +241,6 @@
//if this tick is we dont synchronise, then abort now
if(!doSync(id, mode))
return true;
- //std::cout << "inside getData" << std::endl;
uint32_t tempsize = 0;
if (this->classID==0)
COUT(3) << "classid 0 " << this->getIdentifier()->getName() << std::endl;
@@ -268,7 +249,6 @@
this->classID = this->getIdentifier()->getNetworkID();
assert(this->classID==this->getIdentifier()->getNetworkID());
-// this->classID=this->getIdentifier()->getNetworkID(); // TODO: correct this
std::list<SynchronisableVariableBase*>::iterator i;
uint32_t size;
size=getSize(id, mode);
@@ -306,8 +286,6 @@
if(mode==0x0)
mode=state_;
std::list<SynchronisableVariableBase *>::iterator i;
- //assert(objectMode_!=0x0);
- //assert( (mode ^ objectMode_) != 0);
if(syncList.empty()){
assert(0);
COUT(4) << "Synchronisable::updateData syncList is empty" << std::endl;
Modified: branches/network/src/network/synchronisable/Synchronisable.h
===================================================================
--- branches/network/src/network/synchronisable/Synchronisable.h 2009-03-08 12:25:40 UTC (rev 2757)
+++ branches/network/src/network/synchronisable/Synchronisable.h 2009-03-08 15:40:01 UTC (rev 2758)
@@ -141,7 +141,6 @@
protected:
Synchronisable(BaseObject* creator);
-// void registerVariable(void *var, int size, variableType t, uint8_t mode=0x1, NetworkCallbackBase *cb=0);
template <class T> void registerVariable(T& variable, uint8_t mode=0x1, NetworkCallbackBase *cb=0, bool bidirectional=false);
template <class T> void unregisterVariable(T& var);
void setObjectMode(uint8_t mode);
@@ -204,8 +203,6 @@
template <> _NetworkExport void Synchronisable::registerVariable( mbool& variable, uint8_t mode, NetworkCallbackBase* cb, bool bidirectional);
template <> _NetworkExport void Synchronisable::registerVariable( const Quaternion& variable, uint8_t mode, NetworkCallbackBase* cb, bool bidirectional);
template <> _NetworkExport void Synchronisable::registerVariable( Quaternion& variable, uint8_t mode, NetworkCallbackBase* cb, bool bidirectional);
-// template <> _NetworkExport void Synchronisable::registerVariable( LODParticle::LOD& variable, uint8_t mode, NetworkCallbackBase* cb, bool bidirectional);
-// template <> _NetworkExport void Synchronisable::registerVariable( Ogre::Light::LightTypes& variable, uint8_t mode, NetworkCallbackBase* cb, bool bidirectional);
}
#endif /* _Synchronisable_H__ */
More information about the Orxonox-commit
mailing list