Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Nov 10, 2008, 12:05:03 AM (15 years ago)
Author:
landauf
Message:

merged revisions 2111-2170 from objecthierarchy branch back to trunk.

Location:
code/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • code/trunk

  • code/trunk/src/network/Synchronisable.h

    r2087 r2171  
    4242
    4343#define REGISTERDATA(varname, ...) \
    44     registerVar((void*)&varname, sizeof(varname), network::DATA, __VA_ARGS__)
     44    registerVariable((void*)&varname, sizeof(varname), DATA, __VA_ARGS__)
    4545#define REGISTERSTRING(stringname, ...) \
    46     registerVar(&stringname, stringname.length()+1, network::STRING, __VA_ARGS__)
     46    registerVariable(&stringname, stringname.length()+1, STRING, __VA_ARGS__)
    4747
    48 namespace network
     48namespace orxonox
    4949{
    5050  static const unsigned int OBJECTID_UNKNOWN = (unsigned int)-1;
     
    6262  namespace syncmode{
    6363    enum mode{
    64       one=0,
     64      once=0,
    6565      always=1
    6666    };
     
    8181
    8282  struct _NetworkExport synchronisableVariable{
    83     unsigned int size;
    84     int mode; // this determines in which direction the variable gets synchronised
     83    size_t size;
     84    uint8_t mode; // this determines in which direction the variable gets synchronised
    8585    void *var;
    8686    variableType type;
     
    9595  * @author Oliver Scheuss
    9696  */
    97   class _NetworkExport Synchronisable : virtual public orxonox::OrxonoxClass{
     97  class _NetworkExport Synchronisable : virtual public OrxonoxClass{
    9898  public:
    9999    friend class packet::Gamestate;
    100     friend class GamestateClient;
    101     friend class Server;
     100//     friend class Server;
    102101    virtual ~Synchronisable();
    103102
     
    106105    static void setClient(bool b);
    107106
    108     static Synchronisable *fabricate(uint8_t*& mem, int mode=0x0);
     107    static Synchronisable *fabricate(uint8_t*& mem, uint8_t mode=0x0);
    109108    static bool deleteObject(unsigned int objectID);
    110109    static Synchronisable *getSynchronisable(unsigned int objectID);
     
    115114    inline unsigned int getClassID(){return classID;}
    116115  protected:
    117     Synchronisable(orxonox::BaseObject* creator);
    118     void registerVar(void *var, int size, variableType t, int mode=1, NetworkCallbackBase *cb=0);
    119     void setObjectMode(int mode);
     116    Synchronisable(BaseObject* creator);
     117    void registerVariable(void *var, int size, variableType t, uint8_t mode=0x1, NetworkCallbackBase *cb=0);
     118    void unregisterVariable(void *var);
     119    void setObjectMode(uint8_t mode);
    120120    void setObjectFrequency(unsigned int freq){ objectFrequency_ = freq; }
    121121
    122122
    123123  private:
    124     bool getData(uint8_t*& men, unsigned int id, int mode=0x0);
    125     uint32_t getSize(unsigned int id, int mode=0x0);
    126     bool updateData(uint8_t*& mem, int mode=0x0, bool forceCallback=false);
     124    bool getData(uint8_t*& men, unsigned int id, uint8_t mode=0x0);
     125    uint32_t getSize(unsigned int id, uint8_t mode=0x0);
     126    bool updateData(uint8_t*& mem, uint8_t mode=0x0, bool forceCallback=false);
    127127    bool isMyData(uint8_t* mem);
    128128    bool doSelection(unsigned int id);
    129     bool doSync(unsigned int id);
     129    bool doSync(unsigned int id, uint8_t mode=0x0);
    130130
    131131    unsigned int objectID;
     
    134134
    135135    std::list<synchronisableVariable *> *syncList;
    136     static int state_; // detemines wheter we are server (default) or client
     136    static uint8_t state_; // detemines wheter we are server (default) or client
    137137    bool backsync_; // if true the variables with mode > 1 will be synchronised to server (client -> server)
    138138    unsigned int objectFrequency_;
Note: See TracChangeset for help on using the changeset viewer.