Changeset 2171 for code/trunk/src/network/Synchronisable.h
- Timestamp:
- Nov 10, 2008, 12:05:03 AM (15 years ago)
- Location:
- code/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
code/trunk
- Property svn:mergeinfo changed
/code/branches/objecthierarchy merged: 2111-2115,2123,2132-2134,2143-2144,2153-2158,2160-2169
- Property svn:mergeinfo changed
-
code/trunk/src/network/Synchronisable.h
r2087 r2171 42 42 43 43 #define REGISTERDATA(varname, ...) \ 44 registerVar ((void*)&varname, sizeof(varname), network::DATA, __VA_ARGS__)44 registerVariable((void*)&varname, sizeof(varname), DATA, __VA_ARGS__) 45 45 #define REGISTERSTRING(stringname, ...) \ 46 registerVar (&stringname, stringname.length()+1, network::STRING, __VA_ARGS__)46 registerVariable(&stringname, stringname.length()+1, STRING, __VA_ARGS__) 47 47 48 namespace network48 namespace orxonox 49 49 { 50 50 static const unsigned int OBJECTID_UNKNOWN = (unsigned int)-1; … … 62 62 namespace syncmode{ 63 63 enum mode{ 64 on e=0,64 once=0, 65 65 always=1 66 66 }; … … 81 81 82 82 struct _NetworkExport synchronisableVariable{ 83 unsigned int size;84 int mode; // this determines in which direction the variable gets synchronised83 size_t size; 84 uint8_t mode; // this determines in which direction the variable gets synchronised 85 85 void *var; 86 86 variableType type; … … 95 95 * @author Oliver Scheuss 96 96 */ 97 class _NetworkExport Synchronisable : virtual public orxonox::OrxonoxClass{97 class _NetworkExport Synchronisable : virtual public OrxonoxClass{ 98 98 public: 99 99 friend class packet::Gamestate; 100 friend class GamestateClient; 101 friend class Server; 100 // friend class Server; 102 101 virtual ~Synchronisable(); 103 102 … … 106 105 static void setClient(bool b); 107 106 108 static Synchronisable *fabricate(uint8_t*& mem, int mode=0x0);107 static Synchronisable *fabricate(uint8_t*& mem, uint8_t mode=0x0); 109 108 static bool deleteObject(unsigned int objectID); 110 109 static Synchronisable *getSynchronisable(unsigned int objectID); … … 115 114 inline unsigned int getClassID(){return classID;} 116 115 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); 120 120 void setObjectFrequency(unsigned int freq){ objectFrequency_ = freq; } 121 121 122 122 123 123 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); 127 127 bool isMyData(uint8_t* mem); 128 128 bool doSelection(unsigned int id); 129 bool doSync(unsigned int id );129 bool doSync(unsigned int id, uint8_t mode=0x0); 130 130 131 131 unsigned int objectID; … … 134 134 135 135 std::list<synchronisableVariable *> *syncList; 136 static int state_; // detemines wheter we are server (default) or client136 static uint8_t state_; // detemines wheter we are server (default) or client 137 137 bool backsync_; // if true the variables with mode > 1 will be synchronised to server (client -> server) 138 138 unsigned int objectFrequency_;
Note: See TracChangeset
for help on using the changeset viewer.