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

◆ Flush()

override void System.IO.Compression.BrotliStream.Flush ( )
inline

Definition at line 195 of file BrotliStream.cs.

196 {
198 if (_mode != CompressionMode.Compress || _encoder._state == null || _encoder._state.IsClosed)
199 {
200 return;
201 }
202 OperationStatus operationStatus = OperationStatus.DestinationTooSmall;
203 Span<byte> destination = new Span<byte>(_buffer);
204 while (operationStatus == OperationStatus.DestinationTooSmall)
205 {
206 operationStatus = _encoder.Flush(destination, out var bytesWritten);
207 if (operationStatus == OperationStatus.InvalidData)
208 {
209 throw new InvalidDataException(System.SR.BrotliStream_Compress_InvalidData);
210 }
211 if (bytesWritten > 0)
212 {
213 _stream.Write(destination.Slice(0, bytesWritten));
214 }
215 }
216 _stream.Flush();
217 }
readonly CompressionMode _mode
void Write(byte[] buffer, int offset, int count)
static string BrotliStream_Compress_InvalidData
Definition SR.cs:40
Definition SR.cs:7
OperationStatus Flush(Memory< byte > destination, out int bytesWritten)
SafeBrotliEncoderHandle _state

References System.IO.Compression.BrotliStream._buffer, System.IO.Compression.BrotliStream._encoder, System.IO.Compression.BrotliStream._mode, System.IO.Compression.BrotliEncoder._state, System.IO.Compression.BrotliStream._stream, System.SR.BrotliStream_Compress_InvalidData, System.destination, System.IO.Compression.BrotliStream.EnsureNotDisposed(), System.IO.Stream.Flush(), System.IO.Compression.BrotliEncoder.Flush(), and System.IO.Stream.Write().