- Timestamp:
- Jan 18, 2010, 12:05:57 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/network2/src/libraries/network/synchronisable/Synchronisable.h
r6449 r6450 64 64 }; 65 65 } 66 67 typedef uint8_t VariableID; 66 68 67 69 /** … … 77 79 */ 78 80 class _NetworkExport SynchronisableHeader{ 81 friend class SynchronisableHeaderLight; 79 82 private: 80 uint8_t *data_;83 uint8_t* data_; 81 84 public: 82 85 SynchronisableHeader(uint8_t* data) 83 86 { data_ = data; } 84 87 inline static uint32_t getSize() 85 { return 1 6; }86 inline uint 32_t getDataSize() const87 { return (*(uint 32_t*)data_) & 0x7FFFFFFF; } //only use the first 31 bits88 inline void setDataSize(uint 32_t size)89 { *(uint 32_t*)(data_) = (size & 0x7FFFFFFF) | (*(uint32_t*)(data_) & 0x80000000 ); }88 { return 14; } 89 inline uint16_t getDataSize() const 90 { return (*(uint16_t*)data_) & 0x7FFF; } //only use the first 31 bits 91 inline void setDataSize(uint16_t size) 92 { *(uint16_t*)(data_) = (size & 0x7FFFFFFF) | (*(uint16_t*)(data_) & 0x8000 ); } 90 93 inline bool isDiffed() const 91 { return ( (*(uint 32_t*)data_) & 0x80000000 ) == 0x80000000; }94 { return ( (*(uint16_t*)data_) & 0x8000 ) == 0x8000; } 92 95 inline void setDiffed( bool b) 93 { *(uint 32_t*)(data_) = (b << 31) | (*(uint32_t*)(data_) & 0x7FFFFFFF ); }96 { *(uint16_t*)(data_) = (b << 15) | (*(uint16_t*)(data_) & 0x7FFF ); } 94 97 inline uint32_t getObjectID() const 95 { return *(uint32_t*)(data_+ 4); }98 { return *(uint32_t*)(data_+2); } 96 99 inline void setObjectID(uint32_t objectID_) 97 { *(uint32_t*)(data_+ 4) = objectID_; }100 { *(uint32_t*)(data_+2) = objectID_; } 98 101 inline uint32_t getClassID() const 99 { return *(uint32_t*)(data_+ 8); }102 { return *(uint32_t*)(data_+6); } 100 103 inline void setClassID(uint32_t classID_) 101 { *(uint32_t*)(data_+ 8) = classID_; }104 { *(uint32_t*)(data_+6) = classID_; } 102 105 inline uint32_t getCreatorID() const 103 { return *(uint32_t*)(data_+1 2); }106 { return *(uint32_t*)(data_+10); } 104 107 inline void setCreatorID(uint32_t creatorID_) 105 { *(uint32_t*)(data_+1 2) = creatorID_; }108 { *(uint32_t*)(data_+10) = creatorID_; } 106 109 inline void operator=(SynchronisableHeader& h) 107 110 { memcpy(data_, h.data_, getSize()); } … … 119 122 class _NetworkExport SynchronisableHeaderLight{ 120 123 private: 121 uint8_t *data_;124 uint8_t* data_; 122 125 public: 123 SynchronisableHeader (uint8_t* data)126 SynchronisableHeaderLight(uint8_t* data) 124 127 { data_ = data; } 125 128 inline static uint32_t getSize() 126 { return 16; }127 inline uint 32_t getDataSize() const128 { return (*(uint 32_t*)data_) & 0x7FFFFFFF; } //only use the first 31 bits129 inline void setDataSize(uint 32_t size)130 { *(uint 32_t*)(data_) = (size & 0x7FFFFFFF) | (*(uint32_t*)(data_) & 0x80000000 ); }129 { return 6; } 130 inline uint16_t getDataSize() const 131 { return (*(uint16_t*)data_) & 0x7FFF; } //only use the first 31 bits 132 inline void setDataSize(uint16_t size) 133 { *(uint16_t*)(data_) = (size & 0x7FFFFFFF) | (*(uint16_t*)(data_) & 0x8000 ); } 131 134 inline bool isDiffed() const 132 { return ( (*(uint 32_t*)data_) & 0x80000000 ) == 0x80000000; }135 { return ( (*(uint16_t*)data_) & 0x8000 ) == 0x8000; } 133 136 inline void setDiffed( bool b) 134 { *(uint 32_t*)(data_) = (b << 31) | (*(uint32_t*)(data_) & 0x7FFFFFFF ); }137 { *(uint16_t*)(data_) = (b << 15) | (*(uint16_t*)(data_) & 0x7FFF ); } 135 138 inline uint32_t getObjectID() const 136 { return *(uint32_t*)(data_+ 4); }139 { return *(uint32_t*)(data_+2); } 137 140 inline void setObjectID(uint32_t objectID_) 138 { *(uint32_t*)(data_+ 4) = objectID_; }141 { *(uint32_t*)(data_+2) = objectID_; } 139 142 inline void operator=(SynchronisableHeader& h) 140 143 { memcpy(data_, h.data_, getSize()); } … … 153 156 static void setClient(bool b); 154 157 155 static Synchronisable *fabricate(uint8_t*& mem, bool diffed,uint8_t mode=0x0);158 static Synchronisable *fabricate(uint8_t*& mem, uint8_t mode=0x0); 156 159 static bool deleteObject(uint32_t objectID_); 157 160 static Synchronisable *getSynchronisable(uint32_t objectID_); … … 168 171 169 172 inline uint32_t getNrOfVariables(){ return this->syncList_.size(); } 170 inline uint32_t getVarSize( uint32_tID )173 inline uint32_t getVarSize( VariableID ID ) 171 174 { return this->syncList_[ID]->getSize(state_); } 172 175
Note: See TracChangeset
for help on using the changeset viewer.