本文整理汇总了C++中CBuffer::append方法的典型用法代码示例。如果您正苦于以下问题:C++ CBuffer::append方法的具体用法?C++ CBuffer::append怎么用?C++ CBuffer::append使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CBuffer
的用法示例。
在下文中一共展示了CBuffer::append方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Uncompress
bool ZLibUtils::Uncompress(CBuffer& pSrc)
{
QMutexLocker l(&ZLibUtils::m_oMutex);
for(ulong nSize = qMax(pSrc.size() * 6u, 1024u); ; nSize *= 2)
{
ZLibUtils::m_oCompressBuffer.resize(nSize);
ulong nCompress = ZLibUtils::m_oCompressBuffer.size();
int nRet = ::uncompress((Bytef*)ZLibUtils::m_oCompressBuffer.data(), &nCompress, (Bytef*)pSrc.data(), pSrc.size());
if(nRet == Z_OK)
{
ZLibUtils::m_oCompressBuffer.resize(nCompress);
pSrc.clear();
pSrc.append(ZLibUtils::m_oCompressBuffer);
break;
}
if(nRet != Z_BUF_ERROR)
{
return false;
}
}
return true;
}
示例2: Compress
bool ZLibUtils::Compress(CBuffer& pSrc, bool bIfSmaller)
{
QMutexLocker l(&ZLibUtils::m_oMutex);
if(bIfSmaller && pSrc.size() < 64)
{
return false;
}
ulong nCompress = qMax(ZLibUtils::m_oCompressBuffer.size(), pSrc.size() * 2);
ZLibUtils::m_oCompressBuffer.resize(nCompress);
int nRet = ::compress((Bytef*)ZLibUtils::m_oCompressBuffer.data(), &nCompress, (const Bytef*)pSrc.data(), pSrc.size());
if(nRet != Z_OK)
{
Q_ASSERT(nRet != Z_BUF_ERROR);
return false;
}
ZLibUtils::m_oCompressBuffer.resize(nCompress);
if(bIfSmaller && ZLibUtils::m_oCompressBuffer.size() > pSrc.size())
{
return false;
}
pSrc.clear();
pSrc.append(ZLibUtils::m_oCompressBuffer);
return true;
}