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

📄 socketft_8h-source.html

📁 Crypto++是一个非常强大的密码学库,主要是功能全
💻 HTML
📖 第 1 页 / 共 2 页
字号:
00110         <span class="keyword">virtual</span> <span class="keywordtype">void</span> SocketChanged() {}00111 00112         socket_t m_s;00113         <span class="keywordtype">bool</span> m_own;00114 };00115 <span class="comment"></span>00116 <span class="comment">//! contributed by Denis Bider</span><a name="l00117"></a><a class="code" href="class_sockets_initializer.html">00117</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="class_sockets_initializer.html">SocketsInitializer</a>00118 {00119 <span class="keyword">public</span>:00120         <a class="code" href="class_sockets_initializer.html">SocketsInitializer</a>() {<a class="code" href="class_socket.html#_socket_sourcee1">Socket::StartSockets</a>();}00121         ~<a class="code" href="class_sockets_initializer.html">SocketsInitializer</a>() {<span class="keywordflow">try</span> {<a class="code" href="class_socket.html#_socket_sourcee2">Socket::ShutdownSockets</a>();} <span class="keywordflow">catch</span> (...) {}}00122 };00123 00124 <span class="keyword">class </span>SocketReceiver : <span class="keyword">public</span> <a class="code" href="class_network_receiver.html">NetworkReceiver</a>00125 {00126 <span class="keyword">public</span>:00127         SocketReceiver(<a class="code" href="class_socket.html">Socket</a> &amp;s);00128 00129 <span class="preprocessor">#ifdef USE_BERKELEY_STYLE_SOCKETS</span>00130 <span class="preprocessor"></span>        <span class="keywordtype">bool</span> MustWaitToReceive() {<span class="keywordflow">return</span> <span class="keyword">true</span>;}00131 <span class="preprocessor">#else</span>00132 <span class="preprocessor"></span>        <span class="keywordtype">bool</span> MustWaitForResult() {<span class="keywordflow">return</span> <span class="keyword">true</span>;}00133 <span class="preprocessor">#endif</span>00134 <span class="preprocessor"></span>        <span class="keywordtype">void</span> Receive(byte* buf, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> bufLen);00135         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> GetReceiveResult();00136         <span class="keywordtype">bool</span> EofReceived()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_eofReceived;}00137 00138         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> GetMaxWaitObjectCount()<span class="keyword"> const </span>{<span class="keywordflow">return</span> 1;}00139         <span class="keywordtype">void</span> GetWaitObjects(<a class="code" href="class_wait_object_container.html">WaitObjectContainer</a> &amp;container);00140 00141 <span class="keyword">private</span>:00142         <a class="code" href="class_socket.html">Socket</a> &amp;m_s;00143         <span class="keywordtype">bool</span> m_eofReceived;00144 00145 <span class="preprocessor">#ifdef USE_WINDOWS_STYLE_SOCKETS</span>00146 <span class="preprocessor"></span>        <a class="code" href="class_windows_handle.html">WindowsHandle</a> m_event;00147         OVERLAPPED m_overlapped;00148         <span class="keywordtype">bool</span> m_resultPending;00149         DWORD m_lastResult;00150 <span class="preprocessor">#else</span>00151 <span class="preprocessor"></span>        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> m_lastResult;00152 <span class="preprocessor">#endif</span>00153 <span class="preprocessor"></span>};00154 00155 <span class="keyword">class </span>SocketSender : <span class="keyword">public</span> <a class="code" href="class_network_sender.html">NetworkSender</a>00156 {00157 <span class="keyword">public</span>:00158         SocketSender(<a class="code" href="class_socket.html">Socket</a> &amp;s);00159 00160 <span class="preprocessor">#ifdef USE_BERKELEY_STYLE_SOCKETS</span>00161 <span class="preprocessor"></span>        <span class="keywordtype">bool</span> MustWaitToSend() {<span class="keywordflow">return</span> <span class="keyword">true</span>;}00162 <span class="preprocessor">#else</span>00163 <span class="preprocessor"></span>        <span class="keywordtype">bool</span> MustWaitForResult() {<span class="keywordflow">return</span> <span class="keyword">true</span>;}00164 <span class="preprocessor">#endif</span>00165 <span class="preprocessor"></span>        <span class="keywordtype">void</span> Send(<span class="keyword">const</span> byte* buf, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> bufLen);00166         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> GetSendResult();00167         <span class="keywordtype">void</span> SendEof() {m_s.ShutDown(SD_SEND);}00168 00169         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> GetMaxWaitObjectCount()<span class="keyword"> const </span>{<span class="keywordflow">return</span> 1;}00170         <span class="keywordtype">void</span> GetWaitObjects(<a class="code" href="class_wait_object_container.html">WaitObjectContainer</a> &amp;container);00171 00172 <span class="keyword">private</span>:00173         <a class="code" href="class_socket.html">Socket</a> &amp;m_s;00174 <span class="preprocessor">#ifdef USE_WINDOWS_STYLE_SOCKETS</span>00175 <span class="preprocessor"></span>        <a class="code" href="class_windows_handle.html">WindowsHandle</a> m_event;00176         OVERLAPPED m_overlapped;00177         <span class="keywordtype">bool</span> m_resultPending;00178         DWORD m_lastResult;00179 <span class="preprocessor">#else</span>00180 <span class="preprocessor"></span>        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> m_lastResult;00181 <span class="preprocessor">#endif</span>00182 <span class="preprocessor"></span>};00183 <span class="comment"></span>00184 <span class="comment">//! .</span><a name="l00185"></a><a class="code" href="class_socket_source.html">00185</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="class_socket_source.html">SocketSource</a> : <span class="keyword">public</span> <a class="code" href="class_network_source.html">NetworkSource</a>, <span class="keyword">public</span> <a class="code" href="class_socket.html">Socket</a>00186 {00187 <span class="keyword">public</span>:00188         <a class="code" href="class_socket_source.html">SocketSource</a>(socket_t s = INVALID_SOCKET, <span class="keywordtype">bool</span> pumpAll = <span class="keyword">false</span>, <a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> *attachment = NULL)00189                 : <a class="code" href="class_network_source.html">NetworkSource</a>(attachment), <a class="code" href="class_socket.html">Socket</a>(s), m_receiver(*<span class="keyword">this</span>)00190         {00191                 <span class="keywordflow">if</span> (pumpAll)00192                         PumpAll();00193         }00194 00195 <span class="keyword">private</span>:00196         <a class="code" href="class_network_receiver.html">NetworkReceiver</a> &amp; AccessReceiver() {<span class="keywordflow">return</span> m_receiver;}00197         SocketReceiver m_receiver;00198 };00199 <span class="comment"></span>00200 <span class="comment">//! .</span><a name="l00201"></a><a class="code" href="class_socket_sink.html">00201</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="class_socket_sink.html">SocketSink</a> : <span class="keyword">public</span> <a class="code" href="class_network_sink.html">NetworkSink</a>, <span class="keyword">public</span> <a class="code" href="class_socket.html">Socket</a>00202 {00203 <span class="keyword">public</span>:00204         <a class="code" href="class_socket_sink.html">SocketSink</a>(socket_t s = INVALID_SOCKET, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> maxBufferSize=0, <span class="keywordtype">bool</span> autoFlush=<span class="keyword">false</span>)00205                 : <a class="code" href="class_network_sink.html">NetworkSink</a>(maxBufferSize, autoFlush), <a class="code" href="class_socket.html">Socket</a>(s), m_sender(*<span class="keyword">this</span>) {}00206 00207         <span class="keywordtype">void</span> SendEof() {ShutDown(SD_SEND);}00208 00209 <span class="keyword">private</span>:00210         <a class="code" href="class_network_sender.html">NetworkSender</a> &amp; AccessSender() {<span class="keywordflow">return</span> m_sender;}00211         SocketSender m_sender;00212 };00213 00214 NAMESPACE_END00215 00216 <span class="preprocessor">#endif  // #ifdef SOCKETS_AVAILABLE</span>00217 <span class="preprocessor"></span>00218 <span class="preprocessor">#endif</span></pre></div><hr size="1"><address style="align: right;"><small>Generated on Tue Jul 8 23:34:26 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 + -