4#include <system/exceptions.h>
5#include <system/io/stream.h>
6#include <system/io/compression/compression_level.h>
7#include <system/io/compression/compression_mode.h>
11namespace Aspose {
namespace Brotli {
17 RTTI_INFO(Aspose::Brotli::BrotliStream, ::System::BaseTypesInfo<System::IO::Stream>);
39 System::IO::Compression::CompressionMode mode);
45 System::IO::Compression::CompressionMode mode,
bool leaveOpen);
58 System::IO::Compression::CompressionMode mode,
62 ASPOSECPP_SHARED_API ~BrotliStream();
75 ASPOSECPP_SHARED_API int32_t
Read(
const System::Details::ArrayView<uint8_t>& buffer, int32_t offset, int32_t count)
override;
85 ASPOSECPP_SHARED_API
void Write(
const System::Details::ArrayView<uint8_t>& buffer, int32_t offset, int32_t count)
override;
93 ASPOSECPP_SHARED_API
void SetLength(int64_t value)
override;
95 ASPOSECPP_SHARED_API
void Flush()
override;
102 ASPOSECPP_SHARED_API
bool get_CanSeek()
const override;
105 ASPOSECPP_SHARED_API
bool get_CanRead()
const override;
108 ASPOSECPP_SHARED_API
bool get_CanWrite()
const override;
111 ASPOSECPP_SHARED_API
void set_Position(int64_t value)
override;
114 ASPOSECPP_SHARED_API int64_t get_Position()
const override;
117 ASPOSECPP_SHARED_API int64_t get_Length()
const override;
120 ASPOSECPP_SHARED_API
void SetQuality(
int quality);
123 ASPOSECPP_SHARED_API
void SetMode(
int mode);
126 ASPOSECPP_SHARED_API
void SetWindow(
int windowSize);
128 ASPOSECPP_SHARED_API
void Close()
override;
131 Stream::Ptr m_stream;
132 System::IO::Compression::CompressionMode m_mode;
135 int m_bufferOffset = 0;
136 int m_bufferCount = 0;
139 int m_lastDecoderState;
140 std::unique_ptr<void, std::function<
const void(
void*)>> m_encoderState;
141 std::unique_ptr<void, std::function<
const void(
void*)>> m_decoderState;
143 void Dispose(
bool disposing)
override;
144 void EnsureNotDisposed();
145 void ValidateParameters(System::Details::ArrayView<uint8_t> buffer,
int offset,
int count);
146 void FlushCompress(
bool finish);
148 void WriteCore(System::Details::ArrayView<uint8_t> buffer,
int offset,
int count,
int operation);
A base class for a variety of stream implementations. Objects of this class should only be allocated ...
Definition: stream.h:24
Pointer class to wrap types being allocated on heap. Use it to manage memory for classes inheriting O...
Definition: smart_ptr.h:180
@ Flush
Terminate immadiately.
Aspose::Brotli::BrotliStream BrotliStream
An alias for Aspose::Brotli::BrotliStream.
Definition: brotli_stream.h:9
CompressionLevel
Specifies values that indicate whether a compression operation emphasizes speed or compression size.
Definition: compression_level.h:8
SeekOrigin
Specifies the reference position in the stream relative to which the position to seek to is specified...
Definition: seekorigin.h:11
@ Write
Stream is for writing only.
@ Read
Stream is for reading only.