Botan: src/filters/zlib/zlib.h Source File

Botan 1.10.17

zlib.h
Go to the documentation of this file.
1 /*
2 * Zlib Compressor
3 * (C) 2001 Peter J Jones
4 * 2001-2007 Jack Lloyd
5 *
6 * Distributed under the terms of the Botan license
7 */
8
9 #ifndef BOTAN_ZLIB_H__
10 #define BOTAN_ZLIB_H__
11
12 #include <botan/filter.h>
13
14 namespace Botan {
15
16 /**
17 * Zlib Compression Filter
18 */
19 class BOTAN_DLL Zlib_Compression : public Filter
20 {
21 public:
22 std::string name() const { return "Zlib_Compression"; }
23
24 void write(const byte input[], size_t length);
25 void start_msg();
26 void end_msg();
27
28 /**
29 * Flush the compressor
30 */
31 void flush();
32
33 /**
34 @param level how much effort to use on compressing (0 to 9);
35 higher levels are slower but tend to give better compression
36 */
37 Zlib_Compression(size_t level = 6);
38
39 ~Zlib_Compression() { clear(); }
40 private:
41 void clear();
42 const size_t level;
43 SecureVector<byte> buffer;
44 class Zlib_Stream* zlib;
45 };
46
47 /**
48 * Zlib Decompression Filter
49 */
50 class BOTAN_DLL Zlib_Decompression : public Filter
51 {
52 public:
53 std::string name() const { return "Zlib_Decompression"; }
54
55 void write(const byte input[], size_t length);
56 void start_msg();
57 void end_msg();
58
59 Zlib_Decompression();
60 ~Zlib_Decompression() { clear(); }
61 private:
62 void clear();
63 SecureVector<byte> buffer;
64 class Zlib_Stream* zlib;
65 bool no_writes;
66 };
67
68 }
69
70 #endif
Botan::Zlib_Compression
Definition: zlib.h:19
Botan::Zlib_Decompression
Definition: zlib.h:50
Botan::Zlib_Compression::~Zlib_Compression
~Zlib_Compression()
Definition: zlib.h:39
Botan::byte
unsigned char byte
Definition: types.h:22
Botan::Filter
Definition: filter.h:19
Botan::Zlib_Decompression::name
std::string name() const
Definition: zlib.h:53
Botan
Definition: algo_base.h:14
Botan::SecureVector< byte >
Botan::Zlib_Decompression::~Zlib_Decompression
~Zlib_Decompression()
Definition: zlib.h:60
Botan::Zlib_Compression::name
std::string name() const
Definition: zlib.h:22