From: Dejan L. <de...@us...> - 2004-06-11 15:36:12
|
Update of /cvsroot/rtk/rtk/rtk In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12629/rtk Modified Files: Buffer.h rtkdef.h Log Message: New implementation of Buffer. Added RTK_BUFFER_SIZE definition to rtkdef.h . Index: rtkdef.h =================================================================== RCS file: /cvsroot/rtk/rtk/rtk/rtkdef.h,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** rtkdef.h 9 Mar 2004 17:01:27 -0000 1.10 --- rtkdef.h 11 Jun 2004 15:35:53 -0000 1.11 *************** *** 104,107 **** --- 104,109 ---- typedef unsigned short ushort; + #define RTK_BUFFER_SIZE 1024; /// Default size of RTK Buffer object. + #endif Index: Buffer.h =================================================================== RCS file: /cvsroot/rtk/rtk/rtk/Buffer.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Buffer.h 6 Jun 2004 20:54:07 -0000 1.4 --- Buffer.h 11 Jun 2004 15:35:53 -0000 1.5 *************** *** 53,101 **** namespace Rtk { ! /** Buffer implementation. ! * T0D0: Description for Buffer class */ class RTK_API Buffer { ! public: ! /** ! * Default Buffer constructor. ! */ ! Buffer() : _size(0), _data(0) {} /** ! * Another Buffer constructor. */ ! Buffer(const uchar* data, uint size) ! : _size(size), _data(new uchar[_size]) ! { memcpy(_data, data, _size); } /** ! * Buffer's copy constructor. */ ! Buffer(const Buffer& buf) : _size(buf._size), _data(new char[_size]) ! { memcpy(_data, buf._data, _size); } ! /** ! * Buffer's destructor */ ! ~Buffer() { delete[] _data; } ! void operator=(const Buffer& buf) ! { ! delete[] _data; ! _size = buf._size; ! _data = new char[_size]; ! memcpy(_data, buf._data, _size); ! } /** ! * Returns pointer to Buffer's data. */ ! const uchar* Data() const { return _data; } ! ! private: ! uint _size; /// Number of elements in Buffer ! uchar* _data; /// Data }; // Buffer }; // Rtk namespace --- 53,108 ---- namespace Rtk { ! /** Dynamic Buffer implementation. ! * @author de...@rt... */ class RTK_API Buffer { ! uchar* _data; ! uint _allocated; ! uint _size; /** ! * Allocates arg_num bytes and returns pointer to new memory block. ! * @returns uchar* pointer to new memory block. */ ! uchar* Allocate(uint arg_num); ! ! public: ! /** ! * Default Buffer constructor. ! */ ! Buffer():_size(0) ! { ! _data = new uchar[_allocated = RTK_BUFFER_SIZE]; ! } ! ! ~Buffer() { delete[] _data; } /** ! * Returns pointer to internal data memory-block. ! * @returns pointer to the data buffer. */ ! const uchar* Data() ! { ! if (_size == _allocated) ! Allocate(1); ! _data[_size] = '\0'; // i think this would be usefull ! return _data; ! } // Data() ! /** Returns current size of Buffer. ! * @returns uint current size of Buffer. */ ! uint GetSize() const { return _size; } ! /** Writes one single byte to the Buffer object ! * @param c uchar Byte to be written. ! */ ! void Write(uchar c) { *Allocate(1) = c; ++_size; } /** ! * Writes arbitrary number of bytes to the Buffer object. */ ! void Write(const uchar* arg_byte_array, uint arg_num); }; // Buffer }; // Rtk namespace |