galaxy 1.0.0
Real-Time C++23 Game Programming Framework. Built on data-driven design principles and agile software engineering.
Loading...
Searching...
No Matches
ZLib.hpp
Go to the documentation of this file.
1
7
8#ifndef GALAXY_MATH_ZLIB_HPP_
9#define GALAXY_MATH_ZLIB_HPP_
10
11#define MINIZ_HEADER_FILE_ONLY
12#include <miniz.h>
13
15
16namespace galaxy
17{
18 namespace math
19 {
25 class ZLib final
26 {
27 public:
31 enum class Mode : int
32 {
36 COMPRESS = 0,
37
41 DECOMPRESS = 1
42 };
43
49 ZLib(const Mode mode);
50
54 ~ZLib();
55
63 [[nodiscard]]
64 std::string compressor(const std::string& input);
65
71 [[nodiscard]]
72 std::string finish();
73
81 [[nodiscard]]
82 std::string decompressor(const std::string& input);
83
84 private:
89
93 z_stream m_stream;
94
99
104
109 };
110
118 [[nodiscard]]
119 std::string encode_zlib(const std::string& input);
120
128 [[nodiscard]]
129 std::string decode_zlib(const std::string& input);
130 } // namespace math
131} // namespace galaxy
132
133#endif
#define GALAXY_ZLIB_COMPLETE_CHUNK
ZLib inflate/deflate chunk size.
Definition Settings.hpp:280
Compressor and Decompressor.
Definition ZLib.hpp:26
Mode m_mode
ZLib mode.
Definition ZLib.hpp:88
z_stream m_stream
Stream object.
Definition ZLib.hpp:93
ZLib(const Mode mode)
Constructor.
Definition ZLib.cpp:26
std::string decompressor(const std::string &input)
Decompresses a zlib string.
Definition ZLib.cpp:184
std::string compressor(const std::string &input)
Compresses string.
Definition ZLib.cpp:84
std::string finish()
Completes the compression.
Definition ZLib.cpp:138
char m_out[GALAXY_ZLIB_COMPLETE_CHUNK]
Output buffer.
Definition ZLib.hpp:108
bool m_finished
Has the compression finished.
Definition ZLib.hpp:98
Mode
ZLib mode to start in.
Definition ZLib.hpp:32
@ COMPRESS
ZLib deflation.
@ DECOMPRESS
ZLib inflation.
char m_in[GALAXY_ZLIB_COMPLETE_CHUNK]
Input buffer.
Definition ZLib.hpp:103
~ZLib()
Destructor.
Definition ZLib.cpp:65
std::string encode_zlib(const std::string &input)
Compresses string into ZLib.
Definition ZLib.cpp:234
std::string decode_zlib(const std::string &input)
Decompresses string into ZLib.
Definition ZLib.cpp:276
Timer.hpp galaxy.
Definition Async.hpp:17