/// <summary> /// Initializes a new instance of the <see cref="SnappyStream"/> class. /// </summary> /// <param name="s">The stream.</param> /// <param name="mode">The compression mode.</param> /// <param name="leaveOpen">If set to <c>true</c> leaves the stream open when complete.</param> /// <param name="checksum"><c>true</c> if checksums should be written to the stream </param> public SnappyStream(Stream s, CompressionMode mode, bool leaveOpen, bool checksum) { stream = s; compressionMode = mode; leaveStreamOpen = leaveOpen; writeChecksums = checksum; if (compressionMode == CompressionMode.Decompress) { if (!stream.CanRead) throw new InvalidOperationException("Trying to decompress and underlying stream not readable."); decompressor = new SnappyDecompressor(); CheckStreamIdentifier(); CheckStreamHeader(); } if (compressionMode == CompressionMode.Compress) { if (!stream.CanWrite) throw new InvalidOperationException("Trying to compress and underlying stream is not writable."); compressor = new SnappyCompressor(); stream.WriteByte(StreamIdentifier); stream.Write(StreamHeader, 0, StreamHeader.Length); } }
public static int GetUncompressedLength(byte[] compressed, int offset = 0) { var decompressor = new SnappyDecompressor(); return(decompressor.ReadUncompressedLength(compressed, offset)[0]); }
public static int GetUncompressedLength(byte[] compressed, int offset = 0) { var decompressor = new SnappyDecompressor(); return decompressor.ReadUncompressedLength(compressed, offset)[0]; }