Refactored a few for ResponseStream.cs

This commit is contained in:
sta 2015-05-31 18:14:08 +09:00
parent 854005660b
commit 849c964102

View File

@ -111,6 +111,22 @@ namespace WebSocketSharp.Net
#region Private Methods
private static void checkWriteParameters (byte[] buffer, int offset, int count)
{
if (buffer == null)
throw new ArgumentNullException ("buffer");
if (offset < 0)
throw new ArgumentOutOfRangeException ("offset", "A negative value.");
if (count < 0)
throw new ArgumentOutOfRangeException ("count", "A negative value.");
if (offset + count > buffer.Length)
throw new ArgumentException (
"The sum of 'offset' and 'count' is greater than 'buffer' length.");
}
private static byte[] getChunkSizeBytes (int size, bool final)
{
return Encoding.ASCII.GetBytes (String.Format ("{0:x}\r\n{1}", size, final ? "\r\n" : ""));
@ -161,6 +177,10 @@ namespace WebSocketSharp.Net
if (_disposed)
throw new ObjectDisposedException (GetType ().ToString ());
checkWriteParameters (buffer, offset, count);
if (count == 0)
return null;
var headers = getHeaders (false);
var chunked = _response.SendChunked;
if (headers != null) {
@ -228,6 +248,9 @@ namespace WebSocketSharp.Net
if (_disposed)
throw new ObjectDisposedException (GetType ().ToString ());
if (asyncResult == null)
throw new ArgumentNullException ("asyncResult");
Action<IAsyncResult> endWrite = ares => {
_stream.EndWrite (ares);
if (_response.SendChunked)
@ -270,6 +293,10 @@ namespace WebSocketSharp.Net
if (_disposed)
throw new ObjectDisposedException (GetType ().ToString ());
checkWriteParameters (buffer, offset, count);
if (count == 0)
return;
var headers = getHeaders (false);
var chunked = _response.SendChunked;
if (headers != null) {
@ -293,9 +320,7 @@ namespace WebSocketSharp.Net
InternalWrite (size, 0, size.Length);
}
if (count > 0)
InternalWrite (buffer, offset, count);
InternalWrite (buffer, offset, count);
if (chunked)
InternalWrite (_crlf, 0, 2);
}