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

◆ DeflatePrivate()

void System.Net.WebSockets.Compression.WebSocketDeflater.DeflatePrivate ( ReadOnlySpan< byte > payload,
Span< byte > output,
bool endOfMessage,
out int consumed,
out int written,
out bool needsMoreOutput )
inlineprivate

Definition at line 63 of file WebSocketDeflater.cs.

64 {
65 if (_stream == null)
66 {
68 }
69 if (payload.Length == 0)
70 {
71 consumed = 0;
72 written = 0;
73 }
74 else
75 {
76 UnsafeDeflate(payload, output, out consumed, out written, out needsMoreOutput);
77 if (needsMoreOutput)
78 {
79 return;
80 }
81 }
82 written += UnsafeFlush(output.Slice(written), out needsMoreOutput);
83 if (!needsMoreOutput)
84 {
85 if (endOfMessage)
86 {
87 written -= 4;
88 }
89 if (endOfMessage && !_persisted)
90 {
91 _stream.Dispose();
92 _stream = null;
93 }
94 }
95 }
unsafe void UnsafeDeflate(ReadOnlySpan< byte > input, Span< byte > output, out int consumed, out int written, out bool needsMoreBuffer)
unsafe int UnsafeFlush(Span< byte > output, out bool needsMoreBuffer)
Span< T > Slice(int start)
Definition Span.cs:271

References System.Net.WebSockets.Compression.WebSocketDeflater._persisted, System.Net.WebSockets.Compression.WebSocketDeflater._stream, System.Net.WebSockets.Compression.WebSocketDeflater.CreateDeflater(), System.ReadOnlySpan< T >.Length, System.Span< T >.Slice(), System.Net.WebSockets.Compression.WebSocketDeflater.UnsafeDeflate(), and System.Net.WebSockets.Compression.WebSocketDeflater.UnsafeFlush().

Referenced by System.Net.WebSockets.Compression.WebSocketDeflater.Deflate().