System.Net.WebSockets.WebSocketBase.WebSocketOperation.CloseOutputOperation.CreateBuffer C# (CSharp) Method

CreateBuffer() protected method

protected CreateBuffer ( Nullable buffer ) : Nullable
buffer Nullable
return Nullable
                protected override Nullable<Interop.WebSocket.Buffer> CreateBuffer(Nullable<ArraySegment<byte>> buffer)
                {
                    Debug.Assert(buffer == null, "'buffer' MUST BE NULL.");
                    _webSocket.ThrowIfDisposed();
                    _webSocket.ThrowIfPendingException();

                    if (CloseStatus == WebSocketCloseStatus.Empty)
                    {
                        return null;
                    }

                    Interop.WebSocket.Buffer payloadBuffer = new Interop.WebSocket.Buffer();
                    if (CloseReason != null)
                    {
                        byte[] blob = Encoding.UTF8.GetBytes(CloseReason);
                        Debug.Assert(blob.Length <= WebSocketValidate.MaxControlFramePayloadLength,
                            "The close reason is too long.");
                        ArraySegment<byte> closeBuffer = new ArraySegment<byte>(blob, 0, Math.Min(WebSocketValidate.MaxControlFramePayloadLength, blob.Length));
                        _webSocket._internalBuffer.PinSendBuffer(closeBuffer, out _BufferHasBeenPinned);
                        payloadBuffer.CloseStatus.ReasonData = _webSocket._internalBuffer.ConvertPinnedSendPayloadToNative(closeBuffer);
                        payloadBuffer.CloseStatus.ReasonLength = (uint)closeBuffer.Count;
                    }

                    payloadBuffer.CloseStatus.CloseStatus = (ushort)CloseStatus;
                    return payloadBuffer;
                }
            }
WebSocketBase.WebSocketOperation.CloseOutputOperation