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

📄 xbytebuffer.cpp

📁 BCB的学习资料
💻 CPP
📖 第 1 页 / 共 4 页
字号:
[Exception]
    EOutOfMemory 如果申请缓冲区失败,那么则抛出该异常
[Description]
     向缓冲区中追加一个字符串的数据
[Version]1.0
[Author]Rex Winter
[Date]2005-6-21
////////////////////////////////////////////////////////////////////////////////
*/
XByteBuffer & XByteBuffer::AppendString(const char * aString)
{
    int iLen = 0;
    const char * str1 = aString;
    while( *str1++ ) iLen++; //求字符串的长度
    return AppendData( (const void *)aString, iLen );
}
/*
////////////////////////////////////////////////////////////////////////////////
[Name]AppendString
[Title]向缓冲区中追加一个字符串的数据
////////////////////////////////////////////////////////////////////////////////
[Param]
    <const AnsiString &>aString 被追加的字符串
[Return]
    <XByteBuffer &>当前缓冲区对象的引用
[Exception]
    EOutOfMemory 如果申请缓冲区失败,那么则抛出该异常
[Description]
     向缓冲区中追加一个字符串的数据
[Version]1.0
[Author]Rex Winter
[Date]2005-6-21
////////////////////////////////////////////////////////////////////////////////
*/
XByteBuffer & XByteBuffer::AppendString(const AnsiString & aString)
{
    int iLength = aString.Length();
    if( iLength > 0 )
    {
        ensureCapacity( iLength + m_Length );
        XByte * dest = m_Data + m_Length;
        const XByte * src = (const XByte *)aString.c_str();
        for(int i=0;i<iLength;i++)
        {
            *dest++ = *src++;
        }
        m_Length += iLength;
    }
    return *this;
}
/*
////////////////////////////////////////////////////////////////////////////////
[Name]AppendData
[Title]向缓冲区中追加数据
////////////////////////////////////////////////////////////////////////////////
[Param]
    <const void * >aData 被追加的数据的指针
    <int>被追回的字节数
[Return]
    <XByteBuffer &>当前缓冲区对象的引用
[Exception]
    EOutOfMemory 如果申请缓冲区失败,那么则抛出该异常
[Description]
     向缓冲区中追加数据
[Version]1.0
[Author]Rex Winter
[Date]2005-6-21
////////////////////////////////////////////////////////////////////////////////
*/
XByteBuffer & XByteBuffer::AppendData(const void * aData,int aDataSize)
{
    if( aDataSize > 0 )
    {
        ensureCapacity( aDataSize + m_Length );
        XByte * dest = m_Data + m_Length;
        const XByte * src = (const XByte *)aData;
        for(int i=0; i<aDataSize; i++)
        {
            *dest++ = *src++;
        }
    }
    return *this; 
}
/*
////////////////////////////////////////////////////////////////////////////////
[Name]AppendByte
[Title]向缓冲区中追加一个字节的数据
////////////////////////////////////////////////////////////////////////////////
[Param]
    <XByte>aByte 被追加的字节
[Return]
    <XByteBuffer &>当前缓冲区对象的引用
[Exception]
    EOutOfMemory 如果申请缓冲区失败,那么则抛出该异常
[Description]
     向缓冲区中追加一个字节的数据
[Version]1.0
[Author]Rex Winter
[Date]2005-6-21
////////////////////////////////////////////////////////////////////////////////
*/

XByteBuffer & XByteBuffer::AppendByte(XByte aByte)
{
    ensureCapacity( m_Length +1 );
    m_Data[m_Length++ ] = aByte;
    return * this;
}
/*
////////////////////////////////////////////////////////////////////////////////
[Name]AppendChar
[Title]向缓冲区中追加一个字符的数据
////////////////////////////////////////////////////////////////////////////////
[Param]
    <XChar>aChar 被追加的字节
[Return]
    <XByteBuffer &>当前缓冲区对象的引用
[Exception]
    EOutOfMemory 如果申请缓冲区失败,那么则抛出该异常
[Description]
     向缓冲区中追加一个字符的数据
[Version]1.0
[Author]Rex Winter
[Date]2005-6-21
////////////////////////////////////////////////////////////////////////////////
*/
XByteBuffer & XByteBuffer::AppendChar(XChar aChar)
{
    ensureCapacity( m_Length +1 );
    m_Data[m_Length++] = aChar;
    return * this;
}
/*
////////////////////////////////////////////////////////////////////////////////
[Name]AppendBoolean
[Title]向缓冲区中追加一个bool型的数据
////////////////////////////////////////////////////////////////////////////////
[Param]
    <XBoolean>v 被追加数据
[Return]
    <XByteBuffer &>当前缓冲区对象的引用
[Exception]
    EOutOfMemory 如果申请缓冲区失败,那么则抛出该异常
[Description]
     向缓冲区中追加一个bool型的数据
[Version]1.0
[Author]Rex Winter
[Date]2005-6-21
////////////////////////////////////////////////////////////////////////////////
*/
XByteBuffer & XByteBuffer::AppendBoolean(XBoolean v)
{
    ensureCapacity( m_Length +1 );
    if( v ) m_Data[m_Length++] = 1;
    else m_Data[m_Length++] = 0;
    return * this;
}
/*
////////////////////////////////////////////////////////////////////////////////
[Name]AppendWord
[Title]向缓冲区中追加一个16位的无符号整数
////////////////////////////////////////////////////////////////////////////////
[Param]
    <XWord>aWord 被追加整数
[Return]
    <XByteBuffer &>当前缓冲区对象的引用
[Exception]
    EOutOfMemory 如果申请缓冲区失败,那么则抛出该异常
[Description]
     向缓冲区中追加一个16位的无符号整数
[Version]1.0
[Author]Rex Winter
[Date]2005-6-21
////////////////////////////////////////////////////////////////////////////////
*/
XByteBuffer & XByteBuffer::AppendWord(XWord aWord)
{
    ensureCapacity( m_Length +2 );
    XByte * src = (XByte *)&aWord;
    XByte * dest = m_Data + m_Length;
    *dest ++ = src[1];
    *dest = *src;
    m_Length += 2;
    return *this;
}
/*
////////////////////////////////////////////////////////////////////////////////
[Name]AppendShort
[Title]向缓冲区中追加一个16位的有符号整数
////////////////////////////////////////////////////////////////////////////////
[Param]
    <XShort>aShort 被追加整数
[Return]
    <XByteBuffer &>当前缓冲区对象的引用
[Exception]
    EOutOfMemory 如果申请缓冲区失败,那么则抛出该异常
[Description]
     向缓冲区中追加一个16位的有符号整数
[Version]1.0
[Author]Rex Winter
[Date]2005-6-21
////////////////////////////////////////////////////////////////////////////////
*/
XByteBuffer & XByteBuffer::AppendShort(XShort aShort)
{
    ensureCapacity( m_Length +2 );
    XByte * src = (XByte *)&aShort;
    XByte * dest = m_Data + m_Length;
    *dest ++ = src[1];
    *dest = *src;
    m_Length += 2;
    return *this;
}
/*
////////////////////////////////////////////////////////////////////////////////
[Name]AppendInt
[Title]向缓冲区中追加一个32位的有符号整数
////////////////////////////////////////////////////////////////////////////////
[Param]
    <XInt>aInt 被追加整数
[Return]
    <XByteBuffer &>当前缓冲区对象的引用
[Exception]
    EOutOfMemory 如果申请缓冲区失败,那么则抛出该异常
[Description]
     向缓冲区中追加一个32位的有符号整数
[Version]1.0
[Author]Rex Winter
[Date]2005-6-21
////////////////////////////////////////////////////////////////////////////////
*/
XByteBuffer & XByteBuffer::AppendInt(XInt aInt)
{
    ensureCapacity( m_Length + 4 );
    XByte * src = ((XByte *)&aInt)+3;
    XByte * dest = m_Data + m_Length;
    *dest ++ = *src--;
    *dest ++ = *src--;
    *dest ++ = *src--;
    *dest = *src;
    m_Length += 4;
    return *this;
}
/*
////////////////////////////////////////////////////////////////////////////////
[Name]AppendDWord
[Title]向缓冲区中追加一个32位的无符号整数
////////////////////////////////////////////////////////////////////////////////
[Param]
    <XDWord>aDWord 被追加整数
[Return]
    <XByteBuffer &>当前缓冲区对象的引用
[Exception]
    EOutOfMemory 如果申请缓冲区失败,那么则抛出该异常
[Description]
     向缓冲区中追加一个32位的无符号整数
[Version]1.0
[Author]Rex Winter
[Date]2005-6-21
////////////////////////////////////////////////////////////////////////////////
*/
XByteBuffer & XByteBuffer::AppendDWord(XDWord aDWord)
{
    ensureCapacity( m_Length + 4 );
    XByte * src = ((XByte *)&aDWord)+3;
    XByte * dest = m_Data + m_Length;
    *dest ++ = *src--;
    *dest ++ = *src--;
    *dest ++ = *src--;
    *dest = *src;
    m_Length += 4;
    return *this;
}
/*
////////////////////////////////////////////////////////////////////////////////
[Name]AppendLong
[Title]向缓冲区中追加一个64位的有符号整数
////////////////////////////////////////////////////////////////////////////////
[Param]
    <XLong>aLong 被追加整数
[Return]
    <XByteBuffer &>当前缓冲区对象的引用
[Exception]
    EOutOfMemory 如果申请缓冲区失败,那么则抛出该异常
[Description]
     向缓冲区中追加一个64位的有符号整数
[Version]1.0
[Author]Rex Winter
[Date]2005-6-21
////////////////////////////////////////////////////////////////////////////////
*/
XByteBuffer & XByteBuffer::AppendLong(XLong aLong)
{
    ensureCapacity( m_Length + 8 );
    XByte * src = ((XByte *)&aLong)+7;
    XByte * dest = m_Data + m_Length;
    *dest ++ = *src--;
    *dest ++ = *src--;
    *dest ++ = *src--;
    *dest ++ = *src--;
    *dest ++ = *src--;
    *dest ++ = *src--;
    *dest ++ = *src--;
    *dest = *src;
    m_Length += 8;
    return *this;
}
/*
////////////////////////////////////////////////////////////////////////////////
[Name]AppendDDWord
[Title]向缓冲区中追加一个64位的无符号整数
////////////////////////////////////////////////////////////////////////////////
[Param]
    <XDDWord>aDDWord 被追加整数
[Return]
    <XByteBuffer &>当前缓冲区对象的引用
[Exception]
    EOutOfMemory 如果申请缓冲区失败,那么则抛出该异常
[Description]
     向缓冲区中追加一个64位的无符号整数
[Version]1.0
[Author]Rex Winter
[Date]2005-6-21
////////////////////////////////////////////////////////////////////////////////
*/

XByteBuffer & XByteBuffer::AppendDDWord(XDDWord aDDWord)
{
    ensureCapacity( m_Length + 8 );
    XByte * src = ((XByte *)&aDDWord)+7;
    XByte * dest = m_Data + m_Length;
    *dest ++ = *src--;
    *dest ++ = *src--;
    *dest ++ = *src--;
    *dest ++ = *src--;
    *dest ++ = *src--;
    *dest ++ = *src--;
    *dest ++ = *src--;
    *dest = *src;
    m_Length += 8;
    return *this;
}
/*
////////////////////////////////////////////////////////////////////////////////
[Name]AppendFloat
[Title]向缓冲区中追加一个32位的单精度的浮点数
////////////////////////////////////////////////////////////////////////////////
[Param]
    <XFloat>aFloat 被追加浮点数
[Return]
    <XByteBuffer &>当前缓冲区对象的引用
[Exception]
    EOutOfMemory 如果申请缓冲区失败,那么则抛出该异常
[Description]
     向缓冲区中追加一个32位的单精度的浮点数
[Version]1.0
[Author]Rex Winter
[Date]2005-6-21
////////////////////////////////////////////////////////////////////////////////
*/
XByteBuffer & XByteBuffer::AppendFloat(XFloat aFloat)
{
    ensureCapacity( m_Length + sizeof(aFloat) );
    *((XFloat *)(m_Data + m_Length)) = aFloat;
    m_Length += sizeof(aFloat);
    return *this;
}
/*
////////////////////////////////////////////////////////////////////////////////
[Name]AppendDouble
[Title]向缓冲区中追加一个64位的双精度的浮点数
////////////////////////////////////////////////////////////////////////////////
[Param]
    <XDouble>aDouble 被追加浮点数
[Return]
    <XByteBuffer &>当前缓冲区对象的引用
[Exception]
    EOutOfMemory 如果申请缓冲区失败,那么则抛出该异常
[Description]
     向缓冲区中追加一个64位的双精度的浮点数
[Version]1.0
[Author]Rex Winter
[Date]2005-6-21
////////////////////////////////////////////////////////////////////////////////
*/
XByteBuffer & XByteBuffer::AppendDouble(XDouble aDouble)
{
    ensureCapacity( m_Length + sizeof(XDouble) );
    *((XDouble *)(m_Data + m_Length)) = aDouble;
    m_Length += sizeof(XDouble);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -