📄 socketft_8h-source.html
字号:
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> &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> &container);00140 00141 <span class="keyword">private</span>:00142 <a class="code" href="class_socket.html">Socket</a> &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> &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> &container);00171 00172 <span class="keyword">private</span>:00173 <a class="code" href="class_socket.html">Socket</a> &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> & 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> & 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 + -