#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_