4#include <system/io/stream.h>
5#include <system/io/seekorigin.h>
8#include <system/io/compression/details/zlib_codec.h>
9#include <system/io/compression/details/zlib_constants.h>
10#include <system/io/compression/details/crc32.h>
12namespace Aspose {
namespace Zip {
18 RTTI_INFO(Aspose::Zip::ZlibBaseStream, ::System::BaseTypesInfo<System::IO::Stream>);
24 ZlibBaseStream() =
delete;
25 ZlibBaseStream(
const ZlibBaseStream&) =
delete;
35 CompressionLevel level, ZlibStreamFlavor flavor,
bool leaveOpen,
39 virtual ASPOSECPP_SHARED_API ~ZlibBaseStream();
43 virtual ASPOSECPP_SHARED_API FlushType get_FlushMode()
const;
46 virtual ASPOSECPP_SHARED_API
void set_FlushMode(FlushType value);
50 virtual ASPOSECPP_SHARED_API
int get_BufferSize();
53 virtual ASPOSECPP_SHARED_API
void set_BufferSize(
int value);
57 virtual ASPOSECPP_SHARED_API CompressionStrategy get_Strategy()
const;
60 virtual ASPOSECPP_SHARED_API
void set_Strategy(CompressionStrategy value);
64 virtual ASPOSECPP_SHARED_API int64_t get_TotalIn();
67 virtual ASPOSECPP_SHARED_API int64_t get_TotalOut();
70 ASPOSECPP_SHARED_API
bool get_CanRead()
const override;
72 ASPOSECPP_SHARED_API
bool get_CanSeek()
const override;
74 ASPOSECPP_SHARED_API
bool get_CanWrite()
const override;
76 ASPOSECPP_SHARED_API int64_t get_Length()
const override;
78 ASPOSECPP_SHARED_API int64_t get_Position()
const override;
80 ASPOSECPP_SHARED_API
void set_Position(int64_t value)
override;
82 ASPOSECPP_SHARED_API
void Close()
override;
84 ASPOSECPP_SHARED_API
void Flush()
override;
92 ASPOSECPP_SHARED_API
void SetLength(int64_t value)
override;
98 ASPOSECPP_SHARED_API int32_t
Read(
const System::Details::ArrayView<uint8_t>& buffer, int32_t offset,
99 int32_t count)
override;
101 ASPOSECPP_SHARED_API
void Write(
const System::Details::ArrayView<uint8_t>& buffer, int32_t offset, int32_t count)
override;
106 static ASPOSECPP_SHARED_API
int FlavorToWinBits(ZlibStreamFlavor flavor);
111 ZlibCodec::Ptr m_codec;
113 Stream::Ptr m_stream;
115 CompressionMode m_mode;
117 CompressionLevel m_level;
119 ZlibStreamFlavor m_flavor;
123 FlushType m_flushType;
125 CompressionStrategy m_strategy;
135 ASPOSECPP_SHARED_API
bool IsCompress()
const;
159 virtual void OnUpdateCodec(
const ZlibCodec::Ptr& current_codec,
const ZlibCodec::Ptr& new_codec)
161 ASPOSE_UNUSED(current_codec);
162 ASPOSE_UNUSED(new_codec);
171 void SoftFinish() const ;
A base class for a variety of stream implementations. Objects of this class should only be allocated ...
Definition: stream.h:26
Forward to use within Span class.
Definition: span.h:404
Pointer class to wrap types being allocated on heap. Use it to manage memory for classes inheriting O...
Definition: smart_ptr.h:180
Represents a contiguous region of arbitrary memory similar to C++20's std::span.
Definition: span.h:364
String class used across the library. Is a substitute for C# System.String when translating code....
Definition: string.h:125
@ Flush
Terminate immadiately.
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.