public void AddCallback(IBrotliOutput dlg) { if (!callbacks.Contains(dlg)) { callbacks.Add(dlg); } }
public void RemoveOutputCallback(IBrotliOutput callback) { if (outputState is BrotliOutputMultiple multi) { multi.RemoveCallback(callback); } }
private BrotliGlobalState(BrotliGlobalState original) { this.Parameters = original.Parameters; this.outputState = original.outputState.Clone(); this.LiteralBuffer = new RingBufferFast <byte>(original.LiteralBuffer); this.DistanceBuffer = new RingBufferFast <int>(original.DistanceBuffer); }
// Construction public BrotliGlobalState(BrotliFileParameters parameters, IBrotliOutput outputState) { this.Parameters = parameters; this.outputState = outputState; this.LiteralBuffer = RingBufferFast <byte> .From(0, 0); this.DistanceBuffer = RingBufferFast <int> .From(16, 15, 11, 4); }
// Output delegates public void AddOutputCallback(IBrotliOutput callback) { if (!(outputState is BrotliOutputMultiple multi)) { multi = new BrotliOutputMultiple(outputState); outputState = multi; } multi.AddCallback(callback); }
public BrotliOutputMultiple(IBrotliOutput wrapped) { this.wrapped = wrapped; }
public void RemoveCallback(IBrotliOutput dlg) { callbacks.Remove(dlg); }