123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- using System;
- using System.IO;
- using System.Threading;
- using System.Threading.Tasks;
- namespace SocketHttpListener.Net
- {
- internal sealed partial class HttpResponseStream : Stream
- {
- private bool _closed;
- internal bool Closed => _closed;
- public override bool CanRead => false;
- public override bool CanSeek => false;
- public override bool CanWrite => true;
- public override void Flush() { }
- public override Task FlushAsync(CancellationToken cancellationToken) => Task.CompletedTask;
- public override long Length => throw new NotImplementedException();
- public override long Position
- {
- get => throw new NotImplementedException();
- set => throw new NotImplementedException();
- }
- public override long Seek(long offset, SeekOrigin origin)
- {
- throw new NotImplementedException();
- }
- public override void SetLength(long value)
- {
- throw new NotImplementedException();
- }
- public override int Read(byte[] buffer, int offset, int count)
- {
- throw new NotImplementedException();
- }
- public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback callback, object state)
- {
- return base.BeginRead(buffer, offset, count, callback, state);
- }
- public override int EndRead(IAsyncResult asyncResult)
- {
- return base.EndRead(asyncResult);
- }
- public override void Write(byte[] buffer, int offset, int size)
- {
- if (buffer == null)
- {
- throw new ArgumentNullException(nameof(buffer));
- }
- if (offset < 0 || offset > buffer.Length)
- {
- throw new ArgumentOutOfRangeException(nameof(offset));
- }
- if (size < 0 || size > buffer.Length - offset)
- {
- throw new ArgumentOutOfRangeException(nameof(size));
- }
- if (_closed)
- {
- return;
- }
- WriteCore(buffer, offset, size);
- }
- public override IAsyncResult BeginWrite(byte[] buffer, int offset, int size, AsyncCallback callback, object state)
- {
- if (buffer == null)
- {
- throw new ArgumentNullException(nameof(buffer));
- }
- if (offset < 0 || offset > buffer.Length)
- {
- throw new ArgumentOutOfRangeException(nameof(offset));
- }
- if (size < 0 || size > buffer.Length - offset)
- {
- throw new ArgumentOutOfRangeException(nameof(size));
- }
- return BeginWriteCore(buffer, offset, size, callback, state);
- }
- public override void EndWrite(IAsyncResult asyncResult)
- {
- if (asyncResult == null)
- {
- throw new ArgumentNullException(nameof(asyncResult));
- }
- EndWriteCore(asyncResult);
- }
- protected override void Dispose(bool disposing)
- {
- try
- {
- if (disposing)
- {
- if (_closed)
- {
- return;
- }
- _closed = true;
- DisposeCore();
- }
- }
- finally
- {
- base.Dispose(disposing);
- }
- }
- }
- }
|