Refactored InputChunkState.cs

This commit is contained in:
sta 2015-05-12 16:29:55 +09:00
parent 181400f33a
commit 8661468ccf
2 changed files with 17 additions and 16 deletions

View File

@ -144,7 +144,7 @@ namespace WebSocketSharp.Net
_sawCr = true; _sawCr = true;
if (offset == length) if (offset == length)
return InputChunkState.BodyFinished; return InputChunkState.DataEnded;
} }
if (buffer[offset++] != 10) if (buffer[offset++] != 10)
@ -200,7 +200,7 @@ namespace WebSocketSharp.Net
return InputChunkState.Trailer; return InputChunkState.Trailer;
} }
return InputChunkState.Body; return InputChunkState.Data;
} }
private InputChunkState setHeaders (byte[] buffer, ref int offset, int length) private InputChunkState setHeaders (byte[] buffer, ref int offset, int length)
@ -271,15 +271,15 @@ namespace WebSocketSharp.Net
_gotIt = false; _gotIt = false;
} }
if (_state == InputChunkState.Body && offset < length) { if (_state == InputChunkState.Data && offset < length) {
_state = writeBody (buffer, ref offset, length); _state = writeData (buffer, ref offset, length);
if (_state == InputChunkState.Body) if (_state == InputChunkState.Data)
return; return;
} }
if (_state == InputChunkState.BodyFinished && offset < length) { if (_state == InputChunkState.DataEnded && offset < length) {
_state = seekCrLf (buffer, ref offset, length); _state = seekCrLf (buffer, ref offset, length);
if (_state == InputChunkState.BodyFinished) if (_state == InputChunkState.DataEnded)
return; return;
_sawCr = false; _sawCr = false;
@ -297,24 +297,24 @@ namespace WebSocketSharp.Net
write (buffer, ref offset, length); write (buffer, ref offset, length);
} }
private InputChunkState writeBody (byte[] buffer, ref int offset, int length) private InputChunkState writeData (byte[] buffer, ref int offset, int length)
{ {
if (_chunkSize == 0) if (_chunkSize == 0)
return InputChunkState.BodyFinished; return InputChunkState.DataEnded;
var cnt = length - offset; var cnt = length - offset;
var left = _chunkSize - _chunkRead; var left = _chunkSize - _chunkRead;
if (cnt > left) if (cnt > left)
cnt = left; cnt = left;
var body = new byte[cnt]; var data = new byte[cnt];
Buffer.BlockCopy (buffer, offset, body, 0, cnt); Buffer.BlockCopy (buffer, offset, data, 0, cnt);
_chunks.Add (new Chunk (body)); _chunks.Add (new Chunk (data));
offset += cnt; offset += cnt;
_chunkRead += cnt; _chunkRead += cnt;
return _chunkRead == _chunkSize ? InputChunkState.BodyFinished : InputChunkState.Body; return _chunkRead == _chunkSize ? InputChunkState.DataEnded : InputChunkState.Data;
} }
#endregion #endregion

View File

@ -44,8 +44,9 @@ namespace WebSocketSharp.Net
internal enum InputChunkState internal enum InputChunkState
{ {
None, None,
Body, Data,
BodyFinished, DataEnded,
Trailer Trailer,
End
} }
} }