⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zdeflate_8h-source.html

📁 著名的密码库Crypto++的文档 C++语言的杰作。程序员必备。
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<a name="l00054"></a>00054 <span class="comment"></span><a name="l00055"></a><a class="code" href="class_deflator.html">00055</a> <span class="keyword">class </span><a class="code" href="class_deflator.html" title="DEFLATE (RFC 1951) compressor.">Deflator</a> : <span class="keyword">public</span> <a class="code" href="class_low_first_bit_writer.html" title="_">LowFirstBitWriter</a><a name="l00056"></a>00056 {<a name="l00057"></a>00057 <span class="keyword">public</span>:<a name="l00058"></a><a class="code" href="class_deflator.html#bf8d4e262511aa0fac24a2a5f808c6df81ef097154334c9425cc13d1da4b5e82">00058</a>         <span class="keyword">enum</span> {<a class="code" href="class_deflator.html#bf8d4e262511aa0fac24a2a5f808c6df81ef097154334c9425cc13d1da4b5e82">MIN_DEFLATE_LEVEL</a> = 0, <a class="code" href="class_deflator.html#bf8d4e262511aa0fac24a2a5f808c6df88190923f9a4afb1e3e43daa3aaf32c9">DEFAULT_DEFLATE_LEVEL</a> = 6, <a class="code" href="class_deflator.html#bf8d4e262511aa0fac24a2a5f808c6dfd15dc39a3f833cce997c3cade5f556ca">MAX_DEFLATE_LEVEL</a> = 9};<a name="l00059"></a><a class="code" href="class_deflator.html#650e1e1af3a80e1b042fe28ca427ff00dc9d5f12cda39d4a4303af54e21a65c8">00059</a>         <span class="keyword">enum</span> {<a class="code" href="class_deflator.html#650e1e1af3a80e1b042fe28ca427ff00dc9d5f12cda39d4a4303af54e21a65c8">MIN_LOG2_WINDOW_SIZE</a> = 9, <a class="code" href="class_deflator.html#650e1e1af3a80e1b042fe28ca427ff00255f7554f69a861bf69bf40c2ad79334">DEFAULT_LOG2_WINDOW_SIZE</a> = 15, <a class="code" href="class_deflator.html#650e1e1af3a80e1b042fe28ca427ff002ad5ee7b41a04c975a32e721641754d8">MAX_LOG2_WINDOW_SIZE</a> = 15};<span class="comment"></span><a name="l00060"></a>00060 <span class="comment">        /*! \note detectUncompressible makes it faster to process uncompressible files, but</span><a name="l00061"></a>00061 <span class="comment">                if a file has both compressible and uncompressible parts, it may fail to compress some of the</span><a name="l00062"></a>00062 <span class="comment">                compressible parts. */</span><a name="l00063"></a>00063         <a class="code" href="class_deflator.html#ee81a8ccc99647834b079bbcb70e4027">Deflator</a>(<a class="code" href="class_buffered_transformation.html" title="interface for buffered transformations">BufferedTransformation</a> *attachment=NULL, <span class="keywordtype">int</span> deflateLevel=<a class="code" href="class_deflator.html#bf8d4e262511aa0fac24a2a5f808c6df88190923f9a4afb1e3e43daa3aaf32c9">DEFAULT_DEFLATE_LEVEL</a>, <span class="keywordtype">int</span> log2WindowSize=<a class="code" href="class_deflator.html#650e1e1af3a80e1b042fe28ca427ff00255f7554f69a861bf69bf40c2ad79334">DEFAULT_LOG2_WINDOW_SIZE</a>, <span class="keywordtype">bool</span> detectUncompressible=<span class="keyword">true</span>);<span class="comment"></span><a name="l00064"></a>00064 <span class="comment">        //! possible parameter names: Log2WindowSize, DeflateLevel, DetectUncompressible</span><a name="l00065"></a>00065 <span class="comment"></span>        <a class="code" href="class_deflator.html#ee81a8ccc99647834b079bbcb70e4027">Deflator</a>(<span class="keyword">const</span> <a class="code" href="class_name_value_pairs.html" title="interface for retrieving values given their names">NameValuePairs</a> &amp;parameters, <a class="code" href="class_buffered_transformation.html" title="interface for buffered transformations">BufferedTransformation</a> *attachment=NULL);<a name="l00066"></a>00066 <span class="comment"></span><a name="l00067"></a>00067 <span class="comment">        //! this function can be used to set the deflate level in the middle of compression</span><a name="l00068"></a>00068 <span class="comment"></span>        <span class="keywordtype">void</span> <a class="code" href="class_deflator.html#5b19de812080b7b12d0a6cc974f60b33" title="this function can be used to set the deflate level in the middle of compression">SetDeflateLevel</a>(<span class="keywordtype">int</span> deflateLevel);<a name="l00069"></a><a class="code" href="class_deflator.html#d2ecf9c16317cef8b68fbbcca705e0a4">00069</a>         <span class="keywordtype">int</span> <a class="code" href="class_deflator.html#d2ecf9c16317cef8b68fbbcca705e0a4">GetDeflateLevel</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="class_deflator.html#028cf53ff50d3bdd7ce3b8823fb01036">m_deflateLevel</a>;}<a name="l00070"></a><a class="code" href="class_deflator.html#feb0772f4acedb703c1c794d238d6de2">00070</a>         <span class="keywordtype">int</span> <a class="code" href="class_deflator.html#feb0772f4acedb703c1c794d238d6de2">GetLog2WindowSize</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="class_deflator.html#844bd3068fb0eab4d8248a09dea9cbec">m_log2WindowSize</a>;}<a name="l00071"></a>00071 <a name="l00072"></a>00072         <span class="keywordtype">void</span> <a class="code" href="class_deflator.html#c9f545b8062a7e822e537364ef422111">IsolatedInitialize</a>(<span class="keyword">const</span> <a class="code" href="class_name_value_pairs.html" title="interface for retrieving values given their names">NameValuePairs</a> &amp;parameters);<a name="l00073"></a>00073         <span class="keywordtype">size_t</span> <a class="code" href="class_deflator.html#b3ba26f52807a9b5d4af6948d56cd4a9" title="input multiple bytes for blocking or non-blocking processing">Put2</a>(<span class="keyword">const</span> byte *inString, <span class="keywordtype">size_t</span> length, <span class="keywordtype">int</span> messageEnd, <span class="keywordtype">bool</span> blocking);<a name="l00074"></a>00074         <span class="keywordtype">bool</span> <a class="code" href="class_deflator.html#4337716743ff155dc5321843eda29d00">IsolatedFlush</a>(<span class="keywordtype">bool</span> hardFlush, <span class="keywordtype">bool</span> blocking);<a name="l00075"></a>00075 <a name="l00076"></a>00076 <span class="keyword">protected</span>:<a name="l00077"></a><a class="code" href="class_deflator.html#4d36fef18ebdbd5827fcb41ab4d8203a">00077</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_deflator.html#4d36fef18ebdbd5827fcb41ab4d8203a">WritePrestreamHeader</a>() {}<a name="l00078"></a><a class="code" href="class_deflator.html#f28ffbe1568d6b2b8d7f943eef0529e1">00078</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_deflator.html#f28ffbe1568d6b2b8d7f943eef0529e1">ProcessUncompressedData</a>(<span class="keyword">const</span> byte *<span class="keywordtype">string</span>, <span class="keywordtype">size_t</span> length) {}<a name="l00079"></a><a class="code" href="class_deflator.html#ba9b58b31fac7828e98d4e4d15972f17">00079</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_deflator.html#ba9b58b31fac7828e98d4e4d15972f17">WritePoststreamTail</a>() {}<a name="l00080"></a>00080 <a name="l00081"></a><a class="code" href="class_deflator.html#ac6abb58c77248380bcf0933bc2c4797400c5ce1fdb834fb5735bfc626f39ae7">00081</a>         <span class="keyword">enum</span> {<a class="code" href="class_deflator.html#ac6abb58c77248380bcf0933bc2c4797400c5ce1fdb834fb5735bfc626f39ae7">STORED</a> = 0, <a class="code" href="class_deflator.html#ac6abb58c77248380bcf0933bc2c47974bda508d65f67aa6a564bbf0b8118ca0">STATIC</a> = 1, <a class="code" href="class_deflator.html#ac6abb58c77248380bcf0933bc2c479703dff386cc15c90ac402b63f0f86499f">DYNAMIC</a> = 2};<a name="l00082"></a><a class="code" href="class_deflator.html#5d1d2b1a7c83fa2b2ebb2adeb646d4ba627d91626b89f0f830d8aaab84f7b5b0">00082</a>         <span class="keyword">enum</span> {<a class="code" href="class_deflator.html#5d1d2b1a7c83fa2b2ebb2adeb646d4ba627d91626b89f0f830d8aaab84f7b5b0">MIN_MATCH</a> = 3, <a class="code" href="class_deflator.html#5d1d2b1a7c83fa2b2ebb2adeb646d4ba76770cb68144334520c092799bbb212f">MAX_MATCH</a> = 258};<a name="l00083"></a>00083 <a name="l00084"></a>00084         <span class="keywordtype">void</span> <a class="code" href="class_deflator.html#f443cc93b1d40e7226d7b4002e2f3f5a">InitializeStaticEncoders</a>();<a name="l00085"></a>00085         <span class="keywordtype">void</span> <a class="code" href="class_deflator.html#7976eb754f823f093846a3ba3c0733d7">Reset</a>(<span class="keywordtype">bool</span> forceReset = <span class="keyword">false</span>);<a name="l00086"></a>00086         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_deflator.html#a041fc5f5426862e45b164fdceba84db">FillWindow</a>(<span class="keyword">const</span> byte *str, <span class="keywordtype">size_t</span> length);<a name="l00087"></a>00087         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_deflator.html#44c260b1a4ac0fa54e5e80c4df0ff121">ComputeHash</a>(<span class="keyword">const</span> byte *str) <span class="keyword">const</span>;<a name="l00088"></a>00088         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_deflator.html#f39e464efb6676829a3b9f3ea0c5f19c">LongestMatch</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> &amp;bestMatch) <span class="keyword">const</span>;<a name="l00089"></a>00089         <span class="keywordtype">void</span> <a class="code" href="class_deflator.html#ded37de66827ee6def1d3bb5a7c19315">InsertString</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> start);<a name="l00090"></a>00090         <span class="keywordtype">void</span> <a class="code" href="class_deflator.html#3002c3031d2432fa3d201caeec1a7f4b">ProcessBuffer</a>();<a name="l00091"></a>00091 <a name="l00092"></a>00092         <span class="keywordtype">void</span> <a class="code" href="class_deflator.html#0eb8a43b8797d2f21c48f666017924c3">LiteralByte</a>(byte b);<a name="l00093"></a>00093         <span class="keywordtype">void</span> <a class="code" href="class_deflator.html#5a5cb6258e2cfa731e47dfe33e2f9e4d">MatchFound</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> distance, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length);<a name="l00094"></a>00094         <span class="keywordtype">void</span> <a class="code" href="class_deflator.html#a4ff23fce8e43dfb33f8e3660ce2a654">EncodeBlock</a>(<span class="keywordtype">bool</span> eof, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> blockType);<a name="l00095"></a>00095         <span class="keywordtype">void</span> <a class="code" href="class_deflator.html#f5ef6c8383d58a61e383ddd03b29e8ce">EndBlock</a>(<span class="keywordtype">bool</span> eof);<a name="l00096"></a>00096 <a name="l00097"></a><a class="code" href="struct_deflator_1_1_encoded_match.html">00097</a>         <span class="keyword">struct </span><a class="code" href="struct_deflator_1_1_encoded_match.html">EncodedMatch</a><a name="l00098"></a>00098         {<a name="l00099"></a><a class="code" href="struct_deflator_1_1_encoded_match.html#f165e9e4f7e6c5d2bc8017632a1827b6">00099</a>                 <span class="keywordtype">unsigned</span> <a class="code" href="struct_deflator_1_1_encoded_match.html#f165e9e4f7e6c5d2bc8017632a1827b6">literalCode</a> : 9;<a name="l00100"></a><a class="code" href="struct_deflator_1_1_encoded_match.html#ac1d1b47dcc7ee6d977f27bd11d45c71">00100</a>                 <span class="keywordtype">unsigned</span> <a class="code" href="struct_deflator_1_1_encoded_match.html#ac1d1b47dcc7ee6d977f27bd11d45c71">literalExtra</a> : 5;<a name="l00101"></a><a class="code" href="struct_deflator_1_1_encoded_match.html#a57b98490bbb141b30670040e79ad42d">00101</a>                 <span class="keywordtype">unsigned</span> <a class="code" href="struct_deflator_1_1_encoded_match.html#a57b98490bbb141b30670040e79ad42d">distanceCode</a> : 5;<a name="l00102"></a><a class="code" href="struct_deflator_1_1_encoded_match.html#1b1c4075cefdd9cb79bd85ac7dc63aa9">00102</a>                 <span class="keywordtype">unsigned</span> <a class="code" href="struct_deflator_1_1_encoded_match.html#1b1c4075cefdd9cb79bd85ac7dc63aa9">distanceExtra</a> : 13;<a name="l00103"></a>00103         };<a name="l00104"></a>00104 <a name="l00105"></a><a class="code" href="class_deflator.html#844bd3068fb0eab4d8248a09dea9cbec">00105</a>         <span class="keywordtype">int</span> <a class="code" href="class_deflator.html#028cf53ff50d3bdd7ce3b8823fb01036">m_deflateLevel</a>, <a class="code" href="class_deflator.html#844bd3068fb0eab4d8248a09dea9cbec">m_log2WindowSize</a>, <a class="code" href="class_deflator.html#e1a3ffe221fd4460b6d8f477fb386029">m_compressibleDeflateLevel</a>;<a name="l00106"></a><a class="code" href="class_deflator.html#c03ff39f709115c8e8919da96ef7ac6f">00106</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_deflator.html#c03ff39f709115c8e8919da96ef7ac6f">m_detectSkip</a>, <a class="code" href="class_deflator.html#dacfebd48fd53d01b9961b3e05e27b0e">m_detectCount</a>;<a name="l00107"></a><a class="code" href="class_deflator.html#821630c70545472963ac78bda4b46ac1">00107</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_deflator.html#cbb3318729a2a96a2d957c36c7dcd158">DSIZE</a>, <a class="code" href="class_deflator.html#bc8dd3d3c28d9b188dd1c19510294a0b">DMASK</a>, <a class="code" href="class_deflator.html#c94920fbb6c4b08bafa4ec541b9f0239">HSIZE</a>, <a class="code" href="class_deflator.html#dc06bdafc7a354d1665bf141e3ddc9cc">HMASK</a>, <a class="code" href="class_deflator.html#d5abb84cfaeaa82079f4c98930ba69ce">GOOD_MATCH</a>, <a class="code" href="class_deflator.html#821630c70545472963ac78bda4b46ac1">MAX_LAZYLENGTH</a>, <a class="code" href="class_deflator.html#29f0111d74dfdcf365f84ff070714504">MAX_CHAIN_LENGTH</a>;<a name="l00108"></a><a class="code" href="class_deflator.html#5241d030b8b368014b1c04281bf87fc3">00108</a>         <span class="keywordtype">bool</span> <a class="code" href="class_deflator.html#061a05e91d67cdf0d326ccf870cf7ef1">m_headerWritten</a>, <a class="code" href="class_deflator.html#5241d030b8b368014b1c04281bf87fc3">m_matchAvailable</a>;<a name="l00109"></a><a class="code" href="class_deflator.html#42a99f00a21bdf38d9daa15dd2ec8a5d">00109</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_deflator.html#8e20cb9e5a29755b016386778221c825">m_dictionaryEnd</a>, <a class="code" href="class_deflator.html#42a99f00a21bdf38d9daa15dd2ec8a5d">m_stringStart</a>, <a class="code" href="class_deflator.html#e7b072afd802843284402d648e64412d">m_lookahead</a>, <a class="code" href="class_deflator.html#3646115b10f173efb62402985657bb05">m_minLookahead</a>, <a class="code" href="class_deflator.html#f7bedc29fcbbdf6b8bf3aa8e06a3945a">m_previousMatch</a>, <a class="code" href="class_deflator.html#2767a520eafdf665867a5e7d1de058d7">m_previousLength</a>;<a name="l00110"></a><a class="code" href="class_deflator.html#f98457df799bd1bfabcbff9a64ee313b">00110</a>         <a class="code" href="class_huffman_encoder.html" title="Huffman Encoder.">HuffmanEncoder</a> <a class="code" href="class_deflator.html#f98457df799bd1bfabcbff9a64ee313b">m_staticLiteralEncoder</a>, <a class="code" href="class_deflator.html#3ca3308982b779fb60d9d3b6b10f0d02">m_staticDistanceEncoder</a>, <a class="code" href="class_deflator.html#7234c528fbdceb1172e2036b9403e1eb">m_dynamicLiteralEncoder</a>, <a class="code" href="class_deflator.html#dea006b691879556c2e95d29743a57e3">m_dynamicDistanceEncoder</a>;<a name="l00111"></a><a class="code" href="class_deflator.html#3d899c14cdac6972d8128c32befe3c1a">00111</a>         <a class="code" href="class_sec_block.html" title="a block of memory allocated using A">SecByteBlock</a> <a class="code" href="class_deflator.html#3d899c14cdac6972d8128c32befe3c1a">m_byteBuffer</a>;<a name="l00112"></a><a class="code" href="class_deflator.html#ad7bfe8bebc06108c48f08d96e1f88f2">00112</a>         <a class="code" href="class_sec_block.html" title="a block of memory allocated using A">SecBlock&lt;word16&gt;</a> <a class="code" href="class_deflator.html#e72ff240bd264f77f2099c71966fdbf5">m_head</a>, <a class="code" href="class_deflator.html#ad7bfe8bebc06108c48f08d96e1f88f2">m_prev</a>;<a name="l00113"></a><a class="code" href="class_deflator.html#9cb0dcdc269ae9336134c259882db3bb">00113</a>         <a class="code" href="class_fixed_size_sec_block.html" title="a SecBlock with fixed size, allocated statically">FixedSizeSecBlock&lt;unsigned int, 286&gt;</a> <a class="code" href="class_deflator.html#9cb0dcdc269ae9336134c259882db3bb">m_literalCounts</a>;<a name="l00114"></a><a class="code" href="class_deflator.html#cf02ffb8290a1512da88d94d5e46369c">00114</a>         <a class="code" href="class_fixed_size_sec_block.html" title="a SecBlock with fixed size, allocated statically">FixedSizeSecBlock&lt;unsigned int, 30&gt;</a> <a class="code" href="class_deflator.html#cf02ffb8290a1512da88d94d5e46369c">m_distanceCounts</a>;<a name="l00115"></a><a class="code" href="class_deflator.html#6e0546190e94863417f0ad86bf91834e">00115</a>         <a class="code" href="class_sec_block.html" title="a block of memory allocated using A">SecBlock&lt;EncodedMatch&gt;</a> <a class="code" href="class_deflator.html#6e0546190e94863417f0ad86bf91834e">m_matchBuffer</a>;<a name="l00116"></a><a class="code" href="class_deflator.html#b42368c1d6f17579f3b5651fbf9ace6f">00116</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_deflator.html#b42368c1d6f17579f3b5651fbf9ace6f">m_matchBufferEnd</a>, <a class="code" href="class_deflator.html#f664ac5ab288e3099324ef2ad051719e">m_blockStart</a>, <a class="code" href="class_deflator.html#7bbef1e0fe539c42509a7bebefc7cb1e">m_blockLength</a>;<a name="l00117"></a>00117 };<a name="l00118"></a>00118 <a name="l00119"></a>00119 NAMESPACE_END<a name="l00120"></a>00120 <a name="l00121"></a>00121 <span class="preprocessor">#endif</span></pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 1 11:11:26 2007 for Crypto++ by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -