public BufferedFrameWriter(Stream stream) { Verify.NotNull(stream, "stream"); this.bufferStream1 = new BufferedOutStream(stream, maxBufferSize); this.bufferStream2 = new BufferedOutStream(stream, maxBufferSize); this.activeBufferStream = this.bufferStream1; }
public override void Write(IList<Frame> frames) { var totalBytes = frames.Sum(frame => frame.Body.Count); if (this.activeBufferStream.Length + totalBytes >= this.maxBufferSize) { this.activeBufferStream.Flush(); this.activeBufferStream = ReferenceEquals(this.activeBufferStream, this.bufferStream1) ? this.bufferStream2 : this.bufferStream1; } WriteFramesToStream(frames, this.activeBufferStream); }