blob: c6b26bd29bd015290545309a8b606a06e250a85b [file] [log] [blame]
<!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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>Apache Mesos: process::network::internal::Socket&lt; AddressType &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">Apache Mesos
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceprocess.html">process</a></li><li class="navelem"><a class="el" href="namespaceprocess_1_1network.html">network</a></li><li class="navelem"><a class="el" href="namespaceprocess_1_1network_1_1internal.html">internal</a></li><li class="navelem"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="classprocess_1_1network_1_1internal_1_1Socket-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">process::network::internal::Socket&lt; AddressType &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>An abstraction around a socket (file descriptor).
<a href="classprocess_1_1network_1_1internal_1_1Socket.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="libprocess_2include_2process_2socket_8hpp_source.html">socket.hpp</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:ac5a52929658fbe1ed19b4b03bdd63904"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#ac5a52929658fbe1ed19b4b03bdd63904">Shutdown</a> { <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#ac5a52929658fbe1ed19b4b03bdd63904a3466fab4975481651940ed328aa990e4">Shutdown::READ</a>,
<a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#ac5a52929658fbe1ed19b4b03bdd63904ad4b9e47f65b6e79b010582f15785867e">Shutdown::WRITE</a>,
<a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#ac5a52929658fbe1ed19b4b03bdd63904aa7b843fb734e3b3fea8e5f902d3f4144">Shutdown::READ_WRITE</a>
}</td></tr>
<tr class="separator:ac5a52929658fbe1ed19b4b03bdd63904"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a321e42cc71f404ff9a1ae51108c92ef8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">SocketImpl::Kind</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a321e42cc71f404ff9a1ae51108c92ef8">kind</a> () const </td></tr>
<tr class="memdesc:a321e42cc71f404ff9a1ae51108c92ef8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the kind representing the underlying implementation of the <code><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html" title="An abstraction around a socket (file descriptor). ">Socket</a></code> instance. <a href="#a321e42cc71f404ff9a1ae51108c92ef8">More...</a><br/></td></tr>
<tr class="separator:a321e42cc71f404ff9a1ae51108c92ef8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88163658413e7817b7d6b442b7eb7dd6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a88163658413e7817b7d6b442b7eb7dd6">operator==</a> (const <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket</a> &amp;that) const </td></tr>
<tr class="separator:a88163658413e7817b7d6b442b7eb7dd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a766b71809970711c05029c28b60a0d62"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a766b71809970711c05029c28b60a0d62">operator int_fd</a> () const </td></tr>
<tr class="separator:a766b71809970711c05029c28b60a0d62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0a90b8a9cbc66e8042905a34652f2db"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>&lt; AddressType &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#ae0a90b8a9cbc66e8042905a34652f2db">address</a> () const </td></tr>
<tr class="separator:ae0a90b8a9cbc66e8042905a34652f2db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78158efb4187b3d5adac7e8b902378c4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>&lt; AddressType &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a78158efb4187b3d5adac7e8b902378c4">peer</a> () const </td></tr>
<tr class="separator:a78158efb4187b3d5adac7e8b902378c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9634920f3ca2ed414fab8ad242b67e6c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a9634920f3ca2ed414fab8ad242b67e6c">get</a> () const </td></tr>
<tr class="separator:a9634920f3ca2ed414fab8ad242b67e6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68eb3de09258bba9066e7c258abe4be8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>&lt; AddressType &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a68eb3de09258bba9066e7c258abe4be8">bind</a> (const AddressType &amp;<a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#ae0a90b8a9cbc66e8042905a34652f2db">address</a>)</td></tr>
<tr class="separator:a68eb3de09258bba9066e7c258abe4be8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47004344dd24c96f445f86fd5bd11b2c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>&lt; <a class="el" href="structNothing.html">Nothing</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a47004344dd24c96f445f86fd5bd11b2c">listen</a> (int backlog)</td></tr>
<tr class="separator:a47004344dd24c96f445f86fd5bd11b2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a710758874ebc05acdc9bee369254aa13"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classprocess_1_1Future.html">Future</a>&lt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a710758874ebc05acdc9bee369254aa13">accept</a> ()</td></tr>
<tr class="separator:a710758874ebc05acdc9bee369254aa13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa441e29328f4f4416a07689de4040022"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classprocess_1_1Future.html">Future</a>&lt; <a class="el" href="structNothing.html">Nothing</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#aa441e29328f4f4416a07689de4040022">connect</a> (const AddressType &amp;<a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#ae0a90b8a9cbc66e8042905a34652f2db">address</a>)</td></tr>
<tr class="separator:aa441e29328f4f4416a07689de4040022"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae81929b2f51bb910ed4ae1504284bffa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classprocess_1_1Future.html">Future</a>&lt; size_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#ae81929b2f51bb910ed4ae1504284bffa">recv</a> (char *data, size_t size) const </td></tr>
<tr class="separator:ae81929b2f51bb910ed4ae1504284bffa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78f8be2490ac380984f60f6081a5c8eb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classprocess_1_1Future.html">Future</a>&lt; size_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a78f8be2490ac380984f60f6081a5c8eb">send</a> (const char *data, size_t size) const </td></tr>
<tr class="separator:a78f8be2490ac380984f60f6081a5c8eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90bb4cd85693572a79192d8f2a044ed2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classprocess_1_1Future.html">Future</a>&lt; size_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a90bb4cd85693572a79192d8f2a044ed2">sendfile</a> (<a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd, off_t offset, size_t size) const </td></tr>
<tr class="separator:a90bb4cd85693572a79192d8f2a044ed2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83b6acc990b981a818eb2691a44fc6c4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classprocess_1_1Future.html">Future</a>&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a83b6acc990b981a818eb2691a44fc6c4">recv</a> (const <a class="el" href="classOption.html">Option</a>&lt; <a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a894c4d58faeee7675b9e7e8244de1386">ssize_t</a> &gt; &amp;size=<a class="el" href="structNone.html">None</a>())</td></tr>
<tr class="separator:a83b6acc990b981a818eb2691a44fc6c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85a9dda04473d40c874189b62efd19bd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classprocess_1_1Future.html">Future</a>&lt; <a class="el" href="structNothing.html">Nothing</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a85a9dda04473d40c874189b62efd19bd">send</a> (const std::string &amp;data)</td></tr>
<tr class="separator:a85a9dda04473d40c874189b62efd19bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a3d3554e93e4ec1ba3b2e64f7df0725"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>&lt; <a class="el" href="structNothing.html">Nothing</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a8a3d3554e93e4ec1ba3b2e64f7df0725">shutdown</a> (<a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#ac5a52929658fbe1ed19b4b03bdd63904">Shutdown</a> shutdown=<a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#ac5a52929658fbe1ed19b4b03bdd63904a3466fab4975481651940ed328aa990e4">Shutdown::READ</a>)</td></tr>
<tr class="separator:a8a3d3554e93e4ec1ba3b2e64f7df0725"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a044985d2955fb97d2d966a3d2a66dc86"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a044985d2955fb97d2d966a3d2a66dc86">operator Socket&lt; network::Address &gt;</a> () const </td></tr>
<tr class="separator:a044985d2955fb97d2d966a3d2a66dc86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53fdf50dfb3c7b2d3aa1bea321dba3ab"><td class="memTemplParams" colspan="2">template&lt;&gt; </td></tr>
<tr class="memitem:a53fdf50dfb3c7b2d3aa1bea321dba3ab"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>&lt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket</a>&lt; <a class="el" href="classprocess_1_1network_1_1Address.html">network::Address</a> &gt; &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a53fdf50dfb3c7b2d3aa1bea321dba3ab">create</a> (<a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">SocketImpl::Kind</a> <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a321e42cc71f404ff9a1ae51108c92ef8">kind</a>)=delete</td></tr>
<tr class="separator:a53fdf50dfb3c7b2d3aa1bea321dba3ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adfcb15ac455f4f06d7c10d812d0b1e16"><td class="memTemplParams" colspan="2">template&lt;&gt; </td></tr>
<tr class="memitem:adfcb15ac455f4f06d7c10d812d0b1e16"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>&lt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket</a>&lt; <a class="el" href="classprocess_1_1network_1_1Address.html">network::Address</a> &gt; &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#adfcb15ac455f4f06d7c10d812d0b1e16">create</a> (<a class="el" href="classprocess_1_1network_1_1Address.html#a0c9fa166dbf9c863a6ef68aa8343e3fc">Address::Family</a> family, <a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">SocketImpl::Kind</a> <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a321e42cc71f404ff9a1ae51108c92ef8">kind</a>)</td></tr>
<tr class="separator:adfcb15ac455f4f06d7c10d812d0b1e16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0fbcec9bb3b4ecfe298805e179c70f18"><td class="memTemplParams" colspan="2">template&lt;&gt; </td></tr>
<tr class="memitem:a0fbcec9bb3b4ecfe298805e179c70f18"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>&lt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket</a>&lt; <a class="el" href="classprocess_1_1network_1_1inet_1_1Address.html">inet::Address</a> &gt; &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a0fbcec9bb3b4ecfe298805e179c70f18">create</a> (<a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">SocketImpl::Kind</a> <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a321e42cc71f404ff9a1ae51108c92ef8">kind</a>)</td></tr>
<tr class="separator:a0fbcec9bb3b4ecfe298805e179c70f18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3122528b9327ba20e165ee01d2767f7a"><td class="memTemplParams" colspan="2">template&lt;&gt; </td></tr>
<tr class="memitem:a3122528b9327ba20e165ee01d2767f7a"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>&lt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket</a>&lt; <a class="el" href="classprocess_1_1network_1_1inet_1_1Address.html">inet::Address</a> &gt; &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a3122528b9327ba20e165ee01d2767f7a">create</a> (<a class="el" href="classprocess_1_1network_1_1Address.html#a0c9fa166dbf9c863a6ef68aa8343e3fc">Address::Family</a> family, <a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">SocketImpl::Kind</a> <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a321e42cc71f404ff9a1ae51108c92ef8">kind</a>)=delete</td></tr>
<tr class="separator:a3122528b9327ba20e165ee01d2767f7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0213557d5d95514f99283d16724694a"><td class="memTemplParams" colspan="2">template&lt;&gt; </td></tr>
<tr class="memitem:ac0213557d5d95514f99283d16724694a"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>&lt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket</a>&lt; <a class="el" href="classprocess_1_1network_1_1unix_1_1Address.html">unix::Address</a> &gt; &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#ac0213557d5d95514f99283d16724694a">create</a> (<a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">SocketImpl::Kind</a> <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a321e42cc71f404ff9a1ae51108c92ef8">kind</a>)</td></tr>
<tr class="separator:ac0213557d5d95514f99283d16724694a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad27271cc7bc094c080af34bc56519b8c"><td class="memTemplParams" colspan="2">template&lt;&gt; </td></tr>
<tr class="memitem:ad27271cc7bc094c080af34bc56519b8c"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>&lt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket</a>&lt; <a class="el" href="classprocess_1_1network_1_1unix_1_1Address.html">unix::Address</a> &gt; &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#ad27271cc7bc094c080af34bc56519b8c">create</a> (<a class="el" href="classprocess_1_1network_1_1Address.html#a0c9fa166dbf9c863a6ef68aa8343e3fc">Address::Family</a> family, <a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">SocketImpl::Kind</a> <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a321e42cc71f404ff9a1ae51108c92ef8">kind</a>)=delete</td></tr>
<tr class="separator:ad27271cc7bc094c080af34bc56519b8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a63ec4379f16d4f8dbf39f91b1be74a31"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classTry.html">Try</a>&lt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a63ec4379f16d4f8dbf39f91b1be74a31">create</a> (<a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> s, <a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">SocketImpl::Kind</a> <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a321e42cc71f404ff9a1ae51108c92ef8">kind</a>=<a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a6ef4668e83adac7bb0ff2b54e1a30ecc">SocketImpl::DEFAULT_KIND</a>())</td></tr>
<tr class="memdesc:a63ec4379f16d4f8dbf39f91b1be74a31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an instance of a <code><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html" title="An abstraction around a socket (file descriptor). ">Socket</a></code> using the specified kind of implementation. <a href="#a63ec4379f16d4f8dbf39f91b1be74a31">More...</a><br/></td></tr>
<tr class="separator:a63ec4379f16d4f8dbf39f91b1be74a31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb875fbdbdf693e431c441534aa6dbc0"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classTry.html">Try</a>&lt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#adb875fbdbdf693e431c441534aa6dbc0">create</a> (<a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">SocketImpl::Kind</a> <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a321e42cc71f404ff9a1ae51108c92ef8">kind</a>=<a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a6ef4668e83adac7bb0ff2b54e1a30ecc">SocketImpl::DEFAULT_KIND</a>())</td></tr>
<tr class="memdesc:adb875fbdbdf693e431c441534aa6dbc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an instance of a <code><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html" title="An abstraction around a socket (file descriptor). ">Socket</a></code> using <code>AddressType</code> to determine the address family to use. <a href="#adb875fbdbdf693e431c441534aa6dbc0">More...</a><br/></td></tr>
<tr class="separator:adb875fbdbdf693e431c441534aa6dbc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8836e91894a8b54e2e5bec43d91d64a0"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classTry.html">Try</a>&lt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a8836e91894a8b54e2e5bec43d91d64a0">create</a> (<a class="el" href="classprocess_1_1network_1_1Address.html#a0c9fa166dbf9c863a6ef68aa8343e3fc">Address::Family</a> family, <a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">SocketImpl::Kind</a> <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a321e42cc71f404ff9a1ae51108c92ef8">kind</a>=<a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a6ef4668e83adac7bb0ff2b54e1a30ecc">SocketImpl::DEFAULT_KIND</a>())</td></tr>
<tr class="memdesc:a8836e91894a8b54e2e5bec43d91d64a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an instance of a <code><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html" title="An abstraction around a socket (file descriptor). ">Socket</a></code> using the specified <code><a class="el" href="classprocess_1_1network_1_1Address.html#a0c9fa166dbf9c863a6ef68aa8343e3fc">Address::Family</a></code> to determine the address family to use. <a href="#a8836e91894a8b54e2e5bec43d91d64a0">More...</a><br/></td></tr>
<tr class="separator:a8836e91894a8b54e2e5bec43d91d64a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a4c6b05834cc8a65c85de7bdb32aac069"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a4c6b05834cc8a65c85de7bdb32aac069"><td class="memTemplItemLeft" align="right" valign="top">class&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a4c6b05834cc8a65c85de7bdb32aac069">Socket</a></td></tr>
<tr class="separator:a4c6b05834cc8a65c85de7bdb32aac069"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename AddressType&gt;<br/>
class process::network::internal::Socket&lt; AddressType &gt;</h3>
<p>An abstraction around a socket (file descriptor). </p>
<p>Provides reference counting such that the socket is only closed (and thus, has the possiblity of being reused) after there are no more references. </p>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a class="anchor" id="ac5a52929658fbe1ed19b4b03bdd63904"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename AddressType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#ac5a52929658fbe1ed19b4b03bdd63904">process::network::internal::Socket::Shutdown</a></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">strong</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ac5a52929658fbe1ed19b4b03bdd63904a3466fab4975481651940ed328aa990e4"></a>READ</em>&nbsp;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ac5a52929658fbe1ed19b4b03bdd63904ad4b9e47f65b6e79b010582f15785867e"></a>WRITE</em>&nbsp;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ac5a52929658fbe1ed19b4b03bdd63904aa7b843fb734e3b3fea8e5f902d3f4144"></a>READ_WRITE</em>&nbsp;</td><td class="fielddoc">
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a710758874ebc05acdc9bee369254aa13"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename AddressType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classprocess_1_1Future.html">Future</a>&lt;<a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket</a>&gt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">process::network::internal::Socket</a>&lt; AddressType &gt;::accept </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ae0a90b8a9cbc66e8042905a34652f2db"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename AddressType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classTry.html">Try</a>&lt;AddressType&gt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">process::network::internal::Socket</a>&lt; AddressType &gt;::address </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a68eb3de09258bba9066e7c258abe4be8"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename AddressType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classTry.html">Try</a>&lt;AddressType&gt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">process::network::internal::Socket</a>&lt; AddressType &gt;::bind </td>
<td>(</td>
<td class="paramtype">const AddressType &amp;&#160;</td>
<td class="paramname"><em>address</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aa441e29328f4f4416a07689de4040022"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename AddressType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classprocess_1_1Future.html">Future</a>&lt;<a class="el" href="structNothing.html">Nothing</a>&gt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">process::network::internal::Socket</a>&lt; AddressType &gt;::connect </td>
<td>(</td>
<td class="paramtype">const AddressType &amp;&#160;</td>
<td class="paramname"><em>address</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a63ec4379f16d4f8dbf39f91b1be74a31"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename AddressType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="classTry.html">Try</a>&lt;<a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket</a>&gt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">process::network::internal::Socket</a>&lt; AddressType &gt;::create </td>
<td>(</td>
<td class="paramtype"><a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>&#160;</td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">SocketImpl::Kind</a>&#160;</td>
<td class="paramname"><em>kind</em> = <code><a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a6ef4668e83adac7bb0ff2b54e1a30ecc">SocketImpl::DEFAULT_KIND</a>()</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns an instance of a <code><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html" title="An abstraction around a socket (file descriptor). ">Socket</a></code> using the specified kind of implementation. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">s</td><td>Optional. The file descriptor to wrap with the <code><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html" title="An abstraction around a socket (file descriptor). ">Socket</a></code>. </td></tr>
<tr><td class="paramname">kind</td><td>Optional. The desired <code><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html" title="An abstraction around a socket (file descriptor). ">Socket</a></code> implementation.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>An instance of a <code><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html" title="An abstraction around a socket (file descriptor). ">Socket</a></code>. </dd></dl>
</div>
</div>
<a class="anchor" id="adb875fbdbdf693e431c441534aa6dbc0"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename AddressType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="classTry.html">Try</a>&lt;<a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket</a>&gt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">process::network::internal::Socket</a>&lt; AddressType &gt;::create </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">SocketImpl::Kind</a>&#160;</td>
<td class="paramname"><em>kind</em> = <code><a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a6ef4668e83adac7bb0ff2b54e1a30ecc">SocketImpl::DEFAULT_KIND</a>()</code></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns an instance of a <code><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html" title="An abstraction around a socket (file descriptor). ">Socket</a></code> using <code>AddressType</code> to determine the address family to use. </p>
<p>An optional implementation kind can be specified. The NONBLOCK and CLOEXEC options will be set on the underlying file descriptor for the socket.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">kind</td><td>Optional. The desired <code><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html" title="An abstraction around a socket (file descriptor). ">Socket</a></code> implementation.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>An instance of a <code><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html" title="An abstraction around a socket (file descriptor). ">Socket</a></code>. </dd></dl>
</div>
</div>
<a class="anchor" id="a8836e91894a8b54e2e5bec43d91d64a0"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename AddressType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="classTry.html">Try</a>&lt;<a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket</a>&gt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">process::network::internal::Socket</a>&lt; AddressType &gt;::create </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classprocess_1_1network_1_1Address.html#a0c9fa166dbf9c863a6ef68aa8343e3fc">Address::Family</a>&#160;</td>
<td class="paramname"><em>family</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">SocketImpl::Kind</a>&#160;</td>
<td class="paramname"><em>kind</em> = <code><a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a6ef4668e83adac7bb0ff2b54e1a30ecc">SocketImpl::DEFAULT_KIND</a>()</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns an instance of a <code><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html" title="An abstraction around a socket (file descriptor). ">Socket</a></code> using the specified <code><a class="el" href="classprocess_1_1network_1_1Address.html#a0c9fa166dbf9c863a6ef68aa8343e3fc">Address::Family</a></code> to determine the address family to use. </p>
<p>An optional implementation kind can be specified. The NONBLOCK and CLOEXEC options will be set on the underlying file descriptor for the socket.</p>
<p>NOTE: this is only defined for <code>AddressType</code> of <code><a class="el" href="classprocess_1_1network_1_1Address.html">network::Address</a></code>, all others are explicitly deleted.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">kind</td><td>Optional. The desired <code><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html" title="An abstraction around a socket (file descriptor). ">Socket</a></code> implementation.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>An instance of a <code><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html" title="An abstraction around a socket (file descriptor). ">Socket</a></code>. </dd></dl>
</div>
</div>
<a class="anchor" id="a53fdf50dfb3c7b2d3aa1bea321dba3ab"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classTry.html">Try</a>&lt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket</a>&lt; <a class="el" href="classprocess_1_1network_1_1Address.html">network::Address</a> &gt; &gt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">process::network::internal::Socket</a>&lt; <a class="el" href="classprocess_1_1network_1_1Address.html">network::Address</a> &gt;::create </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">SocketImpl::Kind</a>&#160;</td>
<td class="paramname"><em>kind</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="adfcb15ac455f4f06d7c10d812d0b1e16"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classTry.html">Try</a>&lt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket</a>&lt; <a class="el" href="classprocess_1_1network_1_1Address.html">network::Address</a> &gt; &gt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">process::network::internal::Socket</a>&lt; <a class="el" href="classprocess_1_1network_1_1Address.html">network::Address</a> &gt;::create </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classprocess_1_1network_1_1Address.html#a0c9fa166dbf9c863a6ef68aa8343e3fc">Address::Family</a>&#160;</td>
<td class="paramname"><em>family</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">SocketImpl::Kind</a>&#160;</td>
<td class="paramname"><em>kind</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a0fbcec9bb3b4ecfe298805e179c70f18"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classTry.html">Try</a>&lt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket</a>&lt; <a class="el" href="classprocess_1_1network_1_1inet_1_1Address.html">inet::Address</a> &gt; &gt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">process::network::internal::Socket</a>&lt; <a class="el" href="classprocess_1_1network_1_1inet_1_1Address.html">inet::Address</a> &gt;::create </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">SocketImpl::Kind</a>&#160;</td>
<td class="paramname"><em>kind</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a3122528b9327ba20e165ee01d2767f7a"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classTry.html">Try</a>&lt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket</a>&lt; <a class="el" href="classprocess_1_1network_1_1inet_1_1Address.html">inet::Address</a> &gt; &gt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">process::network::internal::Socket</a>&lt; <a class="el" href="classprocess_1_1network_1_1inet_1_1Address.html">inet::Address</a> &gt;::create </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classprocess_1_1network_1_1Address.html#a0c9fa166dbf9c863a6ef68aa8343e3fc">Address::Family</a>&#160;</td>
<td class="paramname"><em>family</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">SocketImpl::Kind</a>&#160;</td>
<td class="paramname"><em>kind</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ac0213557d5d95514f99283d16724694a"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classTry.html">Try</a>&lt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket</a>&lt; <a class="el" href="classprocess_1_1network_1_1unix_1_1Address.html">unix::Address</a> &gt; &gt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">process::network::internal::Socket</a>&lt; <a class="el" href="classprocess_1_1network_1_1unix_1_1Address.html">unix::Address</a> &gt;::create </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">SocketImpl::Kind</a>&#160;</td>
<td class="paramname"><em>kind</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ad27271cc7bc094c080af34bc56519b8c"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classTry.html">Try</a>&lt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket</a>&lt; <a class="el" href="classprocess_1_1network_1_1unix_1_1Address.html">unix::Address</a> &gt; &gt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">process::network::internal::Socket</a>&lt; <a class="el" href="classprocess_1_1network_1_1unix_1_1Address.html">unix::Address</a> &gt;::create </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classprocess_1_1network_1_1Address.html#a0c9fa166dbf9c863a6ef68aa8343e3fc">Address::Family</a>&#160;</td>
<td class="paramname"><em>family</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">SocketImpl::Kind</a>&#160;</td>
<td class="paramname"><em>kind</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a9634920f3ca2ed414fab8ad242b67e6c"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename AddressType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">process::network::internal::Socket</a>&lt; AddressType &gt;::get </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a321e42cc71f404ff9a1ae51108c92ef8"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename AddressType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">SocketImpl::Kind</a> <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">process::network::internal::Socket</a>&lt; AddressType &gt;::kind </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the kind representing the underlying implementation of the <code><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html" title="An abstraction around a socket (file descriptor). ">Socket</a></code> instance. </p>
<dl class="section see"><dt>See Also</dt><dd>process::network::Socket::Kind </dd></dl>
</div>
</div>
<a class="anchor" id="a47004344dd24c96f445f86fd5bd11b2c"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename AddressType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classTry.html">Try</a>&lt;<a class="el" href="structNothing.html">Nothing</a>&gt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">process::network::internal::Socket</a>&lt; AddressType &gt;::listen </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>backlog</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a766b71809970711c05029c28b60a0d62"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename AddressType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">process::network::internal::Socket</a>&lt; AddressType &gt;::operator <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a044985d2955fb97d2d966a3d2a66dc86"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename AddressType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">process::network::internal::Socket</a>&lt; AddressType &gt;::operator <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket</a>&lt; <a class="el" href="classprocess_1_1network_1_1Address.html">network::Address</a> &gt; </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a88163658413e7817b7d6b442b7eb7dd6"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename AddressType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">process::network::internal::Socket</a>&lt; AddressType &gt;::operator== </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket</a>&lt; AddressType &gt; &amp;&#160;</td>
<td class="paramname"><em>that</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a78158efb4187b3d5adac7e8b902378c4"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename AddressType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classTry.html">Try</a>&lt;AddressType&gt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">process::network::internal::Socket</a>&lt; AddressType &gt;::peer </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ae81929b2f51bb910ed4ae1504284bffa"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename AddressType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classprocess_1_1Future.html">Future</a>&lt;size_t&gt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">process::network::internal::Socket</a>&lt; AddressType &gt;::recv </td>
<td>(</td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a83b6acc990b981a818eb2691a44fc6c4"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename AddressType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classprocess_1_1Future.html">Future</a>&lt;std::string&gt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">process::network::internal::Socket</a>&lt; AddressType &gt;::recv </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classOption.html">Option</a>&lt; <a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a894c4d58faeee7675b9e7e8244de1386">ssize_t</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>size</em> = <code><a class="el" href="structNone.html">None</a>()</code></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a78f8be2490ac380984f60f6081a5c8eb"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename AddressType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classprocess_1_1Future.html">Future</a>&lt;size_t&gt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">process::network::internal::Socket</a>&lt; AddressType &gt;::send </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a85a9dda04473d40c874189b62efd19bd"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename AddressType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classprocess_1_1Future.html">Future</a>&lt;<a class="el" href="structNothing.html">Nothing</a>&gt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">process::network::internal::Socket</a>&lt; AddressType &gt;::send </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>data</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a90bb4cd85693572a79192d8f2a044ed2"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename AddressType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classprocess_1_1Future.html">Future</a>&lt;size_t&gt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">process::network::internal::Socket</a>&lt; AddressType &gt;::sendfile </td>
<td>(</td>
<td class="paramtype"><a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>&#160;</td>
<td class="paramname"><em>fd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">off_t&#160;</td>
<td class="paramname"><em>offset</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a8a3d3554e93e4ec1ba3b2e64f7df0725"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename AddressType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classTry.html">Try</a>&lt;<a class="el" href="structNothing.html">Nothing</a>&gt; <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">process::network::internal::Socket</a>&lt; AddressType &gt;::shutdown </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#ac5a52929658fbe1ed19b4b03bdd63904">Shutdown</a>&#160;</td>
<td class="paramname"><em>shutdown</em> = <code><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#ac5a52929658fbe1ed19b4b03bdd63904a3466fab4975481651940ed328aa990e4">Shutdown::READ</a></code></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a class="anchor" id="a4c6b05834cc8a65c85de7bdb32aac069"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename AddressType &gt; </div>
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">friend class <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket</a></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>3rdparty/libprocess/include/process/<a class="el" href="libprocess_2include_2process_2socket_8hpp_source.html">socket.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</small></address>
</body>
</html>