Sophie

Sophie

distrib > Mandriva > 9.1 > ppc > media > contrib > by-pkgid > 263386785cefb9ae5d63b926d214d809 > files > 1357

mpqc-2.1.2-4mdk.ppc.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta name="robots" content="noindex">
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>state_net.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body bgcolor="#ffffff">
<!-- Generated by Doxygen 1.2.5 on Mon Oct 14 14:16:38 2002 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="pages.html">Related Pages</a> &nbsp; </center>
<hr><h1>state_net.h</h1><div class="fragment"><pre>00001 
00002 <font class="preprocessor">#ifndef _libqc_state_net_h</font>
00003 <font class="preprocessor"></font><font class="preprocessor">#define _libqc_state_net_h</font>
00004 <font class="preprocessor"></font>
00005 <font class="comment">/* state_net.h -- declarations for the socket StateOut classes</font>
00006 <font class="comment"> *</font>
00007 <font class="comment"> *      THIS SOFTWARE FITS THE DESCRIPTION IN THE U.S. COPYRIGHT ACT OF A</font>
00008 <font class="comment"> *      "UNITED STATES GOVERNMENT WORK".  IT WAS WRITTEN AS A PART OF THE</font>
00009 <font class="comment"> *      AUTHOR'S OFFICIAL DUTIES AS A GOVERNMENT EMPLOYEE.  THIS MEANS IT</font>
00010 <font class="comment"> *      CANNOT BE COPYRIGHTED.  THIS SOFTWARE IS FREELY AVAILABLE TO THE</font>
00011 <font class="comment"> *      PUBLIC FOR USE WITHOUT A COPYRIGHT NOTICE, AND THERE ARE NO</font>
00012 <font class="comment"> *      RESTRICTIONS ON ITS USE, NOW OR SUBSEQUENTLY.</font>
00013 <font class="comment"> *</font>
00014 <font class="comment"> *  Author:</font>
00015 <font class="comment"> *      E. T. Seidl</font>
00016 <font class="comment"> *      Bldg. 12A, Rm. 2033</font>
00017 <font class="comment"> *      Computer Systems Laboratory</font>
00018 <font class="comment"> *      Division of Computer Research and Technology</font>
00019 <font class="comment"> *      National Institutes of Health</font>
00020 <font class="comment"> *      Bethesda, Maryland 20892</font>
00021 <font class="comment"> *      Internet: seidl@alw.nih.gov</font>
00022 <font class="comment"> *      October, 1992</font>
00023 <font class="comment"> */</font>
00024 
00025 <font class="preprocessor">#ifdef __GNUC__</font>
00026 <font class="preprocessor"></font><font class="preprocessor">#pragma interface</font>
00027 <font class="preprocessor"></font><font class="preprocessor">#endif</font>
00028 <font class="preprocessor"></font>
00029 
00030 <font class="preprocessor">#include &lt;util/state/state.h&gt;</font>
00031 
00032 <font class="comment">/*</font>
00033 <font class="comment"> * include &lt;unistd.h&gt;     for close()</font>
00034 <font class="comment"> * include &lt;sys/types.h&gt;   just in case rpc does not include this</font>
00035 <font class="comment"> * include &lt;netinet/in.h&gt;  for struct sockaddr and other IP things</font>
00036 <font class="comment"> * include &lt;sys/un.h&gt;      for struct sockaddr_un</font>
00037 <font class="comment"> */</font>
00038 
00039 <font class="preprocessor">#include &lt;unistd.h&gt;</font>
00040 <font class="preprocessor">#include &lt;sys/types.h&gt;</font>
00041 <font class="preprocessor">#include &lt;netinet/in.h&gt;</font>
00042 <font class="preprocessor">#if !defined(I860)</font>
00043 <font class="preprocessor"></font><font class="preprocessor">#include &lt;sys/un.h&gt;</font>
00044 <font class="preprocessor">#endif</font>
00045 <font class="preprocessor"></font>
00046 <font class="comment">/*</font>
00047 <font class="comment"> * include &lt;malloc.h&gt; because the ATT headers on the sun are brain dead</font>
00048 <font class="comment"> */</font>
00049 <font class="preprocessor">#if !defined(__GNUC__) &amp;&amp; defined(SUN)</font>
00050 <font class="preprocessor"></font><font class="preprocessor">#include &lt;malloc.h&gt;</font>
00051 <font class="preprocessor">#endif</font>
00052 <font class="preprocessor"></font>
00053 <font class="keyword">namespace </font>sc {
00054 
00055 <font class="comment">// ////////////////////////////////////////////////////////////</font>
00056 
00057 <font class="keyword">class </font>Socket {
00058   <font class="keyword">protected</font>:
00059     <font class="keywordtype">int</font> fd_;
00060     Socket();
00061   <font class="keyword">public</font>:
00062     <font class="keyword">virtual</font> ~Socket();
00063     <font class="keyword">virtual</font> <font class="keywordtype">int</font> close_socket();
00064     <font class="keyword">inline</font> <font class="keyword">const</font> <font class="keywordtype">int</font> fd()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> fd_; }
00065   };
00066 
00067 <font class="comment">// ////////////////////////////////////////////////////////////</font>
00068 
00069 <font class="keyword">class </font>StreamSocket : <font class="keyword">virtual</font> <font class="keyword">public</font> Socket {
00070   <font class="keyword">protected</font>:
00071     <font class="keywordtype">int</font> writen(<font class="keywordtype">void</font>*,<font class="keywordtype">int</font>);
00072     <font class="keywordtype">int</font> readn(<font class="keywordtype">void</font>*,<font class="keywordtype">int</font>);
00073     StreamSocket();
00074   <font class="keyword">public</font>:
00075     ~StreamSocket();
00076   };
00077 
00078 <font class="keyword">class </font>DGramSocket : <font class="keyword">virtual</font> <font class="keyword">public</font> Socket {
00079   <font class="keyword">protected</font>:
00080     <font class="keywordtype">int</font> sendn(<font class="keywordtype">void</font>*,<font class="keywordtype">int</font>,<font class="keyword">struct</font> sockaddr*,<font class="keywordtype">int</font>);
00081     <font class="keywordtype">int</font> recvn(<font class="keywordtype">void</font>*,<font class="keywordtype">int</font>,<font class="keyword">struct</font> sockaddr*,<font class="keywordtype">int</font>&amp;);
00082     DGramSocket();
00083   <font class="keyword">public</font>:
00084     ~DGramSocket();
00085   };
00086 
00087 <font class="comment">// ////////////////////////////////////////////////////////////</font>
00088 
00089 <font class="keyword">class </font>BSDSocket : <font class="keyword">virtual</font> <font class="keyword">public</font> Socket {
00090   <font class="keyword">protected</font>:
00091     <font class="keyword">struct </font>sockaddr_in laddr_;
00092     <font class="keyword">struct </font>sockaddr_in raddr_;
00093     <font class="keywordtype">int</font> raddrlen;
00094     BSDSocket();
00095   <font class="keyword">public</font>:
00096     ~BSDSocket();
00097     <font class="keyword">virtual</font> <font class="keywordtype">int</font> bind_socket(<font class="keywordtype">int</font>);
00098     <font class="keyword">virtual</font> <font class="keywordtype">int</font> connect_socket(<font class="keyword">const</font> <font class="keywordtype">char</font>*,<font class="keywordtype">int</font>);
00099   };
00100 
00101 <font class="keyword">class </font>BSD_TCPSocket: <font class="keyword">public</font> BSDSocket, <font class="keyword">public</font> StreamSocket {
00102   <font class="keyword">protected</font>:
00103     BSD_TCPSocket();
00104   <font class="keyword">public</font>:
00105     ~BSD_TCPSocket();
00106 
00107     <font class="keywordtype">int</font> bind_socket(<font class="keywordtype">int</font>);
00108     <font class="keywordtype">int</font> listen_socket();
00109     <font class="keywordtype">int</font> listen_socket(BSD_TCPSocket&amp;);
00110   };
00111 
00112 <font class="keyword">class </font>BSD_UDPSocket: <font class="keyword">public</font> BSDSocket, <font class="keyword">public</font> DGramSocket {
00113   <font class="keyword">protected</font>:
00114     BSD_UDPSocket();
00115   <font class="keyword">public</font>:
00116     ~BSD_UDPSocket();
00117   };
00118 
00119 <font class="comment">// ////////////////////////////////////////////////////////////</font>
00120 
00121 <font class="keyword">class </font>StateOutBSD_TCP : <font class="keyword">virtual</font> <font class="keyword">public</font> BSD_TCPSocket, <font class="keyword">public</font> StateOutXDR {
00122   <font class="keyword">protected</font>:
00123     <font class="keywordtype">int</font> put_array_void(<font class="keyword">const</font> <font class="keywordtype">void</font>*,<font class="keywordtype">int</font>);
00124   <font class="keyword">public</font>:
00125     StateOutBSD_TCP();
00126     ~StateOutBSD_TCP();
00127   };
00128 
00129 <font class="keyword">class </font>StateInBSD_TCP : <font class="keyword">virtual</font> <font class="keyword">public</font> BSD_TCPSocket, <font class="keyword">public</font> StateInXDR {
00130   <font class="keyword">protected</font>:
00131     <font class="keywordtype">int</font> get_array_void(<font class="keywordtype">void</font>*,<font class="keywordtype">int</font>);
00132   <font class="keyword">public</font>:
00133     StateInBSD_TCP();
00134     ~StateInBSD_TCP();
00135   };
00136 
00137 <font class="keyword">class </font>StateIOBSD_TCP : <font class="keyword">public</font> StateInBSD_TCP, <font class="keyword">public</font> StateOutBSD_TCP {
00138   <font class="keyword">public</font>:
00139     StateIOBSD_TCP();
00140     ~StateIOBSD_TCP();
00141   };
00142 
00143 <font class="comment">// ////////////////////////////////////////////////////////////</font>
00144 
00145 <font class="keyword">class </font>StateOutBSD_UDP : <font class="keyword">virtual</font> <font class="keyword">public</font> BSD_UDPSocket, <font class="keyword">public</font> StateOutXDR {
00146   <font class="keyword">protected</font>:
00147     <font class="keywordtype">int</font> put_array_void(<font class="keyword">const</font> <font class="keywordtype">void</font>*,<font class="keywordtype">int</font>);
00148   <font class="keyword">public</font>:
00149     StateOutBSD_UDP();
00150     ~StateOutBSD_UDP();
00151   };
00152 
00153 <font class="keyword">class </font>StateInBSD_UDP : <font class="keyword">virtual</font> <font class="keyword">public</font> BSD_UDPSocket, <font class="keyword">public</font> StateInXDR {
00154   <font class="keyword">protected</font>:
00155     <font class="keywordtype">int</font> get_array_void(<font class="keywordtype">void</font>*,<font class="keywordtype">int</font>);
00156   <font class="keyword">public</font>:
00157     StateInBSD_UDP();
00158     ~StateInBSD_UDP();
00159   };
00160 
00161 <font class="keyword">class </font>StateIOBSD_UDP : <font class="keyword">public</font> StateInBSD_UDP, <font class="keyword">public</font> StateOutBSD_UDP {
00162   <font class="keyword">public</font>:
00163     StateIOBSD_UDP();
00164     ~StateIOBSD_UDP();
00165   };
00166 
00167 <font class="comment">// ////////////////////////////////////////////////////////////</font>
00168 
00169 <font class="keyword">class </font>UnixSocket : <font class="keyword">virtual</font> <font class="keyword">public</font> Socket {
00170   <font class="keyword">protected</font>:
00171     <font class="keyword">struct </font>sockaddr_un laddr_;
00172     <font class="keyword">struct </font>sockaddr_un raddr_;
00173     <font class="keywordtype">int</font> raddrlen;
00174     UnixSocket();
00175   <font class="keyword">public</font>:
00176     <font class="keyword">virtual</font> ~UnixSocket();
00177     <font class="keywordtype">int</font> unlink_socket();
00178     <font class="keyword">virtual</font> <font class="keywordtype">int</font> bind_socket(<font class="keyword">const</font> <font class="keywordtype">char</font>*);
00179     <font class="keyword">virtual</font> <font class="keywordtype">int</font> connect_socket(<font class="keyword">const</font> <font class="keywordtype">char</font>*);
00180   };
00181 
00182 <font class="keyword">class </font>UnixStreamSocket: <font class="keyword">public</font> UnixSocket, <font class="keyword">public</font> StreamSocket {
00183   <font class="keyword">protected</font>:
00184     UnixStreamSocket();
00185   <font class="keyword">public</font>:
00186     ~UnixStreamSocket();
00187 
00188     <font class="keywordtype">int</font> bind_socket(<font class="keyword">const</font> <font class="keywordtype">char</font>*);
00189     <font class="keywordtype">int</font> listen_socket();
00190     <font class="keywordtype">int</font> listen_socket(UnixStreamSocket&amp;);
00191   };
00192 
00193 <font class="keyword">class </font>UnixDGramSocket: <font class="keyword">public</font> UnixSocket, <font class="keyword">public</font> DGramSocket {
00194   <font class="keyword">protected</font>:
00195     UnixDGramSocket();
00196   <font class="keyword">public</font>:
00197     ~UnixDGramSocket();
00198   };
00199 
00200 <font class="comment">// ////////////////////////////////////////////////////////////</font>
00201 
00202 <font class="keyword">class </font>StateOutUnixStream : <font class="keyword">virtual</font> <font class="keyword">public</font> UnixStreamSocket, <font class="keyword">public</font> StateOut {
00203   <font class="keyword">protected</font>:
00204     <font class="keywordtype">int</font> put_array_void(<font class="keyword">const</font> <font class="keywordtype">void</font>*,<font class="keywordtype">int</font>);
00205   <font class="keyword">public</font>:
00206     StateOutUnixStream();
00207     ~StateOutUnixStream();
00208   };
00209 
00210 <font class="keyword">class </font>StateInUnixStream : <font class="keyword">virtual</font> <font class="keyword">public</font> UnixStreamSocket, <font class="keyword">public</font> StateIn {
00211   <font class="keyword">protected</font>:
00212     <font class="keywordtype">int</font> get_array_void(<font class="keywordtype">void</font>*,<font class="keywordtype">int</font>);
00213   <font class="keyword">public</font>:
00214     StateInUnixStream();
00215     ~StateInUnixStream();
00216   };
00217 
00218 <font class="keyword">class </font>StateIOUnixStream: <font class="keyword">public</font> StateInUnixStream, <font class="keyword">public</font> StateOutUnixStream {
00219   <font class="keyword">public</font>:
00220     StateIOUnixStream();
00221     ~StateIOUnixStream();
00222   };
00223 
00224 <font class="comment">// ////////////////////////////////////////////////////////////</font>
00225 
00226 <font class="keyword">class </font>StateOutUnixDGram : <font class="keyword">virtual</font> <font class="keyword">public</font> UnixDGramSocket, <font class="keyword">public</font> StateOut {
00227   <font class="keyword">protected</font>:
00228     <font class="keywordtype">int</font> put_array_void(<font class="keyword">const</font> <font class="keywordtype">void</font>*,<font class="keywordtype">int</font>);
00229   <font class="keyword">public</font>:
00230     StateOutUnixDGram();
00231     ~StateOutUnixDGram();
00232   };
00233 
00234 <font class="keyword">class </font>StateInUnixDGram : <font class="keyword">virtual</font> <font class="keyword">public</font> UnixDGramSocket, <font class="keyword">public</font> StateIn {
00235   <font class="keyword">protected</font>:
00236     <font class="keywordtype">int</font> get_array_void(<font class="keywordtype">void</font>*,<font class="keywordtype">int</font>);
00237   <font class="keyword">public</font>:
00238     StateInUnixDGram();
00239     ~StateInUnixDGram();
00240   };
00241 
00242 <font class="keyword">class </font>StateIOUnixDGram : <font class="keyword">public</font> StateInUnixDGram, <font class="keyword">public</font> StateOutUnixDGram {
00243   <font class="keyword">public</font>:
00244     StateIOUnixDGram();
00245     ~StateIOUnixDGram();
00246   };
00247 
00248 }
00249 
00250 <font class="preprocessor">#endif</font>
00251 <font class="preprocessor"></font>
00252 <font class="comment">// Local Variables:</font>
00253 <font class="comment">// mode: c++</font>
00254 <font class="comment">// c-file-style: "ETS"</font>
00255 <font class="comment">// End:</font>
</div></pre><hr>
<address>
<small>

Generated at Mon Oct 14 14:16:38 2002 for <a
href="http://aros.ca.sandia.gov/~cljanss/mpqc">MPQC</a>
2.1.2 using the documentation package <a
href="http://www.stack.nl/~dimitri/doxygen/index.html">Doxygen</a>
1.2.5.

</small>
</address>
</body>
</html>