コード例 #1
0
 public BrotliFileStreamTransformer(IBrotliFileStream original, BrotliCompressionParameters compressionParameters, params IBrotliTransformer[] transformers)
 {
     this.original              = original;
     this.transformers          = transformers;
     this.compressionParameters = compressionParameters;
     this.transformedQueue      = new Queue <MetaBlock>();
 }
コード例 #2
0
        public BitStream SerializeAndValidate(IBrotliFileStream reader)
        {
            var writer = new BrotliFileWriter(reader.Parameters, Parameters.Serialization);

            reader.ForEachRemainingMetaBlock(writer.WriteMetaBlock);
            return(Validate(writer.Close()));
        }
コード例 #3
0
        private BitStream Validate(BitStream bits)
        {
            IBrotliFileStream reader = BrotliFileReader.FromBytes(bits, Parameters.File.Dictionary);

            var output = new BrotliOutputStored();
            var state  = new BrotliGlobalState(reader.Parameters, output);

            reader.ForEachRemainingMetaBlock(metaBlock => metaBlock.Decompress(state));

            if (!CollectionHelper.Equal(output.AsBytes, Uncompressed.Contents))
            {
                throw new InvalidOperationException("Mismatched output bytes.");
            }

            return(bits);
        }
コード例 #4
0
 public ReferenceChecker(IBrotliFileStream originalReader, IBrotliFileStream transformingReader)
 {
     this.originalReader     = originalReader;
     this.transformingReader = transformingReader;
 }
コード例 #5
0
 public int CountBytesAndValidate(IBrotliFileStream reader)
 {
     return((7 + SerializeAndValidate(reader).Length) / 8);
 }