📄 xbytebuffer.cpp
字号:
[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 + -