⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sh_buffer.cpp

📁 rsa算法打的一个包
💻 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 + -