本文整理汇总了C#中ByteBuffer.CompressedCopy方法的典型用法代码示例。如果您正苦于以下问题:C# ByteBuffer.CompressedCopy方法的具体用法?C# ByteBuffer.CompressedCopy怎么用?C# ByteBuffer.CompressedCopy使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ByteBuffer
的用法示例。
在下文中一共展示了ByteBuffer.CompressedCopy方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: EncodeIntoCompressedByteBuffer
/// <summary>
/// Encode this histogram in compressed form into a <see cref="ByteBuffer"/>.
/// </summary>
/// <param name="source">The histogram to encode</param>
/// <param name="targetBuffer">The buffer to write to</param>
/// <returns>The number of bytes written to the buffer</returns>
public static int EncodeIntoCompressedByteBuffer(this HistogramBase source, ByteBuffer targetBuffer)
{
int neededCapacity = source.GetNeededByteBufferCapacity();
var intermediateUncompressedByteBuffer = ByteBuffer.Allocate(neededCapacity);
source.Encode(intermediateUncompressedByteBuffer, HistogramEncoderV2.Instance);
int initialTargetPosition = targetBuffer.Position;
targetBuffer.PutInt(GetCompressedEncodingCookie());
int compressedContentsHeaderPosition = targetBuffer.Position;
targetBuffer.PutInt(0); // Placeholder for compressed contents length
var compressedDataLength = targetBuffer.CompressedCopy(intermediateUncompressedByteBuffer, targetBuffer.Position);
targetBuffer.PutInt(compressedContentsHeaderPosition, compressedDataLength); // Record the compressed length
int bytesWritten = compressedDataLength + 8;
targetBuffer.Position = (initialTargetPosition + bytesWritten);
return bytesWritten;
}