- Timestamp:
- Jan 18, 2010, 12:05:57 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/network2/src/libraries/network/synchronisable/Synchronisable.cc
r6449 r6450 132 132 * @return pointer to the newly created synchronisable 133 133 */ 134 Synchronisable *Synchronisable::fabricate(uint8_t*& mem, bool diffed,uint8_t mode)134 Synchronisable *Synchronisable::fabricate(uint8_t*& mem, uint8_t mode) 135 135 { 136 136 SynchronisableHeader header(mem); 137 assert( !header.isDiffed() ); 137 138 138 139 COUT(4) << "fabricating object with id: " << header.getObjectID() << std::endl; … … 308 309 if(syncList_.empty()){ 309 310 assert(0); 310 COUT( 4) << "Synchronisable::updateData syncList_ is empty" << std::endl;311 COUT(2) << "Synchronisable::updateData syncList_ is empty" << std::endl; 311 312 return false; 312 313 } … … 314 315 uint8_t* data=mem; 315 316 // start extract header 316 SynchronisableHeader syncHeader(mem); 317 assert(syncHeader.getObjectID()==this->objectID_); 318 assert(syncHeader.getCreatorID()==this->creatorID_); 319 assert(syncHeader.getClassID()==this->classID_); 320 321 mem += SynchronisableHeader::getSize(); 322 // stop extract header 317 SynchronisableHeaderLight syncHeaderLight(mem); 318 assert(syncHeaderLight.getObjectID()==this->getObjectID()); 323 319 324 320 //COUT(5) << "Synchronisable: objectID_ " << syncHeader.getObjectID() << ", classID_ " << syncHeader.getClassID() << " size: " << syncHeader.getDataSize() << " synchronising data" << std::endl; 325 if( !syncHeader.isDiffed() ) 326 { 321 if( !syncHeaderLight.isDiffed() ) 322 { 323 SynchronisableHeader syncHeader2(mem); 324 assert( this->getClassID() == syncHeader2.getClassID() ); 325 assert( this->getCreatorID() == syncHeader2.getCreatorID() ); 326 mem += SynchronisableHeader::getSize(); 327 327 std::vector<SynchronisableVariableBase *>::iterator i; 328 328 for(i=syncList_.begin(); i!=syncList_.end(); i++) 329 329 { 330 assert( mem <= data+syncHeader .getDataSize()+SynchronisableHeader::getSize() ); // always make sure we don't exceed the datasize in our stream330 assert( mem <= data+syncHeader2.getDataSize()+SynchronisableHeader::getSize() ); // always make sure we don't exceed the datasize in our stream 331 331 (*i)->putData( mem, mode, forceCallback ); 332 332 } 333 assert(mem == data+syncHeaderLight.getDataSize()+SynchronisableHeader::getSize() ); 333 334 } 334 335 else 335 336 { 336 COUT(0) << "objectID: " << this->objectID_ << endl; 337 while( mem < data+syncHeader.getDataSize()+SynchronisableHeader::getSize() ) 337 mem += SynchronisableHeaderLight::getSize(); 338 // COUT(0) << "objectID: " << this->objectID_ << endl; 339 while( mem < data+syncHeaderLight.getDataSize()+SynchronisableHeaderLight::getSize() ) 338 340 { 339 uint32_t varID = *(uint32_t*)mem; 340 COUT(0) << "varID: " << varID << endl; 341 if( varID == 22 ) 342 COUT(6) << " blub " << endl; 341 VariableID varID = *(VariableID*)mem; 342 // COUT(0) << "varID: " << varID << endl; 343 343 assert( varID < syncList_.size() ); 344 mem += sizeof( uint32_t);344 mem += sizeof(VariableID); 345 345 syncList_[varID]->putData( mem, mode, forceCallback ); 346 346 } 347 }348 assert(mem == data+syncHeader.getDataSize()+SynchronisableHeader::getSize() );347 assert(mem == data+syncHeaderLight.getDataSize()+SynchronisableHeaderLight::getSize() ); 348 } 349 349 return true; 350 350 }
Note: See TracChangeset
for help on using the changeset viewer.