void CompleteRead() { var tmp = _currentInputSegment; _currentInputSegment = _nextInputSegment; _currentInputSegment.GetResult(); _nextInputSegment = tmp; if (_currentInputSegment.CurrentContentLength != 0) { _socket.BeginReceive(_nextInputSegment); } OnIncommingSegment(_currentInputSegment); if (_currentInputSegment.CurrentContentLength != 0) { if (_nextInputSegment.IsCompleted) { CompleteRead(); } else { _nextInputSegment.OnCompleted(completeReadDelegate); } } else { Dispose(); } }
int GetNewSegment() { _nextInputSegment.GetResult(); _currentContentLength = _nextInputSegment.CurrentContentLength; if (disposing || _currentContentLength == 0) { _nextInputSegment.Dispose(); _currentInputSegment.Dispose(); toCopy = 0; return(0); } else { _bytesReadInCurrentSegment = 0; _nextInputSegment = _socket.BeginReceive(Interlocked.Exchange(ref _currentInputSegment, _nextInputSegment)); return(CompleteRead()); } }
private int GetNewSegment() { var tmp = _currentInputSegment; _nextInputSegment.GetResult(); _currentInputSegment = _nextInputSegment; _bytesReadInCurrentSegment = 0; _currentContentLength = _currentInputSegment.CurrentContentLength; if (_currentContentLength == 0) { _currentInputSegment.Dispose(); tmp.Dispose(); return 0; } else { _nextInputSegment = tmp; _socket.BeginReceive(_nextInputSegment); return CompleteRead(); } }
void CompleteRead() { var tmp = _currentInputSegment; _currentInputSegment = _nextInputSegment; _currentInputSegment.GetResult(); _nextInputSegment = tmp; if (_currentInputSegment.CurrentContentLength != 0) _socket.BeginReceive(_nextInputSegment); OnIncommingSegment(_currentInputSegment); if (_currentInputSegment.CurrentContentLength != 0) { if (_nextInputSegment.IsCompleted) CompleteRead(); else _nextInputSegment.OnCompleted(completeReadDelegate); } else { Dispose(); } }