Exemplo n.º 1
0
        // this will eventually disappear once we fully migrate to System.Memory
        public static GapStream CreateWriter(
            Stream nakedStream, CompressionMethod compressionMethod,
            bool leaveNakedOpen)
        {
            Stream dest;

            switch (compressionMethod)
            {
            case CompressionMethod.Gzip:
                dest           = new GZipStream(nakedStream, CompressionLevel.Optimal, leaveNakedOpen);
                leaveNakedOpen = false;
                break;

            case CompressionMethod.Snappy:
                dest           = new SnappyInMemoryStream(nakedStream, CompressionMode.Compress);
                leaveNakedOpen = false;
                break;

            case CompressionMethod.None:
                dest = nakedStream;
                break;

            default:
                throw new NotImplementedException($"unknown compression method {compressionMethod}");
            }

            return(new GapStream(dest, leaveOpen: leaveNakedOpen));
        }
        public void Compress_decompress_random_byte_chunks()
        {
            byte[] stage1 = RandomGenerator.GetRandomBytes(2, 1000);
            byte[] stage2;
            byte[] stage3;

            using (var source = new MemoryStream())
            {
                using (var snappy = new SnappyInMemoryStream(source, CompressionMode.Compress))
                {
                    snappy.Write(stage1, 0, stage1.Length);
                    snappy.MarkWriteFinished();
                }
                stage2 = source.ToArray();
            }

            using (var source = new MemoryStream(stage2))
            {
                using (var snappy = new SnappyInMemoryStream(source, CompressionMode.Decompress))
                {
                    using (var ms = new MemoryStream())
                    {
                        snappy.CopyTo(ms);
                        stage3 = ms.ToArray();
                    }
                }
            }

            // validate

            Assert.Equal(stage1, stage3);
        }
        // this will eventually disappear once we fully migrate to System.Memory
        public static GapStream CreateWriter(
            Stream nakedStream,
            CompressionMethod compressionMethod, int compressionLevel,
            bool leaveNakedOpen)
        {
            Stream dest;

/*#if !NET14
 *       nakedStream = new BufferedStream(nakedStream); //optimise writer performance
 #endif*/

            switch (compressionMethod)
            {
            case CompressionMethod.Gzip:
                dest           = new GZipStream(nakedStream, ToGzipCompressionLevel(compressionLevel), leaveNakedOpen);
                leaveNakedOpen = false;
                break;

            case CompressionMethod.Snappy:
                dest           = new SnappyInMemoryStream(nakedStream, CompressionMode.Compress);
                leaveNakedOpen = false;
                break;

            case CompressionMethod.None:
                dest = nakedStream;
                break;

            default:
                throw new NotImplementedException($"unknown compression method {compressionMethod}");
            }

            return(new GapStream(dest, leaveOpen: leaveNakedOpen));
        }
Exemplo n.º 4
0
#pragma warning disable xUnit1026 // Theory methods should use all of their parameters
        public void Compress_decompress_random_byte_chunks(int index)
#pragma warning restore xUnit1026 // Theory methods should use all of their parameters
        {
            byte[] stage1 = RandomGenerator.GetRandomBytes(2, 1000);
            byte[] stage2;
            byte[] stage3;

            using (var source = new MemoryStream())
            {
                using (var snappy = new SnappyInMemoryStream(source, CompressionMode.Compress))
                {
                    snappy.Write(stage1, 0, stage1.Length);
                    snappy.MarkWriteFinished();
                }
                stage2 = source.ToArray();
            }

            using (var source = new MemoryStream(stage2))
            {
                using (var snappy = new SnappyInMemoryStream(source, CompressionMode.Decompress))
                {
                    using (var ms = new MemoryStream())
                    {
                        snappy.CopyTo(ms);
                        stage3 = ms.ToArray();
                    }
                }
            }

            // validate

            Assert.Equal(stage1, stage3);
        }
Exemplo n.º 5
0
        public static Stream CreateReader(Stream nakedStream, CompressionMethod compressionMethod, long knownLength)
        {
            Stream dest = nakedStream;

            switch (compressionMethod)
            {
            case CompressionMethod.Gzip:
                dest = new GZipStream(nakedStream, CompressionMode.Decompress, false);
                break;

            case CompressionMethod.Snappy:
                dest = new SnappyInMemoryStream(nakedStream, CompressionMode.Decompress);
                break;

            case CompressionMethod.None:
                dest = nakedStream;
                break;

            default:
                throw new NotImplementedException($"unknown compression method {compressionMethod}");
            }

            return(new GapStream(dest, knownLength));
        }