本文整理汇总了C#中IceInternal.BasicStream.resize方法的典型用法代码示例。如果您正苦于以下问题:C# BasicStream.resize方法的具体用法?C# BasicStream.resize怎么用?C# BasicStream.resize使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IceInternal.BasicStream
的用法示例。
在下文中一共展示了BasicStream.resize方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: compress
public bool compress(ref BasicStream cstream, int headerSize, int compressionLevel)
{
#if MANAGED || COMPACT
cstream = this;
return false;
#else
if(!_bzlibInstalled)
{
cstream = this;
return false;
}
//
// Compress the message body, but not the header.
//
int uncompressedLen = size() - headerSize;
byte[] uncompressed = _buf.b.rawBytes(headerSize, uncompressedLen);
int compressedLen = (int)(uncompressedLen * 1.01 + 600);
byte[] compressed = new byte[compressedLen];
int rc = NativeMethods.BZ2_bzBuffToBuffCompress(compressed, ref compressedLen, uncompressed,
uncompressedLen, compressionLevel, 0, 0);
if(rc == BZ_OUTBUFF_FULL)
{
cstream = null;
return false;
}
else if(rc < 0)
{
Ice.CompressionException ex = new Ice.CompressionException("BZ2_bzBuffToBuffCompress failed");
ex.reason = getBZ2Error(rc);
throw ex;
}
//
// Don't bother if the compressed data is larger than the
// uncompressed data.
//
if(compressedLen >= uncompressedLen)
{
return false;
}
cstream = new BasicStream(instance_);
cstream.resize(headerSize + 4 + compressedLen, false);
cstream.pos(0);
//
// Copy the header from the uncompressed stream to the
// compressed one.
//
cstream._buf.b.put(_buf.b.rawBytes(0, headerSize));
//
// Add the size of the uncompressed stream before the
// message body.
//
cstream.writeInt(size());
//
// Add the compressed message body.
//
cstream._buf.b.put(compressed, 0, compressedLen);
return true;
#endif
}
示例2: uncompress
public BasicStream uncompress(int headerSize)
{
#if MANAGED || COMPACT
return this;
#else
if(!_bzlibInstalled)
{
return this;
}
pos(headerSize);
int uncompressedSize = readInt();
if(uncompressedSize <= headerSize)
{
throw new Ice.IllegalMessageSizeException("compressed size <= header size");
}
int compressedLen = size() - headerSize - 4;
byte[] compressed = _buf.b.rawBytes(headerSize + 4, compressedLen);
int uncompressedLen = uncompressedSize - headerSize;
byte[] uncompressed = new byte[uncompressedLen];
int rc = NativeMethods.BZ2_bzBuffToBuffDecompress(uncompressed, ref uncompressedLen, compressed,
compressedLen, 0, 0);
if(rc < 0)
{
Ice.CompressionException ex = new Ice.CompressionException("BZ2_bzBuffToBuffDecompress failed");
ex.reason = getBZ2Error(rc);
throw ex;
}
BasicStream ucStream = new BasicStream(instance_);
ucStream.resize(uncompressedSize, false);
ucStream.pos(0);
ucStream._buf.b.put(_buf.b.rawBytes(0, headerSize));
ucStream._buf.b.put(uncompressed, 0, uncompressedLen);
return ucStream;
#endif
}