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

📄 zinflate_8h-source.html

📁 Crypto++是一个非常强大的密码学库,主要是功能全
💻 HTML
📖 第 1 页 / 共 2 页
字号:
00073         };00074 00075         <span class="keyword">static</span> code_t NormalizeCode(code_t code, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> codeBits);00076         <span class="keywordtype">void</span> FillCacheEntry(LookupEntry &amp;entry, code_t normalizedCode) <span class="keyword">const</span>;00077 00078         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> m_maxCodeBits, m_cacheBits, m_cacheMask, m_normalizedCacheMask;00079         std::vector&lt;CodeInfo, AllocatorWithCleanup&lt;CodeInfo&gt; &gt; m_codeToValue;00080         <span class="keyword">mutable</span> std::vector&lt;LookupEntry, AllocatorWithCleanup&lt;LookupEntry&gt; &gt; m_cache;00081 };00082 <span class="comment"></span>00083 <span class="comment">//! DEFLATE (RFC 1951) decompressor</span>00084 <span class="comment"></span><a name="l00085"></a><a class="code" href="class_inflator.html">00085</a> <span class="keyword">class </span><a class="code" href="class_inflator.html">Inflator</a> : <span class="keyword">public</span> AutoSignaling&lt;Filter&gt;00086 {00087 <span class="keyword">public</span>:00088         <span class="keyword">class </span>Err : <span class="keyword">public</span> <a class="code" href="class_exception.html">Exception</a>00089         {00090         <span class="keyword">public</span>:00091                 Err(<a class="code" href="class_exception.html#_zlib_decompressor_1_1_unsupported_preset_dictionaryw7">ErrorType</a> e, <span class="keyword">const</span> std::string &amp;s)00092                         : <a class="code" href="class_exception.html">Exception</a>(e, s) {}00093         };00094         <span class="keyword">class </span>UnexpectedEndErr : <span class="keyword">public</span> Err {<span class="keyword">public</span>: UnexpectedEndErr() : Err(<a class="code" href="class_exception.html#_zlib_decompressor_1_1_unsupported_preset_dictionaryw7_zlib_decompressor_1_1_unsupported_preset_dictionaryw4">INVALID_DATA_FORMAT</a>, <span class="stringliteral">"Inflator: unexpected end of compressed block"</span>) {}};00095         <span class="keyword">class </span>BadBlockErr : <span class="keyword">public</span> Err {<span class="keyword">public</span>: BadBlockErr() : Err(<a class="code" href="class_exception.html#_zlib_decompressor_1_1_unsupported_preset_dictionaryw7_zlib_decompressor_1_1_unsupported_preset_dictionaryw4">INVALID_DATA_FORMAT</a>, <span class="stringliteral">"Inflator: error in compressed block"</span>) {}};00096 <span class="comment"></span>00097 <span class="comment">        /*! \param repeat decompress multiple compressed streams in series</span>00098 <span class="comment">                \param autoSignalPropagation 0 to turn off MessageEnd signal</span>00099 <span class="comment">        */</span>00100         <a class="code" href="class_inflator.html#_inflatora0">Inflator</a>(<a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> *attachment = NULL, <span class="keywordtype">bool</span> repeat = <span class="keyword">false</span>, <span class="keywordtype">int</span> autoSignalPropagation = -1);00101 00102         <span class="keywordtype">void</span> IsolatedInitialize(<span class="keyword">const</span> <a class="code" href="class_name_value_pairs.html">NameValuePairs</a> &amp;parameters);00103         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_inflator.html#_zlib_decompressora3">Put2</a>(<span class="keyword">const</span> byte *inString, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length, <span class="keywordtype">int</span> messageEnd, <span class="keywordtype">bool</span> blocking);00104         <span class="keywordtype">bool</span> IsolatedFlush(<span class="keywordtype">bool</span> hardFlush, <span class="keywordtype">bool</span> blocking);00105 00106         <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> GetLog2WindowSize()<span class="keyword"> const </span>{<span class="keywordflow">return</span> 15;}00107 00108 <span class="keyword">protected</span>:00109         <a class="code" href="class_byte_queue.html">ByteQueue</a> m_inQueue;00110 00111 <span class="keyword">private</span>:00112         <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> MaxPrestreamHeaderSize()<span class="keyword"> const </span>{<span class="keywordflow">return</span> 0;}00113         <span class="keyword">virtual</span> <span class="keywordtype">void</span> ProcessPrestreamHeader() {}00114         <span class="keyword">virtual</span> <span class="keywordtype">void</span> ProcessDecompressedData(<span class="keyword">const</span> byte *string, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length)00115                 {<a class="code" href="class_filter.html#_zlib_decompressora8">AttachedTransformation</a>()-&gt;<a class="code" href="class_buffered_transformation.html#_zlib_decompressorz1_0">Put</a>(string, length);}00116         <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> MaxPoststreamTailSize()<span class="keyword"> const </span>{<span class="keywordflow">return</span> 0;}00117         <span class="keyword">virtual</span> <span class="keywordtype">void</span> ProcessPoststreamTail() {}00118 00119         <span class="keywordtype">void</span> ProcessInput(<span class="keywordtype">bool</span> flush);00120         <span class="keywordtype">void</span> DecodeHeader();00121         <span class="keywordtype">bool</span> DecodeBody();00122         <span class="keywordtype">void</span> FlushOutput();00123         <span class="keywordtype">void</span> OutputByte(byte b);00124         <span class="keywordtype">void</span> OutputString(<span class="keyword">const</span> byte *string, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length);00125         <span class="keywordtype">void</span> OutputPast(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> distance);00126 00127         <span class="keyword">enum</span> State {PRE_STREAM, WAIT_HEADER, DECODING_BODY, POST_STREAM, AFTER_END};00128         State m_state;00129         <span class="keywordtype">bool</span> m_repeat, m_eof, m_decodersInitializedWithFixedCodes;00130         byte m_blockType;00131         word16 m_storedLen;00132         <span class="keyword">enum</span> NextDecode {LITERAL, LENGTH_BITS, DISTANCE, DISTANCE_BITS};00133         NextDecode m_nextDecode;00134         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> m_literal, m_distance;     <span class="comment">// for LENGTH_BITS or DISTANCE_BITS</span>00135         <a class="code" href="class_huffman_decoder.html">HuffmanDecoder</a> m_literalDecoder, m_distanceDecoder;00136         <a class="code" href="class_low_first_bit_reader.html">LowFirstBitReader</a> m_reader;00137         <a class="code" href="class_sec_block.html">SecByteBlock</a> m_window;00138         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> m_maxDistance, m_current, m_lastFlush;00139 };00140 00141 NAMESPACE_END00142 00143 <span class="preprocessor">#endif</span></pre></div><hr size="1"><address style="align: right;"><small>Generated on Tue Jul 8 23:34:29 2003 for Crypto++ by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 > </a>1.3.2 </small></address></body></html>

⌨️ 快捷键说明

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