Botan
1.11.15
|
00001 /* 00002 * Zlib Compressor 00003 * (C) 2001 Peter J Jones 00004 * 2001-2007,2014 Jack Lloyd 00005 * 00006 * Botan is released under the Simplified BSD License (see license.txt) 00007 */ 00008 00009 #ifndef BOTAN_ZLIB_H__ 00010 #define BOTAN_ZLIB_H__ 00011 00012 #include <botan/compression.h> 00013 00014 namespace Botan { 00015 00016 /** 00017 * Zlib Compression 00018 */ 00019 class BOTAN_DLL Zlib_Compression : public Stream_Compression 00020 { 00021 public: 00022 /** 00023 * @param level how much effort to use on compressing (0 to 9); 00024 * higher levels are slower but tend to give better 00025 * compression 00026 */ 00027 00028 Zlib_Compression(size_t level = 6) : m_level(level) {} 00029 00030 std::string name() const override { return "Zlib_Compression"; } 00031 00032 private: 00033 Compression_Stream* make_stream() const; 00034 00035 const size_t m_level; 00036 }; 00037 00038 /** 00039 * Zlib Decompression 00040 */ 00041 class BOTAN_DLL Zlib_Decompression : public Stream_Decompression 00042 { 00043 public: 00044 std::string name() const override { return "Zlib_Decompression"; } 00045 00046 private: 00047 Compression_Stream* make_stream() const; 00048 }; 00049 00050 /** 00051 * Deflate Compression 00052 */ 00053 class BOTAN_DLL Deflate_Compression : public Stream_Compression 00054 { 00055 public: 00056 /** 00057 * @param level how much effort to use on compressing (0 to 9); 00058 * higher levels are slower but tend to give better 00059 * compression 00060 */ 00061 Deflate_Compression(size_t level = 6) : m_level(level) {} 00062 00063 std::string name() const override { return "Deflate_Compression"; } 00064 00065 private: 00066 Compression_Stream* make_stream() const; 00067 00068 const size_t m_level; 00069 }; 00070 00071 /** 00072 * Deflate Decompression 00073 */ 00074 class BOTAN_DLL Deflate_Decompression : public Stream_Decompression 00075 { 00076 public: 00077 std::string name() const override { return "Deflate_Decompression"; } 00078 00079 private: 00080 Compression_Stream* make_stream() const; 00081 }; 00082 00083 /** 00084 * Gzip Compression 00085 */ 00086 class BOTAN_DLL Gzip_Compression : public Stream_Compression 00087 { 00088 public: 00089 /** 00090 * @param level how much effort to use on compressing (0 to 9); 00091 * higher levels are slower but tend to give better 00092 * compression 00093 */ 00094 Gzip_Compression(size_t level = 6, byte os_code = 255) : 00095 m_level(level), m_os_code(os_code) {} 00096 00097 std::string name() const override { return "Gzip_Compression"; } 00098 00099 private: 00100 Compression_Stream* make_stream() const; 00101 00102 const size_t m_level; 00103 const byte m_os_code; 00104 }; 00105 00106 /** 00107 * Gzip Decompression 00108 */ 00109 class BOTAN_DLL Gzip_Decompression : public Stream_Compression 00110 { 00111 public: 00112 std::string name() const override { return "Gzip_Decompression"; } 00113 00114 private: 00115 Compression_Stream* make_stream() const; 00116 }; 00117 00118 } 00119 00120 #endif