49 lines
694 B
C++
49 lines
694 B
C++
#ifndef BAIL_BUFFER__H_
|
|
#define BAIL_BUFFER__H_
|
|
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
|
|
class HBailBuffer : public HObject
|
|
{
|
|
public:
|
|
HBailBuffer(size_t nSize)
|
|
{
|
|
m_pBuffer = (char *)malloc(nSize);
|
|
m_nBufferSize = nSize;
|
|
|
|
m_pBufferOffset = m_pBuffer;
|
|
m_nStoredSize = 0;
|
|
}
|
|
|
|
~HBailBuffer()
|
|
{
|
|
free(m_pBuffer);
|
|
}
|
|
|
|
inline char * Offset() { return m_pBufferOffset; }
|
|
inline void MoveOffset(size_t nSize)
|
|
{
|
|
m_pBufferOffset += nSize;
|
|
m_nStoredSize += nSize;
|
|
}
|
|
|
|
inline void Reset()
|
|
{
|
|
m_pBufferOffset = m_pBuffer;
|
|
m_nStoredSize = 0;
|
|
}
|
|
|
|
public:
|
|
char * m_pBuffer;
|
|
size_t m_nBufferSize;
|
|
size_t m_nStoredSize;
|
|
|
|
protected:
|
|
char * m_pBufferOffset;
|
|
};
|
|
|
|
#endif // BAIL_BUFFER__H_
|