private bool CopyBytes(ISocketBuffer e)
{
if (_bytesLeftInSocketBuffer == 0)
return false;
if (_bytesLeftForCurrentState > 0)
{
var toCopy = Math.Min(_bytesLeftForCurrentState, _bytesLeftInSocketBuffer);
Buffer.BlockCopy(e.Buffer, _socketBufferOffset, _header, _headerOffset, toCopy);
_headerOffset += toCopy;
_bytesLeftForCurrentState -= toCopy;
_bytesLeftInSocketBuffer -= toCopy;
_socketBufferOffset += toCopy;
}
return _bytesLeftForCurrentState == 0;
}