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

📄 mqueue_8cpp-source.html

📁 Crypto++是一个非常强大的密码学库,主要是功能全
💻 HTML
📖 第 1 页 / 共 2 页
字号:
00095         <span class="keywordflow">else</span>00096         {00097                 <a class="code" href="class_message_queue.html">MessageQueue</a> &amp;q1 = m_q[i], &amp;q2 = m_q[1-i];00098 00099                 <span class="keywordflow">if</span> (q2.<a class="code" href="class_buffered_transformation.html#_zlib_decompressorz9_2">AnyMessages</a>() &amp;&amp; q2.<a class="code" href="class_message_queue.html#_message_queuea5">MaxRetrievable</a>() &lt; length)00100                         <span class="keywordflow">goto</span> mismatch;00101 00102                 <span class="keywordflow">while</span> (length &gt; 0 &amp;&amp; q2.<a class="code" href="class_message_queue.html#_message_queuea6">AnyRetrievable</a>())00103                 {00104                         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> len = length;00105                         <span class="keyword">const</span> byte *data = q2.<a class="code" href="class_message_queue.html#_message_queuea15">Spy</a>(len);00106                         len = STDMIN(len, length);00107                         <span class="keywordflow">if</span> (memcmp(inString, data, len) != 0)00108                                 <span class="keywordflow">goto</span> mismatch;00109                         inString += len;00110                         length -= len;00111                         q2.<a class="code" href="class_buffered_transformation.html#_zlib_decompressorz7_11">Skip</a>(len);00112                 }00113 00114                 q1.<a class="code" href="class_buffered_transformation.html#_zlib_decompressorz1_0">Put</a>(inString, length);00115 00116                 <span class="keywordflow">if</span> (messageEnd)00117                 {00118                         <span class="keywordflow">if</span> (q2.<a class="code" href="class_message_queue.html#_message_queuea6">AnyRetrievable</a>())00119                                 <span class="keywordflow">goto</span> mismatch;00120                         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (q2.<a class="code" href="class_buffered_transformation.html#_zlib_decompressorz9_2">AnyMessages</a>())00121                                 q2.<a class="code" href="class_message_queue.html#_message_queuea11">GetNextMessage</a>();00122                         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (q2.<a class="code" href="class_message_queue.html#_message_queuea13">NumberOfMessageSeries</a>() &gt; 0)00123                                 <span class="keywordflow">goto</span> mismatch;00124                         <span class="keywordflow">else</span>00125                                 q1.<a class="code" href="class_buffered_transformation.html#_zlib_decompressorz1_7">MessageEnd</a>();00126                 }00127 00128                 <span class="keywordflow">return</span> 0;00129 00130 mismatch:00131                 <span class="keywordflow">return</span> HandleMismatchDetected(blocking);00132         }00133 }00134 00135 <span class="keywordtype">void</span> EqualityComparisonFilter::ChannelInitialize(<span class="keyword">const</span> std::string &amp;channel, <span class="keyword">const</span> <a class="code" href="class_name_value_pairs.html">NameValuePairs</a> &amp;parameters, <span class="keywordtype">int</span> propagation)00136 {00137         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = MapChannel(channel);00138 00139         <span class="keywordflow">if</span> (i == 2)00140                 PropagateInitialize(parameters, propagation, channel);00141         <span class="keywordflow">else</span>00142         {00143                 m_q[i].<a class="code" href="class_buffered_transformation.html#_windows_pipe_sinkz5_2">Initialize</a>();00144                 m_mismatchDetected = <span class="keyword">false</span>;00145         }00146 }00147 00148 <span class="keywordtype">bool</span> EqualityComparisonFilter::ChannelMessageSeriesEnd(<span class="keyword">const</span> std::string &amp;channel, <span class="keywordtype">int</span> propagation, <span class="keywordtype">bool</span> blocking)00149 {00150         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = MapChannel(channel);00151 00152         <span class="keywordflow">if</span> (i == 2)00153         {00154                 OutputMessageSeriesEnd(4, propagation, blocking, channel);00155                 <span class="keywordflow">return</span> <span class="keyword">false</span>;00156         }00157         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (m_mismatchDetected)00158                 <span class="keywordflow">return</span> <span class="keyword">false</span>;00159         <span class="keywordflow">else</span>00160         {00161                 <a class="code" href="class_message_queue.html">MessageQueue</a> &amp;q1 = m_q[i], &amp;q2 = m_q[1-i];00162 00163                 <span class="keywordflow">if</span> (q2.<a class="code" href="class_message_queue.html#_message_queuea6">AnyRetrievable</a>() || q2.<a class="code" href="class_buffered_transformation.html#_zlib_decompressorz9_2">AnyMessages</a>())00164                         <span class="keywordflow">goto</span> mismatch;00165                 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (q2.<a class="code" href="class_message_queue.html#_message_queuea13">NumberOfMessageSeries</a>() &gt; 0)00166                         <span class="keywordflow">return</span> Output(2, (<span class="keyword">const</span> byte *)<span class="stringliteral">"\1"</span>, 1, 0, blocking) != 0;00167                 <span class="keywordflow">else</span>00168                         q1.<a class="code" href="class_buffered_transformation.html#_windows_pipe_sinkz5_4">MessageSeriesEnd</a>();00169 00170                 <span class="keywordflow">return</span> <span class="keyword">false</span>;00171 00172 mismatch:00173                 <span class="keywordflow">return</span> HandleMismatchDetected(blocking);00174         }00175 }00176 00177 <span class="keywordtype">bool</span> EqualityComparisonFilter::HandleMismatchDetected(<span class="keywordtype">bool</span> blocking)00178 {00179         m_mismatchDetected = <span class="keyword">true</span>;00180         <span class="keywordflow">if</span> (m_throwIfNotEqual)00181                 <span class="keywordflow">throw</span> MismatchDetected();00182         <span class="keywordflow">return</span> Output(1, (<span class="keyword">const</span> byte *)<span class="stringliteral">"\0"</span>, 1, 0, blocking) != 0;00183 }00184 00185 NAMESPACE_END00186 00187 <span class="preprocessor">#endif</span></pre></div><hr size="1"><address style="align: right;"><small>Generated on Tue Jul 8 23:34:20 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 + -