public Loaded(BrotliFileStructure file, BitStream bits, BrotliOutputStored output, MarkerRoot?markerRoot) { this.File = file; this.TotalCompressedBits = markerRoot?.TotalBits ?? bits.Length; // use markers to account for padding whenever possible this.TotalOutputBytes = output.OutputSize; }
public BrotliFileStructure Apply(byte[] bytes, BrotliDictionary dictionary) { var fileParameters = new BrotliFileParameters.Builder { WindowSize = DetermineWindowSize(bytes), Dictionary = dictionary }.Build(); var compressionParameters = SetupCompressionParameters(bytes); var bfs = new BrotliFileStructure(fileParameters); var encoder = CreateEncoder(bytes, fileParameters); var encodeInfo = new BrotliEncodeInfo(fileParameters, compressionParameters, bytes); do { var(metaBlock, newEncodeInfo) = encoder.Encode(encodeInfo); if (Transformers.Count == 0) { bfs.MetaBlocks.Add(metaBlock); encodeInfo = newEncodeInfo; } else { var(transformedMetaBlocks, transformedState) = ApplyTransformerChain(encodeInfo.State, metaBlock, compressionParameters); bfs.MetaBlocks.AddRange(transformedMetaBlocks); encodeInfo = newEncodeInfo.WithState(transformedState); } }while(!encodeInfo.IsFinished); FinalizeStructure(bfs); return(bfs); }
public BuildFileStructure(IBuildingBlockContext context, BrotliFileStructure brotliFile) { InitializeComponent(); this.context = context; this.context.Notified += context_Notified; this.brotliFile = brotliFile; RegenerateElementList(selectMetaBlock: null, notifyParent: false); }
public HasStructure(BrotliFileStructure file, Stopwatch?stopwatch) : base(stopwatch) { this.File = file; }
protected override void FinalizeStructure(BrotliFileStructure structure) { structure.MetaBlocks.Add(new MetaBlock.LastEmpty()); }
protected virtual void FinalizeStructure(BrotliFileStructure structure) { structure.Fixup(); }
public Compressed(string path, string name, string identifier) : base(path, name) { this.Identifier = identifier; this.structureLazy = new Lazy <BrotliFileStructure>(() => BrotliFileStructure.FromBytes(Contents, Parameters.File.Dictionary), isThreadSafe: true); }
public BrotliFileStructure Encode(IBrotliEncoder encoder) { return(BrotliFileStructure.FromEncoder(Parameters.File, Parameters.Compression, Contents, encoder)); }
public int CountBytesAndValidate(BrotliFileStructure bfs) { return((7 + SerializeAndValidate(bfs).Length) / 8); }
public BitStream SerializeAndValidate(BrotliFileStructure bfs) { return(Validate(bfs.Serialize(Parameters.Serialization))); }
public void ResetToEmpty() { LoadStructure(BrotliFileStructure.NewEmpty()); }