- Timestamp:
- Mar 23, 2009, 5:00:54 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/netp2/src/network/synchronisable/SynchronisableVariable.h
r2710 r2836 56 56 { 57 57 public: 58 virtual voidgetData(uint8_t*& mem, uint8_t mode)=0;58 virtual uint32_t getData(uint8_t*& mem, uint8_t mode)=0; 59 59 virtual void putData(uint8_t*& mem, uint8_t mode, bool forceCallback = false)=0; 60 60 virtual uint32_t getSize(uint8_t mode)=0; … … 74 74 75 75 virtual inline uint8_t getMode(){ return mode_; } 76 virtual inline voidgetData(uint8_t*& mem, uint8_t mode);76 virtual inline uint32_t getData(uint8_t*& mem, uint8_t mode); 77 77 virtual inline void putData(uint8_t*& mem, uint8_t mode, bool forceCallback = false); 78 78 virtual inline uint32_t getSize(uint8_t mode); 79 79 virtual inline void* getReference(){ return (void *)&this->variable_; } 80 80 protected: 81 bool checkEquality(uint8_t* mem);82 void setAndIncrease(uint8_t*& mem);83 void getAndIncrease(uint8_t*& mem);84 uint32_t returnSize();81 inline bool checkEquality(uint8_t* mem); 82 inline void setAndIncrease(uint8_t*& mem); 83 inline void getAndIncrease(uint8_t*& mem); 84 inline uint32_t returnSize(); 85 85 86 86 T& variable_; … … 97 97 98 98 virtual inline uint8_t getMode(){ return 0x3; } //this basically is a hack ^^ 99 virtual voidgetData(uint8_t*& mem, uint8_t mode);99 virtual inline uint32_t getData(uint8_t*& mem, uint8_t mode); 100 100 virtual void putData(uint8_t*& mem, uint8_t mode, bool forceCallback = false); 101 virtual uint32_t getSize(uint8_t mode);101 virtual inline uint32_t getSize(uint8_t mode); 102 102 private: 103 103 T varBuffer_; … … 122 122 } 123 123 124 template <class T> voidSynchronisableVariable<T>::getData(uint8_t*& mem, uint8_t mode)124 template <class T> inline uint32_t SynchronisableVariable<T>::getData(uint8_t*& mem, uint8_t mode) 125 125 { 126 126 if ( state_ == this->mode_ ) 127 { 127 128 getAndIncrease( mem ); 129 return returnSize(); 130 } 131 else 132 return 0; 128 133 // mem += SynchronisableVariable<T>::getSize(); 129 134 } … … 143 148 // write the data 144 149 setAndIncrease( mem ); 145 // mem += SynchronisableVariable<T>::getSize();146 150 // now do a callback if neccessary 147 151 if ( callback ) 148 152 NetworkCallbackManager::triggerCallback( this->callback_ ); 149 //this->callback_->call(); 150 } 151 152 template <class T> uint32_t SynchronisableVariable<T>::getSize(uint8_t mode) 153 } 154 155 template <class T> inline uint32_t SynchronisableVariable<T>::getSize(uint8_t mode) 153 156 { 154 157 if ( mode == this->mode_ ) … … 232 235 } 233 236 234 template <class T> voidSynchronisableVariableBidirectional<T>::getData(uint8_t*& mem, uint8_t mode)237 template <class T> uint32_t SynchronisableVariableBidirectional<T>::getData(uint8_t*& mem, uint8_t mode) 235 238 { 236 239 if ( this->mode_ == mode ) … … 248 251 SynchronisableVariable<T>::getAndIncrease( mem ); 249 252 // mem += SynchronisableVariable<T>::getSize(); 253 return SynchronisableVariableBidirectional::getSize(mode); 250 254 } 251 255 … … 304 308 } 305 309 306 template <class T> uint32_t SynchronisableVariableBidirectional<T>::getSize(uint8_t mode)310 template <class T> inline uint32_t SynchronisableVariableBidirectional<T>::getSize(uint8_t mode) 307 311 { 308 312 return SynchronisableVariable<T>::returnSize() + sizeof(varReference_); … … 312 316 } 313 317 318 #include "network/synchronisable/SynchronisableVariableSpecialisations.h" 314 319 315 320 #endif
Note: See TracChangeset
for help on using the changeset viewer.