zlib_compression.h Source File - ClanLib SDK
Description: zlib_compression.h Source File

zlib_compression.h
1/*
2** ClanLib SDK
3** Copyright (c) 1997-2020 The ClanLib Team
4**
5** This software is provided 'as-is', without any express or implied
6** warranty. In no event will the authors be held liable for any damages
7** arising from the use of this software.
8**
9** Permission is granted to anyone to use this software for any purpose,
10** including commercial applications, and to alter it and redistribute it
11** freely, subject to the following restrictions:
12**
13** 1. The origin of this software must not be misrepresented; you must not
14** claim that you wrote the original software. If you use this software
15** in a product, an acknowledgment in the product documentation would be
16** appreciated but is not required.
17** 2. Altered source versions must be plainly marked as such, and must not be
18** misrepresented as being the original software.
19** 3. This notice may not be removed or altered from any source distribution.
20**
21** Note: Some of the libraries ClanLib may link to may have additional
22** requirements or restrictions.
23**
24** File Author(s):
25**
26** Magnus Norddahl
27*/
28
29#pragma once
30
31namespace clan
32{
35
36 class DataBuffer;
37
39 class ZLibCompression
40 {
41 public:
42 enum CompressionMode
43 {
44 default_strategy,
45 filtered,
46 huffman_only,
47 rle,
48 fixed
49 };
50
51 // \brief Compress data
52 // \param data Data to compress
53 // \param raw Skips header if true
54 // \param compression_level Compression level in range 0-9. 0 = no compression, 1 = best speed, 6 = default, 9 = best compression.
55 // \param mode Compression strategy
56 static DataBuffer compress(const DataBuffer &data, bool raw = true, int compression_level = 6, CompressionMode mode = default_strategy);
57
58 // \brief Decompress data
59 // \param data Data to compress
60 // \param raw Skips header if true
61 static DataBuffer decompress(const DataBuffer &data, bool raw = true);
62 };
63
65}
clan::DataBuffer
General purpose data buffer.
Definition databuffer.h:42
clan::ZLibCompression
Deflate compressor.
Definition zlib_compression.h:40
clan::ZLibCompression::decompress
static DataBuffer decompress(const DataBuffer &data, bool raw=true)
clan::ZLibCompression::CompressionMode
CompressionMode
Definition zlib_compression.h:43
clan::ZLibCompression::filtered
@ filtered
Definition zlib_compression.h:45
clan::ZLibCompression::fixed
@ fixed
Definition zlib_compression.h:48
clan::ZLibCompression::huffman_only
@ huffman_only
Definition zlib_compression.h:46
clan::ZLibCompression::default_strategy
@ default_strategy
Definition zlib_compression.h:44
clan::ZLibCompression::rle
@ rle
Definition zlib_compression.h:47
clan::ZLibCompression::compress
static DataBuffer compress(const DataBuffer &data, bool raw=true, int compression_level=6, CompressionMode mode=default_strategy)
clan
Definition clanapp.h:36