Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ConvertCloseBuffer()

void System.Net.WebSockets.WebSocketBuffer.ConvertCloseBuffer ( WebSocketProtocolComponent::Action action,
global::Interop::WebSocket::Buffer buffer,
out WebSocketCloseStatus closeStatus,
out string reason )
inlinepackage

Definition at line 273 of file WebSocketBuffer.cs.

274 {
276 closeStatus = (WebSocketCloseStatus)buffer.CloseStatus.CloseStatus;
277 UnwrapWebSocketBuffer(buffer, WebSocketProtocolComponent.BufferType.Close, out var bufferData, out var bufferLength);
278 if (bufferData == IntPtr.Zero)
279 {
280 reason = null;
281 return;
282 }
283 if (IsNativeBuffer(bufferData, bufferLength))
284 {
285 ArraySegment<byte> arraySegment = new ArraySegment<byte>(_internalBuffer.Array, GetOffset(bufferData), (int)bufferLength);
286 reason = Encoding.UTF8.GetString(arraySegment.Array, arraySegment.Offset, arraySegment.Count);
287 return;
288 }
289 throw new AccessViolationException();
290 }
static void UnwrapWebSocketBuffer(global::Interop.WebSocket.Buffer buffer, WebSocketProtocolComponent.BufferType bufferType, out IntPtr bufferData, out uint bufferLength)
readonly ArraySegment< byte > _internalBuffer
bool IsNativeBuffer(IntPtr pBuffer, uint bufferSize)
static Encoding UTF8
Definition Encoding.cs:526

References System.Net.WebSockets.WebSocketBuffer._internalBuffer, System.ArraySegment< T >.Array, System.buffer, System.ArraySegment< T >.Count, System.Net.WebSockets.WebSocketBuffer.GetOffset(), System.Net.WebSockets.WebSocketBuffer.IsNativeBuffer(), System.ArraySegment< T >.Offset, System.Net.WebSockets.WebSocketBuffer.ThrowIfDisposed(), System.Net.WebSockets.WebSocketBuffer.UnwrapWebSocketBuffer(), System.Text.Encoding.UTF8, and System.IntPtr.Zero.

Referenced by System.Net.WebSockets.WebSocketBase.WebSocketOperation.ReceiveOperation.ProcessAction_IndicateReceiveComplete().