DynamicBuffer.h
Go to the documentation of this file.00001 00020 #ifndef __DynamicBuffer_H__ 00021 #define __DynamicBuffer_H__ 00022 00023 // Includes 00024 00025 // Forward declares 00026 00027 // DynamicBuffer 00028 class DynamicBuffer 00029 { 00030 public: 00034 DynamicBuffer( 00035 unsigned int initialCapacity=1024 00036 00037 ); 00038 00042 DynamicBuffer( 00043 const DynamicBuffer& dynamicBuffer 00044 ); 00045 00051 const DynamicBuffer& operator = ( 00052 const DynamicBuffer& dynamicBuffer 00053 ); 00054 00058 ~DynamicBuffer(); 00059 00070 void Clear( 00071 bool releaseMemory = false 00072 00073 ); 00074 00080 unsigned int GetSize() const; 00081 00085 void SetSize( 00086 unsigned int size 00087 ); 00088 00094 unsigned int GetCapacity() const; 00095 00100 void SetCapacity( 00101 unsigned int capacity 00102 ); 00103 00110 unsigned int GetPosition() const; 00111 00117 void SetPosition( 00118 unsigned int position 00119 ); 00120 00127 unsigned int Write( 00128 const char* value, 00129 unsigned int count = 1 00130 ); 00131 00138 unsigned int Write( 00139 const short* value, 00140 unsigned int count = 1 00141 ); 00142 00149 unsigned int Write( 00150 const int* value, 00151 unsigned int count = 1 00152 ); 00153 00160 unsigned int Write( 00161 const long* value, 00162 unsigned int count = 1 00163 ); 00164 00171 unsigned int Write( 00172 const unsigned char* value, 00173 unsigned int count = 1 00174 ); 00175 00182 unsigned int Write( 00183 const unsigned short* value, 00184 unsigned int count = 1 00185 ); 00186 00193 unsigned int Write( 00194 const unsigned int* value, 00195 unsigned int count = 1 00196 ); 00197 00204 unsigned int Write( 00205 const unsigned long* value, 00206 unsigned int count = 1 00207 ); 00208 00215 unsigned int Write( 00216 const float* value, 00217 unsigned int count = 1 00218 ); 00219 00226 unsigned int Write( 00227 const double* value, 00228 unsigned int count = 1 00229 ); 00230 00237 unsigned int Write(const bool* value, unsigned int count = 1); 00238 00245 unsigned int Read( 00246 char* value, 00247 unsigned int count = 1 00248 ); 00249 00256 unsigned int Read( 00257 short* value, 00258 unsigned int count = 1 00259 ); 00260 00267 unsigned int Read( 00268 int* value, 00269 unsigned int count = 1 00270 ); 00271 00278 unsigned int Read( 00279 long* value, 00280 unsigned int count = 1 00281 ); 00282 00289 unsigned int Read( 00290 unsigned char* value, 00291 unsigned int count = 1 00292 ); 00293 00300 unsigned int Read( 00301 unsigned short* value, 00302 unsigned int count = 1 00303 ); 00304 00311 unsigned int Read( 00312 unsigned int* value, 00313 unsigned int count = 1 00314 ); 00315 00322 unsigned int Read( 00323 unsigned long* value, 00324 unsigned int count = 1 00325 ); 00326 00333 unsigned int Read( 00334 float* value, 00335 unsigned int count = 1 00336 ); 00337 00344 unsigned int Read( 00345 double* value, 00346 unsigned int count = 1 00347 ); 00348 00355 unsigned int Read( 00356 bool* value, 00357 unsigned int count = 1 00358 ); 00359 00365 void* GetPointer() const; 00366 00367 private: 00373 template <typename TYPE> unsigned int Write( 00374 const TYPE* value, 00375 unsigned int count 00376 ); 00377 00383 template <typename TYPE> unsigned int Read( 00384 TYPE* value, 00385 unsigned int count 00386 ); 00387 00393 void DynamicBuffer::Resize( 00394 unsigned int size 00395 ); 00396 00397 private: 00398 unsigned int initialCapacity_; 00399 unsigned int capacity_; 00400 unsigned int size_; 00401 unsigned int position_; 00402 unsigned char* buffer_; 00403 }; 00404 00405 #endif /* __DynamicBuffer_H__ */
Reproduction/republishing of any material on this site without permission is strictly prohibited.
