00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __CS_DATABUF_H__
00021 #define __CS_DATABUF_H__
00022
00023 #include "iutil/databuff.h"
00024
00031 class csDataBuffer : public iDataBuffer
00032 {
00034 char *Data;
00036 size_t Size;
00038 bool do_delete;
00039
00040 public:
00041 SCF_DECLARE_IBASE;
00042
00044 csDataBuffer (size_t iSize)
00045 { SCF_CONSTRUCT_IBASE (0);
00046 Data = new char [Size = iSize];
00047 do_delete = true; }
00048
00050 csDataBuffer (char *iData, size_t iSize, bool should_delete = true)
00051 { SCF_CONSTRUCT_IBASE (0);
00052 Data = iData;
00053 Size = iSize;
00054 do_delete = should_delete;
00055 }
00056
00058 csDataBuffer (iDataBuffer *source)
00059 {
00060 SCF_CONSTRUCT_IBASE (0);
00061 Data = new char [(Size = source->GetSize()) + 1];
00062 memcpy (Data, source->GetData(), Size);
00063 Data[Size] = 0;
00064 do_delete = true;
00065 }
00067 virtual ~csDataBuffer ();
00068
00070 virtual size_t GetSize () const
00071 { return Size; }
00073 virtual char* GetData () const
00074 { return Data; }
00075 };
00076
00077 #endif // __CS_DATABUF_H__