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

◆ ConvertNativeBuffer()

ArraySegment< byte > System.Net.WebSockets.WebSocketBuffer.ConvertNativeBuffer ( WebSocketProtocolComponent::Action action,
global::Interop::WebSocket::Buffer buffer,
WebSocketProtocolComponent::BufferType bufferType )
inlinepackage

Definition at line 258 of file WebSocketBuffer.cs.

259 {
261 UnwrapWebSocketBuffer(buffer, bufferType, out var bufferData, out var bufferLength);
262 if (bufferData == IntPtr.Zero)
263 {
264 return ArraySegment<byte>.Empty;
265 }
266 if (IsNativeBuffer(bufferData, bufferLength))
267 {
268 return new ArraySegment<byte>(_internalBuffer.Array, GetOffset(bufferData), (int)bufferLength);
269 }
270 throw new AccessViolationException();
271 }
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)

References System.Net.WebSockets.WebSocketBuffer._internalBuffer, System.ArraySegment< T >.Array, System.buffer, System.ArraySegment< T >.Empty, System.Net.WebSockets.WebSocketBuffer.GetOffset(), System.Net.WebSockets.WebSocketBuffer.IsNativeBuffer(), System.Net.WebSockets.WebSocketBuffer.ThrowIfDisposed(), System.Net.WebSockets.WebSocketBuffer.UnwrapWebSocketBuffer(), and System.IntPtr.Zero.

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