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;
90 ASPOSECPP_SHARED_API
void SetLength(int64_t value)
override;
94 ASPOSECPP_SHARED_API int32_t
Read(
const System::Details::ArrayView<uint8_t>& buffer, int32_t offset, int32_t count)
override;
96 ASPOSECPP_SHARED_API
void Write(
const System::Details::ArrayView<uint8_t>& buffer, int32_t offset, int32_t count)
override;
101 static ASPOSECPP_SHARED_API
int FlavorToWinBits(ZlibStreamFlavor flavor);
106 ZlibCodec::Ptr m_codec;
108 Stream::Ptr m_stream;
110 CompressionMode m_mode;
114 ZlibStreamFlavor m_flavor;
118 FlushType m_flushType;
120 CompressionStrategy m_strategy;
130 ASPOSECPP_SHARED_API
bool IsCompress()
const;
154 virtual void OnUpdateCodec(
const ZlibCodec::Ptr& current_codec,
const ZlibCodec::Ptr& new_codec)
156 ASPOSE_UNUSED(current_codec);
157 ASPOSE_UNUSED(new_codec);
166 void SoftFinish() const ;
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
String class used across the library. Is a substitute for C# System.String when translating code....
Definition: string.h:122
@ Flush
Terminate immadiately.
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.