/// <summary> /// Processes the request data. /// </summary> /// <param name="readBuffer">The read buffer.</param> /// <param name="offset">The offset.</param> /// <param name="length">The length.</param> /// <param name="toBeCopied">if set to <c>true</c> [to be copied].</param> /// <returns> /// return offset delta of next receiving buffer /// </returns> int IAppSession.ProcessRequest(byte[] readBuffer, int offset, int length, bool toBeCopied) { int rest, offsetDelta; while (true) { //var requestInfo = FilterRequest(readBuffer, offset, length, toBeCopied, out rest, out offsetDelta); if (requestInfo != null) { try { AppServer.ExecuteCommand(this, requestInfo); } catch (Exception e) { HandleException(e); } } if (rest <= 0) { return(offsetDelta); } //Still have data has not been processed offset = offset + length - rest; length = rest; } }