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
|