Go to the documentation of this file.00001
00002
00003
00004
00005
00008
00009 #ifndef smartBuffer_H_
00010 #define smartBuffer_H_
00011
00012 #include "lgrUtil.h"
00013 #include "memoryBuffer.h"
00014
00015 namespace MAKLogger
00016 {
00017
00021 class DT_DLL_LGRUTIL DtSmartBuffer
00022 {
00023 public:
00028 explicit DtSmartBuffer(const DtMemoryBufferSP& parentBuffer);
00029
00032 DtSmartBuffer(const DtMemoryBufferSP& parentBuffer, size_t offset, size_t size);
00033
00035 ~DtSmartBuffer();
00036
00038 DtMemoryBufferSP buffer() const;
00039
00044 void setBuffer(const DtMemoryBufferSP& buffer);
00045
00047 void* data();
00048
00050 const void* data() const;
00051
00053 size_t size() const;
00054
00060 void resize(size_t);
00061
00064 size_t availableSize() const;
00065
00067 size_t currentOffset() const;
00068
00072 void increaseOffset(int offsetInBytes);
00073
00077 void setOffset(int offsetInBytes);
00078
00080 void resetOffset();
00081
00082 private:
00083 DtMemoryBufferSP myBuffer;
00084 void* mySubData;
00085 size_t mySize;
00086 };
00087
00088 }
00089
00090 #endif