1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
- using System;
- using System.Diagnostics;
- using System.IO;
- namespace Org.BouncyCastle.Utilities.IO
- {
- public class TeeInputStream
- : BaseInputStream
- {
- private readonly Stream input, tee;
- public TeeInputStream(Stream input, Stream tee)
- {
- Debug.Assert(input.CanRead);
- Debug.Assert(tee.CanWrite);
- this.input = input;
- this.tee = tee;
- }
- #if PORTABLE || NETFX_CORE
- protected override void Dispose(bool disposing)
- {
- if (disposing)
- {
- Org.BouncyCastle.Utilities.Platform.Dispose(input);
- Org.BouncyCastle.Utilities.Platform.Dispose(tee);
- }
- base.Dispose(disposing);
- }
- #else
- public override void Close()
- {
- Org.BouncyCastle.Utilities.Platform.Dispose(input);
- Org.BouncyCastle.Utilities.Platform.Dispose(tee);
- base.Close();
- }
- #endif
- public override int Read(byte[] buf, int off, int len)
- {
- int i = input.Read(buf, off, len);
- if (i > 0)
- {
- tee.Write(buf, off, i);
- }
- return i;
- }
- public override int ReadByte()
- {
- int i = input.ReadByte();
- if (i >= 0)
- {
- tee.WriteByte((byte)i);
- }
- return i;
- }
- }
- }
- #endif
|