Sophie

Sophie

distrib > Mandriva > 2010.1 > i586 > by-pkgid > 4f5f2dc0f55b453456458df885792b0b > files > 521

ucommon-doc-5.0.4-1mdv2010.2.i586.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>ucommon: ucommon/socket.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>ucommon/socket.h File Reference</h1>
<p>Common socket class and address manipulation.  
<a href="#_details">More...</a></p>
<code>#include &lt;<a class="el" href="a00203_source.html">ucommon/timers.h</a>&gt;</code><br/>
<code>#include &lt;<a class="el" href="a00188_source.html">ucommon/linked.h</a>&gt;</code><br/>
<code>#include &lt;<a class="el" href="a00201_source.html">ucommon/string.h</a>&gt;</code><br/>
<code>#include &lt;unistd.h&gt;</code><br/>
<code>#include &lt;<a class="el" href="a00198_source.html">sys/socket.h</a>&gt;</code><br/>
<code>#include &lt;features.h&gt;</code><br/>
<code>#include &lt;sys/types.h&gt;</code><br/>
<code>#include &lt;stddef.h&gt;</code><br/>
<code>#include &lt;sys/socket.h&gt;</code><br/>
<code>#include &lt;stdint.h&gt;</code><br/>
<code>#include &lt;bits/types.h&gt;</code><br/>
<code>#include &lt;endian.h&gt;</code><br/>
<code>#include &lt;bits/byteswap.h&gt;</code><br/>
<code>#include &lt;netinet/in.h&gt;</code><br/>
<code>#include &lt;errno.h&gt;</code><br/>
<code>#include &lt;stdio.h&gt;</code><br/>
<div class="dynheader">
Include dependency graph for socket.h:</div>
<div class="dynsection">
<div class="center"><img src="a00260.png" border="0" usemap="#ucommon_2socket_8h_map" alt=""/></div>
<map name="ucommon_2socket_8h_map" id="ucommon_2socket_8h">
<area shape="rect" id="node3" href="a00203.html" title="Realtime timers and timer queues." alt="" coords="363,81,544,108"/><area shape="rect" id="node5" href="a00188.html" title="Linked objects, lists, templates, and containers." alt="" coords="771,156,952,183"/><area shape="rect" id="node53" href="a00201.html" title="A common string class and character string support functions." alt="" coords="991,156,1172,183"/><area shape="rect" id="node7" href="a00194.html" title="Various miscellaneous platform specific headers and defines." alt="" coords="804,380,1007,407"/><area shape="rect" id="node30" href="a00192.html" title="A common object base class with auto&#45;pointer support." alt="" coords="673,231,855,257"/><area shape="rect" id="node33" href="a00186.html" title="Generic templates for C++." alt="" coords="628,305,831,332"/><area shape="rect" id="node57" href="a00195.html" title="Abstract interfaces and support." alt="" coords="1047,305,1257,332"/></map>
</div>
<div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dynsection">
<div class="center"><img src="a00261.png" border="0" usemap="#ucommon_2socket_8hdep_map" alt=""/></div>
<map name="ucommon_2socket_8hdep_map" id="ucommon_2socket_8hdep">
<area shape="rect" id="node3" href="a00180.html" title="Classes which use the buffer protocol to stream data." alt="" coords="45,81,227,108"/><area shape="rect" id="node7" href="a00204.html" title="Top level include file for the GNU uCommon C++ core library." alt="" coords="143,230,335,257"/><area shape="rect" id="node13" href="a00200.html" title="Any ucommon streaming classes that are built from std::streamio facilities and that..." alt="" coords="301,156,483,182"/><area shape="rect" id="node5" href="a00197.html" title="Generic shell parsing and application services." alt="" coords="5,156,176,182"/><area shape="rect" id="node9" href="a00196.html" title="This library holds basic cryptographic functions and secure socket support for use..." alt="" coords="148,305,329,332"/></map>
</div>

<p><a href="a00198_source.html">Go to the source code of this file.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html">hostaddr_internet</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An object that holds ipv4 or ipv6 binary encoded host addresses.  <a href="a00012.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html">sockaddr_internet</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An object that can hold a ipv4 or ipv6 socket address.  <a href="a00013.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00033.html">ucommon::cidr</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A class to hold internet segment routing rules.  <a href="a00033.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00063.html">ucommon::linked_pointer&lt; struct sockaddr &gt;</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Linked pointer for address lists.  <a href="a00063.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00068.html">ucommon::ListenSocket</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A bound socket used to listen for inbound socket connections.  <a href="a00068.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00140.html">ucommon::Socket</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A generic socket base class.  <a href="a00140.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00141.html">ucommon::Socket::address</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A generic socket address class.  <a href="a00141.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00152.html">ucommon::TCPServer</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A generic tcp server class.  <a href="a00152.html#_details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00208.html">ucommon</a></td></tr>

<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Common namespace for all ucommon objects. </p>
<br/></td></tr>
</p>
<tr><td colspan="2"><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a16c181b16f7720e75f6cc61535cc122d"></a><!-- doxytag: member="socket.h::DCCP_SOCKOPT_AVAILABLE_CCIDS" ref="a16c181b16f7720e75f6cc61535cc122d" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>DCCP_SOCKOPT_AVAILABLE_CCIDS</b>&nbsp;&nbsp;&nbsp;12</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad44ca1305ac56bb818451e8b63bbe7a2"></a><!-- doxytag: member="socket.h::DCCP_SOCKOPT_CCID" ref="ad44ca1305ac56bb818451e8b63bbe7a2" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>DCCP_SOCKOPT_CCID</b>&nbsp;&nbsp;&nbsp;13</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af81f3e7855b319a6eef64a91256c93e1"></a><!-- doxytag: member="socket.h::DCCP_SOCKOPT_RX_CCID" ref="af81f3e7855b319a6eef64a91256c93e1" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>DCCP_SOCKOPT_RX_CCID</b>&nbsp;&nbsp;&nbsp;15</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af9af996be1e65747467d42107a9fcaa0"></a><!-- doxytag: member="socket.h::DCCP_SOCKOPT_TX_CCID" ref="af9af996be1e65747467d42107a9fcaa0" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>DCCP_SOCKOPT_TX_CCID</b>&nbsp;&nbsp;&nbsp;14</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a00d2d2603fe6ca4a68079ee3b39311e3"></a><!-- doxytag: member="socket.h::DEFAULT_FAMILY" ref="a00d2d2603fe6ca4a68079ee3b39311e3" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>DEFAULT_FAMILY</b>&nbsp;&nbsp;&nbsp;AF_UNSPEC</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a417721f0e1f1445e71fc0f55e04c7026"></a><!-- doxytag: member="socket.h::IPTOS_LOWDELAY" ref="a417721f0e1f1445e71fc0f55e04c7026" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>IPTOS_LOWDELAY</b>&nbsp;&nbsp;&nbsp;0x10</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6dc4cfef3512b905e64164e25a611e54"></a><!-- doxytag: member="socket.h::IPTOS_MINCOST" ref="a6dc4cfef3512b905e64164e25a611e54" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>IPTOS_MINCOST</b>&nbsp;&nbsp;&nbsp;0x02</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4dab62eb6b0c87716f292a38ea179f60"></a><!-- doxytag: member="socket.h::IPTOS_RELIABILITY" ref="a4dab62eb6b0c87716f292a38ea179f60" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>IPTOS_RELIABILITY</b>&nbsp;&nbsp;&nbsp;0x04</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a130bd030a96cdf2ad079d4d0e452af8c"></a><!-- doxytag: member="socket.h::IPTOS_THROUGHPUT" ref="a130bd030a96cdf2ad079d4d0e452af8c" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>IPTOS_THROUGHPUT</b>&nbsp;&nbsp;&nbsp;0x08</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab2290ff3727586e79a74d1319a9fec83"></a><!-- doxytag: member="socket.h::SOL_DCCP" ref="ab2290ff3727586e79a74d1319a9fec83" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>SOL_DCCP</b>&nbsp;&nbsp;&nbsp;269</td></tr>
<tr><td colspan="2"><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a73d2a98dcab2c68775bb370360eedd30"></a><!-- doxytag: member="socket.h::inethostaddr_t" ref="a73d2a98dcab2c68775bb370360eedd30" args="" -->
typedef struct <a class="el" href="a00012.html">hostaddr_internet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00198.html#a73d2a98dcab2c68775bb370360eedd30">inethostaddr_t</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An object that holds ipv4 or ipv6 binary encoded host addresses. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a00013.html">sockaddr_internet</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00198.html#a1ef866af87ca85c8aa76b509c9b69c9a">inetsockaddr_t</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An object that can hold a ipv4 or ipv6 socket address.  <a href="#a1ef866af87ca85c8aa76b509c9b69c9a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aba17f21dba4280f2638b64b1de7eefa4"></a><!-- doxytag: member="socket.h::sockaddr_t" ref="aba17f21dba4280f2638b64b1de7eefa4" args="" -->
typedef struct sockaddr *&nbsp;</td><td class="memItemRight" valign="bottom"><b>sockaddr_t</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7957cb2e582d016e409db449f3369655"></a><!-- doxytag: member="socket.h::socket" ref="a7957cb2e582d016e409db449f3369655" args="" -->
typedef Socket&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00208.html#a7957cb2e582d016e409db449f3369655">ucommon::socket</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A convenience class for socket. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab6d6ad01825cd0911085b962a6ad85b4"></a><!-- doxytag: member="socket.h::tcpserv_t" ref="ab6d6ad01825cd0911085b962a6ad85b4" args="" -->
typedef TCPServer&nbsp;</td><td class="memItemRight" valign="bottom"><b>ucommon::tcpserv_t</b></td></tr>
<tr><td colspan="2"><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af7c144b60b84fc894849f5eefd967599"></a><!-- doxytag: member="socket.h::_getaddrinfo" ref="af7c144b60b84fc894849f5eefd967599" args="(struct addrinfo *addrinfo)" -->
struct sockaddr *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00208.html#af7c144b60b84fc894849f5eefd967599">ucommon::_getaddrinfo</a> (struct addrinfo *addrinfo)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Helper function for <a class="el" href="a00063.html" title="Linked pointer for address lists.">linked_pointer&lt;struct sockaddr&gt;</a>. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3150ce1a9b0aed1a48f392b63e54876b"></a><!-- doxytag: member="socket.h::_getaddrsock" ref="a3150ce1a9b0aed1a48f392b63e54876b" args="(struct addrinfo *addrinfo)" -->
socket_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00208.html#a3150ce1a9b0aed1a48f392b63e54876b">ucommon::_getaddrsock</a> (struct addrinfo *addrinfo)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Helper function for <a class="el" href="a00063.html" title="Linked pointer for address lists.">linked_pointer&lt;struct sockaddr&gt;</a>. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0e5d07fb26c644d1dfad1476a5b3d07b"></a><!-- doxytag: member="socket.h::_nextaddrinfo" ref="a0e5d07fb26c644d1dfad1476a5b3d07b" args="(struct addrinfo *addrinfo)" -->
struct addrinfo *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00208.html#a0e5d07fb26c644d1dfad1476a5b3d07b">ucommon::_nextaddrinfo</a> (struct addrinfo *addrinfo)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Helper function for <a class="el" href="a00063.html" title="Linked pointer for address lists.">linked_pointer&lt;struct sockaddr&gt;</a>. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct sockaddr *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00208.html#a460b5a6386de45c6263462b541a9c357">ucommon::addr</a> (socket::address &amp;address)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A convenience function to convert a socket address list into a socket address.  <a href="#a460b5a6386de45c6263462b541a9c357"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct addrinfo *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00208.html#a1c6e320bbe28f9f36560b564459de846">ucommon::addrinfo</a> (socket::address &amp;address)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A convenience function to convert a socket address list into an addrinfo.  <a href="#a1c6e320bbe28f9f36560b564459de846"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00208.html#a4387118c92f750775190e6cf2f09bebd">ucommon::eq</a> (struct sockaddr_storage *s1, struct sockaddr_storage *s2)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare two stored socket addresses to see if equal.  <a href="#a4387118c92f750775190e6cf2f09bebd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00208.html#affb4ebc34459cfbe1d2965c178e52ee9">ucommon::eq</a> (struct sockaddr *s1, struct sockaddr *s2)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare two socket addresses to see if equal.  <a href="#affb4ebc34459cfbe1d2965c178e52ee9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00208.html#a7a44b0c73cbd6a3d8b914ef20e69c034">ucommon::host_eq</a> (struct sockaddr *s1, struct sockaddr *s2)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare two host addresses to see if equal.  <a href="#a7a44b0c73cbd6a3d8b914ef20e69c034"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a70b0467460458495a64a86610a97d000"></a><!-- doxytag: member="socket.h::ieq" ref="a70b0467460458495a64a86610a97d000" args="(struct sockaddr *s1, struct sockaddr *s2)" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>ucommon::ieq</b> (struct sockaddr *s1, struct sockaddr *s2)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af150be4757df2a0370d70feaf4dc0b65"></a><!-- doxytag: member="socket.h::str" ref="af150be4757df2a0370d70feaf4dc0b65" args="(Socket &amp;so, strsize_t size)" -->
String&nbsp;</td><td class="memItemRight" valign="bottom"><b>ucommon::str</b> (Socket &amp;so, strsize_t size)</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Common socket class and address manipulation. </p>
<p>This offers a common socket base class that exposes socket functionality based on what the target platform supports. Support for multicast, IPV6 addressing, and manipulation of cidr policies are all supported here. </p>

<p>Definition in file <a class="el" href="a00198_source.html">socket.h</a>.</p>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="a1ef866af87ca85c8aa76b509c9b69c9a"></a><!-- doxytag: member="socket.h::inetsockaddr_t" ref="a1ef866af87ca85c8aa76b509c9b69c9a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="a00013.html">sockaddr_internet</a>  <a class="el" href="a00013.html">inetsockaddr_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>An object that can hold a ipv4 or ipv6 socket address. </p>
<p>This would be used for tcpip socket connections. We do not use sockaddr_storage because it is not present in pre ipv6 stacks, and because the storage size also includes the size of the path of a unix domain socket on posix systems. </p>

</div>
</div>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Thu Jul 14 16:39:12 2011 for ucommon by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>