Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
May 1, 2009, 9:47:34 AM (16 years ago)
Author:
scheusso
Message:

this is another commit for testing purpose
still trying to get network function calls to work (first success)

Location:
code/branches/netp2/src/network/packet
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • code/branches/netp2/src/network/packet/FunctionCalls.cc

    r2938 r2944  
    7272  {
    7373    uint32_t functionID = *(uint32_t*)temp;
    74     bool isStatic = NetworkFunctionBase::isStatic( functionID );
     74    bool isStatic = *(uint8_t*)(temp+sizeof(uint32_t));
    7575    if( isStatic )
    7676    {
    7777      MultiType mt1, mt2, mt3, mt4, mt5;
    7878      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);
    8181      switch(nrOfArguments)
    8282      {
     
    122122      MultiType mt1, mt2, mt3, mt4, mt5;
    123123      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);
    127127      switch(nrOfArguments)
    128128      {
     
    166166    }
    167167  }
     168  delete this;
    168169  return true;
    169170}
     
    173174 
    174175  // 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 nrOfArguments
     176  uint32_t callsize = 2*sizeof(uint32_t)+sizeof(uint8_t); //size for network-function-id and nrOfArguments and for bool isStatic
    176177  uint32_t nrOfArguments = 0;
    177178  if(mt1)
     
    211212  }
    212213 
    213   // now serialise the mt values and copy the function id
     214  // now serialise the mt values and copy the function id and isStatic
    214215  uint8_t* temp = data_+currentSize_;
    215216  *(uint32_t*)(data_+sizeof(uint32_t)) = *(uint32_t*)(data_+sizeof(uint32_t))+1; // increase number of calls
    216217  *(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);
    219221  if(mt1)
    220222  {
     
    237239    }
    238240  }
    239   currentSize_ += callsize;
     241  //currentSize_ += callsize;
     242  currentSize_ = temp-data_;
    240243 
    241244}
     
    245248 
    246249  // 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 objectID
     250  uint32_t callsize = 3*sizeof(uint32_t)+sizeof(uint8_t); //size for network-function-id and nrOfArguments and the objectID
    248251  uint32_t nrOfArguments = 0;
    249252  if(mt1)
     
    287290  *(uint32_t*)(data_+sizeof(uint32_t)) = *(uint32_t*)(data_+sizeof(uint32_t))+1; // increase number of calls
    288291  *(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);
    292296  if(mt1)
    293297  {
  • code/branches/netp2/src/network/packet/Packet.cc

    r2937 r2944  
    3939
    4040#include "Acknowledgement.h"
     41#include "DeleteObjects.h"
    4142#include "Chat.h"
    4243#include "ClassID.h"
     44#include "FunctionCalls.h"
     45#include "FunctionIDs.h"
    4346#include "Gamestate.h"
    4447#include "Welcome.h"
    45 #include "DeleteObjects.h"
    4648#include "network/Host.h"
    4749#include "core/CoreIncludes.h"
     
    172174  unsigned int clientID = ClientInformation::findClient(&peer->address)->getID();
    173175  Packet *p = 0;
    174   COUT(5) << "packet type: " << *(ENUM::Type *)&data[_PACKETID] << std::endl;
     176  COUT(6) << "packet type: " << *(ENUM::Type *)&data[_PACKETID] << std::endl;
    175177  switch( *(ENUM::Type *)(data + _PACKETID) )
    176178  {
    177179    case ENUM::Acknowledgement:
    178       COUT(4) << "ack" << std::endl;
     180      COUT(5) << "ack" << std::endl;
    179181      p = new Acknowledgement( data, clientID );
    180182      break;
    181183    case ENUM::Chat:
    182       COUT(4) << "chat" << std::endl;
     184      COUT(5) << "chat" << std::endl;
    183185      p = new Chat( data, clientID );
    184186      break;
    185187    case ENUM::ClassID:
    186       COUT(4) << "classid" << std::endl;
     188      COUT(5) << "classid" << std::endl;
    187189      p = new ClassID( data, clientID );
    188190      break;
    189191    case ENUM::Gamestate:
    190       COUT(4) << "gamestate" << std::endl;
     192      COUT(5) << "gamestate" << std::endl;
    191193      // TODO: remove brackets
    192194      p = new Gamestate( data, clientID );
    193195      break;
    194196    case ENUM::Welcome:
    195       COUT(4) << "welcome" << std::endl;
     197      COUT(5) << "welcome" << std::endl;
    196198      p = new Welcome( data, clientID );
    197199      break;
    198200    case ENUM::DeleteObjects:
    199       COUT(4) << "deleteobjects" << std::endl;
     201      COUT(5) << "deleteobjects" << std::endl;
    200202      p = new DeleteObjects( data, clientID );
     203      break;
     204    case ENUM::FunctionCalls:
     205      COUT(5) << "functionCalls" << std::endl;
     206      p = new FunctionCalls( data, clientID );
     207      break;
     208    case ENUM::FunctionIDs:
     209      COUT(5) << "functionIDs" << std::endl;
     210      p = new FunctionIDs( data, clientID );
    201211      break;
    202212    default:
Note: See TracChangeset for help on using the changeset viewer.