Changeset 2944 for code/branches/netp2/src/network/packet/FunctionCalls.cc
- Timestamp:
- May 1, 2009, 9:47:34 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/netp2/src/network/packet/FunctionCalls.cc
r2938 r2944 72 72 { 73 73 uint32_t functionID = *(uint32_t*)temp; 74 bool isStatic = NetworkFunctionBase::isStatic( functionID);74 bool isStatic = *(uint8_t*)(temp+sizeof(uint32_t)); 75 75 if( isStatic ) 76 76 { 77 77 MultiType mt1, mt2, mt3, mt4, mt5; 78 78 NetworkFunctionStatic *fct = NetworkFunctionStatic::getFunction( functionID ); 79 uint32_t nrOfArguments = *(uint32_t*)(temp+sizeof(uint32_t) );80 temp+=2*sizeof(uint32_t) ;79 uint32_t nrOfArguments = *(uint32_t*)(temp+sizeof(uint32_t)+sizeof(uint8_t)); 80 temp+=2*sizeof(uint32_t)+sizeof(uint8_t); 81 81 switch(nrOfArguments) 82 82 { … … 122 122 MultiType mt1, mt2, mt3, mt4, mt5; 123 123 NetworkMemberFunctionBase *fct = NetworkMemberFunctionBase::getFunction( functionID ); 124 uint32_t nrOfArguments = *(uint32_t*)(temp+sizeof(uint32_t) );125 uint32_t objectID = *(uint32_t*)(temp+2*sizeof(uint32_t) );126 temp+=3*sizeof(uint32_t) ;124 uint32_t nrOfArguments = *(uint32_t*)(temp+sizeof(uint32_t)+sizeof(uint8_t)); 125 uint32_t objectID = *(uint32_t*)(temp+2*sizeof(uint32_t)+sizeof(uint8_t)); 126 temp+=3*sizeof(uint32_t)+sizeof(uint8_t); 127 127 switch(nrOfArguments) 128 128 { … … 166 166 } 167 167 } 168 delete this; 168 169 return true; 169 170 } … … 173 174 174 175 // first determine the size that has to be reserved for this call 175 uint32_t callsize = 2*sizeof(uint32_t) ; //size for network-function-id and nrOfArguments176 uint32_t callsize = 2*sizeof(uint32_t)+sizeof(uint8_t); //size for network-function-id and nrOfArguments and for bool isStatic 176 177 uint32_t nrOfArguments = 0; 177 178 if(mt1) … … 211 212 } 212 213 213 // now serialise the mt values and copy the function id 214 // now serialise the mt values and copy the function id and isStatic 214 215 uint8_t* temp = data_+currentSize_; 215 216 *(uint32_t*)(data_+sizeof(uint32_t)) = *(uint32_t*)(data_+sizeof(uint32_t))+1; // increase number of calls 216 217 *(uint32_t*)temp = networkID; 217 *(uint32_t*)(temp+sizeof(uint32_t)) = nrOfArguments; 218 temp += 2*sizeof(uint32_t); 218 *(uint8_t*)(temp+sizeof(uint32_t)) = true; 219 *(uint32_t*)(temp+sizeof(uint32_t)+sizeof(uint8_t)) = nrOfArguments; 220 temp += 2*sizeof(uint32_t)+sizeof(uint8_t); 219 221 if(mt1) 220 222 { … … 237 239 } 238 240 } 239 currentSize_ += callsize; 241 //currentSize_ += callsize; 242 currentSize_ = temp-data_; 240 243 241 244 } … … 245 248 246 249 // first determine the size that has to be reserved for this call 247 uint32_t callsize = 3*sizeof(uint32_t) ; //size for network-function-id and nrOfArguments and the objectID250 uint32_t callsize = 3*sizeof(uint32_t)+sizeof(uint8_t); //size for network-function-id and nrOfArguments and the objectID 248 251 uint32_t nrOfArguments = 0; 249 252 if(mt1) … … 287 290 *(uint32_t*)(data_+sizeof(uint32_t)) = *(uint32_t*)(data_+sizeof(uint32_t))+1; // increase number of calls 288 291 *(uint32_t*)temp = networkID; 289 *(uint32_t*)(temp+sizeof(uint32_t)) = nrOfArguments; 290 *(uint32_t*)(temp+2*sizeof(uint32_t)) = objectID; 291 temp += 3*sizeof(uint32_t); 292 *(uint8_t*)(temp+sizeof(uint32_t)) = false; 293 *(uint32_t*)(temp+sizeof(uint32_t)+sizeof(uint8_t)) = nrOfArguments; 294 *(uint32_t*)(temp+2*sizeof(uint32_t)+sizeof(uint8_t)) = objectID; 295 temp += 3*sizeof(uint32_t)+sizeof(uint8_t); 292 296 if(mt1) 293 297 {
Note: See TracChangeset
for help on using the changeset viewer.