49 lines
944 B
C++
49 lines
944 B
C++
//-----------------------------------------------------------------------------+
|
|
// Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd.
|
|
// = FileName : TStaticBuffer.cpp
|
|
// = Version : ver2.0
|
|
// = Author :
|
|
// = CreateDate : 2002-09-09
|
|
// = Description: TStaticBuffer ¶¨Òå
|
|
// = Maintainers:
|
|
//
|
|
//-----------------------------------------------------------------------------+
|
|
#include "StdAfx.h"
|
|
#include "TStaticBuffer.h"
|
|
|
|
TStaticBuffer::TStaticBuffer(char *pBuf, int nSize)
|
|
: m_pBuf(pBuf), m_nSize(nSize)
|
|
{
|
|
m_nPos = 0;
|
|
}
|
|
|
|
TStaticBuffer::~TStaticBuffer()
|
|
{
|
|
if (m_pBuf)
|
|
{
|
|
delete m_pBuf;
|
|
}
|
|
}
|
|
|
|
int TStaticBuffer::IsEOF()
|
|
{
|
|
return (m_nPos >= m_nSize);
|
|
}
|
|
|
|
int TStaticBuffer::operator !()
|
|
{
|
|
return (!m_pBuf || IsEOF());
|
|
}
|
|
|
|
int TStaticBuffer::Read(void *pDest, int nCount)
|
|
{
|
|
if (m_nPos + nCount > m_nSize)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
memcpy(pDest, &m_pBuf[m_nPos], nCount);
|
|
m_nPos += nCount;
|
|
|
|
return 1;
|
|
} |