System.Net.WebSockets.WebSocketBuffer.BufferPayload C# (CSharp) Method

BufferPayload() private method

private BufferPayload ( ArraySegment payload, int unconsumedDataOffset, WebSocketMessageType messageType, bool endOfMessage ) : void
payload ArraySegment
unconsumedDataOffset int
messageType WebSocketMessageType
endOfMessage bool
return void
        internal void BufferPayload(ArraySegment<byte> payload,
            int unconsumedDataOffset,
            WebSocketMessageType messageType,
            bool endOfMessage)
        {
            ThrowIfDisposed();
            int bytesBuffered = payload.Count - unconsumedDataOffset;

            Debug.Assert(_payloadOffset == 0,
                "'m_PayloadOffset' MUST be '0' at this point.");
            Debug.Assert(_bufferedPayloadReceiveResult == null || _bufferedPayloadReceiveResult.Count == 0,
                "'m_BufferedPayloadReceiveResult.Count' MUST be '0' at this point.");

            Buffer.BlockCopy(payload.Array,
                payload.Offset + unconsumedDataOffset,
                _payloadBuffer.Array,
                _payloadBuffer.Offset,
                bytesBuffered);

            _bufferedPayloadReceiveResult =
                new WebSocketReceiveResult(bytesBuffered, messageType, endOfMessage);

            this.ValidateBufferedPayload();
        }