📄 sh_buffer.cpp
字号:
// SH_Buffer.cpp: implementation of the SH_Buffer class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "SH_Buffer.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
// SH_Serial::SH_Buffer Construction/Destruction
//////////////////////////////////////////////////////////////////////
SH_Buffer::SH_Buffer(int nSize)
{
ASSERT(nSize>0);
m_nSize = nSize;
m_nLen = 0;
m_pBuffer = new char[m_nSize];
ASSERT(m_pBuffer != NULL);
}
SH_Buffer::~SH_Buffer()
{
m_nSize = 0;
m_nLen = 0;
if(m_pBuffer)
{
delete [] m_pBuffer;
m_pBuffer = NULL;
}
}
VOID SH_Buffer::Reset()
{
m_nLen = 0;
}
int SH_Buffer::Read(char * buf,int len)
{
int readlen;
readlen = len > m_nLen ? m_nLen : len;
memcpy(buf,m_pBuffer,readlen);
m_nLen = m_nLen - readlen;
if(m_nLen >0)
{
memmove(m_pBuffer,m_pBuffer + readlen,m_nLen);
}
return readlen;
}
int SH_Buffer::PseudoRead(char * buf,int len)
{
int readlen;
readlen = len > m_nLen ? m_nLen : len;
memcpy(buf,m_pBuffer,readlen);
return readlen;
}
int SH_Buffer::Write(const char * buf,int len)
{
int writelen;
if( (m_nSize-m_nLen) >= len)
writelen = len;
else
{
TRACE("WARNING:Not enough space\n");
writelen = m_nSize - m_nLen;
}
memcpy(m_pBuffer + m_nLen,buf,writelen);
m_nLen += writelen;
return writelen;
}
int SH_Buffer::GetSize()
{
return m_nSize;
}
int SH_Buffer::GetLength()
{
return m_nLen;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -