Changeset 1170 for code/branches/network3/src/network/Synchronisable.cc
- Timestamp:
- Apr 24, 2008, 3:06:20 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/network3/src/network/Synchronisable.cc
r1168 r1170 151 151 for(i=syncList->begin(); n<datasize && i!=syncList->end(); ++i){ 152 152 //(std::memcpy(retVal.data+n, (const void*)(&(i->size)), sizeof(int)); 153 memcpy( (void *)(retVal.data+n), (const void *)&((*i)->size), sizeof(int) );154 n+=sizeof(int);155 153 switch((*i)->type){ 156 154 case DATA: … … 159 157 break; 160 158 case STRING: 159 memcpy( (void *)(retVal.data+n), (const void *)&((*i)->size), sizeof(int) ); 160 n+=sizeof(int); 161 161 std::memcpy( retVal.data+n, (const void*)( ( (std::string *) (*i)->var)->c_str()), (*i)->size); 162 162 n+=(*i)->size; … … 182 182 for(i=syncList->begin(); i!=syncList->end(); i++){ 183 183 COUT(5) << "Synchronisable: element size: " << (*i)->size << " type: " << (*i)->type << std::endl; 184 if(*(int *)data==(*i)->size || (*i)->type==STRING){ 185 switch((*i)->type){ 186 case DATA: 187 data+=sizeof(int); 188 memcpy((void*)(*i)->var, data, (*i)->size); 189 data+=(*i)->size; 190 break; 191 case STRING: 192 (*i)->size = *(int *)data; 193 data+=sizeof(int); 194 *((std::string *)((*i)->var)) = std::string((const char*)data); 195 data += (*i)->size; 196 break; 197 } 198 } else 199 return false; //there was some problem with registerVar 184 switch((*i)->type){ 185 case DATA: 186 memcpy((void*)(*i)->var, data, (*i)->size); 187 data+=(*i)->size; 188 break; 189 case STRING: 190 (*i)->size = *(int *)data; 191 data+=sizeof(int); 192 *((std::string *)((*i)->var)) = std::string((const char*)data); 193 data += (*i)->size; 194 break; 195 } 200 196 } 201 197 return true; … … 212 208 switch((*i)->type){ 213 209 case DATA: 214 tsize+=sizeof(int);215 210 tsize+=(*i)->size; 216 211 break;
Note: See TracChangeset
for help on using the changeset viewer.