CodePorting.Translator Cs2Cpp
CodePorting.Translator.Cs2Cpp.Framework
zlib_codec.h
1
2#pragma once
3
4#include <system/string.h>
5#include <system/array.h>
6#include <system/date_time.h>
7
8#include <system/io/compression/details/zlib_compression_flags.h>
9#include <system/io/compression/details/flush_type.h>
10
11namespace Aspose { namespace Zip {
12
13class ZlibBaseStream;
14
16class ASPOSECPP_SHARED_CLASS ZlibCodec final : public ::System::Object
17{
19 RTTI_INFO(Aspose::Zip::ZlibCodec, ::System::BaseTypesInfo<::System::Object>);
20
21 friend class ZlibBaseStream;
22
23public:
26
28 CompressionLevel CompressLevel;
30 int WindowBits;
32 CompressionStrategy Strategy;
33
35 ASPOSECPP_SHARED_API ZlibCodec();
38 ASPOSECPP_SHARED_API ZlibCodec(CompressionMode mode);
39
40 // properties
41
44 ASPOSECPP_SHARED_API System::ByteArrayPtr get_InputBuffer() const;
47 ASPOSECPP_SHARED_API void set_InputBuffer(const System::ByteArrayPtr& value);
48
51 ASPOSECPP_SHARED_API System::ByteArrayPtr get_OutputBuffer() const;
54 ASPOSECPP_SHARED_API void set_OutputBuffer(const System::ByteArrayPtr& value);
55
58 ASPOSECPP_SHARED_API int get_NextIn() const;
61 ASPOSECPP_SHARED_API void set_NextIn(int value);
62
65 ASPOSECPP_SHARED_API int get_AvailableBytesIn() const;
68 ASPOSECPP_SHARED_API void set_AvailableBytesIn(int value);
69
72 ASPOSECPP_SHARED_API int64_t get_TotalBytesIn() const;
73
76 ASPOSECPP_SHARED_API int get_NextOut() const;
79 ASPOSECPP_SHARED_API void set_NextOut(int value);
80
83 ASPOSECPP_SHARED_API int get_AvailableBytesOut() const;
86 ASPOSECPP_SHARED_API void set_AvailableBytesOut(int value);
87
90 ASPOSECPP_SHARED_API int64_t get_TotalBytesOut() const;
91
94 ASPOSECPP_SHARED_API System::String get_Message() const;
95
98 ASPOSECPP_SHARED_API int64_t get_Adler32() const;
99
100 // GZip header
101
104 ASPOSECPP_SHARED_API System::String get_GzComment() const;
107 ASPOSECPP_SHARED_API System::String get_GzFileName() const;
108
111 ASPOSECPP_SHARED_API void set_GzComment(const System::String& value);
114 ASPOSECPP_SHARED_API void set_GzFileName(const System::String& value);
115
118 ASPOSECPP_SHARED_API System::DateTime get_GzTime() const;
121 ASPOSECPP_SHARED_API void set_GzTime(const System::DateTime& value);
122
123 // methods
124
125#if 0
126 ASPOSECPP_SHARED_API int InitializeInflate(bool expectRfc1950Header = true);
127 ASPOSECPP_SHARED_API int InitializeInflate(int windowBits, bool expectRfc1950Header = true);
128#else
130 ASPOSECPP_SHARED_API int InitializeInflate();
133 ASPOSECPP_SHARED_API int InitializeInflate(int windowBits);
134#endif
137 ASPOSECPP_SHARED_API int Inflate(FlushType flush);
139 ASPOSECPP_SHARED_API int EndInflate();
141 ASPOSECPP_SHARED_API int SyncInflate();
142
144 ASPOSECPP_SHARED_API int InitializeDeflate();
147 ASPOSECPP_SHARED_API int InitializeDeflate(CompressionLevel level);
148#if 0
149 ASPOSECPP_SHARED_API int InitializeDeflate(CompressionLevel level, bool wantRfc1950Header);
150 ASPOSECPP_SHARED_API int InitializeDeflate(CompressionLevel level, int windowBits, bool wantRfc1950Header = true);
151#else
155 ASPOSECPP_SHARED_API int InitializeDeflate(CompressionLevel level, int windowBits);
156#endif
159 ASPOSECPP_SHARED_API int Deflate(FlushType flush);
161 ASPOSECPP_SHARED_API int EndDeflate();
163 ASPOSECPP_SHARED_API void ResetDeflate();
167 ASPOSECPP_SHARED_API int SetDeflateParams(CompressionLevel level, CompressionStrategy strategy);
170 ASPOSECPP_SHARED_API int SetDictionary(const System::ByteArrayPtr& dictionary);
171
172private:
174 enum class ZType { None, Inflate, Deflate };
176 ZType m_strmType;
178 System::ByteArrayPtr m_inputBuffer;
180 System::ByteArrayPtr m_outputBuffer;
182 std::shared_ptr<void> m_zstrm;
184 std::shared_ptr<void> m_gzhdr;
186 static const size_t s_comment_read_max = 1024;
188 std::vector<uint8_t> m_gzComment;
190 static const size_t s_name_read_max = 1024;
192 std::vector<uint8_t> m_gzName;
194 time_t m_gzTime;
195};
196
197}} // namespace Aspose::Zip
Represents a specific date and time value on the time continuum. This type should be allocated on sta...
Definition: date_time.h:50
Base class that enables using methods available for System.Object class in C#. All non-trivial classe...
Definition: object.h:62
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
CompressionLevel
Specifies values that indicate whether a compression operation emphasizes speed or compression size.
Definition: compression_level.h:8
@ Deflate
The deflate compression-decompression algorithm.