Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > b293cf61b174f6cb974e48c9096dc9b3 > files > 621

lib64commoncpp-devel-1.8.1-7.mga4.x86_64.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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>GNU CommonC++: socket.h Source File</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">GNU CommonC++
   </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="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</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 id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="dir_6b3e09e31d3da6038137f0238e9fb19b.html">cc++</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">socket.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="socket_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">// Copyright (C) 1999-2005 Open Source Telecom Corporation.</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">// Copyright (C) 2009 Leandro Melo de Sales &lt;leandroal@gmail.com&gt;</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">// Copyright (C) 2006-2010 David Sugar, Tycho Softworks,</span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">// This program is free software; you can redistribute it and/or modify</span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">// the Free Software Foundation; either version 2 of the License, or</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">// (at your option) any later version.</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span></div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment">// along with this program; if not, write to the Free Software</span></div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment">// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.</span></div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment">// As a special exception, you may use this file as part of a free software</span></div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment">// library without restriction.  Specifically, if other files instantiate</span></div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment">// templates or use macros or inline functions from this file, or you compile</span></div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment">// this file and link it with other files to produce an executable, this</span></div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment">// file does not by itself cause the resulting executable to be covered by</span></div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment">// the GNU General Public License.  This exception does not however</span></div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment">// invalidate any other reasons why the executable file might be covered by</span></div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment">// the GNU General Public License.</span></div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment">// This exception applies only to the code released under the name GNU</span></div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment">// Common C++.  If you copy code from other releases into a copy of GNU</span></div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment">// Common C++, as the General Public License permits, the exception does</span></div>
<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment">// not apply to the code that you add in this way.  To avoid misleading</span></div>
<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment">// anyone as to the status of such modified files, you must delete</span></div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="comment">// this exception notice from them.</span></div>
<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="comment">// If you write modifications of your own for GNU Common C++, it is your choice</span></div>
<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="comment">// whether to permit this exception to apply to your modifications.</span></div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="comment">// If you do not wish that, delete this exception notice.</span></div>
<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div>
<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#ifndef CCXX_SOCKET_H_</span></div>
<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CCXX_SOCKET_H_</span></div>
<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">#ifndef CCXX_ADDRESS_H_</span></div>
<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &lt;<a class="code" href="address_8h.html">cc++/address.h</a>&gt;</span></div>
<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="preprocessor">#if defined(WIN32) &amp;&amp; !defined(__CYGWIN32__)</span></div>
<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &lt;io.h&gt;</span></div>
<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">#define _IOLEN64    (unsigned)</span></div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define _IORET64    (int)</span></div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define TIMEOUT_INF ~((timeout_t) 0)</span></div>
<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="preprocessor"></span><span class="keyword">typedef</span> <span class="keywordtype">int</span> socklen_t;</div>
<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="socket_8h.html#a26769957ec1a2beaf223f33b66ee64ab">   59</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define INVALID_SOCKET  -1</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="socket_8h.html#a8dc8083897335125630f1af5dafd5831">   60</a></span>&#160;<span class="preprocessor"></span><span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="socket_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a>;</div>
<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="preprocessor">#ifndef _IOLEN64</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="socket_8h.html#addbcacf8e7b5164e650dc7f2ab47fea1">   64</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define _IOLEN64</span></div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="preprocessor">#ifndef _IORET64</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="socket_8h.html#a35f7b32f9389e9dade562c8bbe0514f6">   68</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define _IORET64</span></div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="preprocessor">#ifndef MSG_DONTWAIT</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="socket_8h.html#ab18d3d439e4a9c8d0f73e7166e8eb376">   72</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define MSG_DONTWAIT    0</span></div>
<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="preprocessor">#ifndef MSG_NOSIGNAL</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="socket_8h.html#a9f55d0e90dc8cc6b2287312435cdde48">   76</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define MSG_NOSIGNAL    0</span></div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="preprocessor">#ifndef SOCK_DCCP</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="socket_8h.html#a4f9a3faa2c7b9488103960ead54e7d88">   80</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define SOCK_DCCP       6</span></div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifndef IPPROTO_DCCP</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="socket_8h.html#abe40d548994c51723b9da30440be3c08">   83</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define IPPROTO_DCCP    33</span></div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifndef SOL_DCCP</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="socket_8h.html#ab2290ff3727586e79a74d1319a9fec83">   86</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define SOL_DCCP       269</span></div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="socket_8h.html#a16c181b16f7720e75f6cc61535cc122d">   88</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define DCCP_SOCKOPT_AVAILABLE_CCIDS    12</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="socket_8h.html#ad44ca1305ac56bb818451e8b63bbe7a2">   89</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define DCCP_SOCKOPT_CCID               13</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="socket_8h.html#af9af996be1e65747467d42107a9fcaa0">   90</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define DCCP_SOCKOPT_TX_CCID            14</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="socket_8h.html#af81f3e7855b319a6eef64a91256c93e1">   91</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define DCCP_SOCKOPT_RX_CCID            15</span></div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="preprocessor">#ifdef  CCXX_NAMESPACES</span></div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="preprocessor"></span><span class="keyword">namespace </span>ost {</div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a>;</div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;</div>
<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html">  119</a></span>&#160;<span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_socket.html">Socket</a></div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;{</div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a36a69681caa020f1abed34ae71d206ef">  122</a></span>&#160;    <span class="keyword">enum</span> <a class="code" href="classost_1_1_socket.html#a36a69681caa020f1abed34ae71d206ef">Family</a> {</div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a36a69681caa020f1abed34ae71d206efae49b01941932c262f6fbbc8e21d3340d">  124</a></span>&#160;<span class="preprocessor"></span>        IPV6 = AF_INET6,</div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a36a69681caa020f1abed34ae71d206efa5bd9a46a5c0f46815c98feeb02e5e926">  126</a></span>&#160;<span class="preprocessor"></span>        IPV4 = AF_INET</div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    };</div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;</div>
<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#aaa032e41b920b38a79c875b8ae375799">  129</a></span>&#160;    <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="classost_1_1_socket.html#a36a69681caa020f1abed34ae71d206ef">Family</a> <a class="code" href="classost_1_1_socket.html#a36a69681caa020f1abed34ae71d206ef">Family</a>;</div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;</div>
<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">  131</a></span>&#160;    <span class="keyword">enum</span> <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> {</div>
<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa706ac48f0deba4e591d9668ea79962e8">  132</a></span>&#160;        errSuccess = 0,</div>
<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa8d1d01d77a141c804b50456d70b94e46">  133</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa8d1d01d77a141c804b50456d70b94e46">errCreateFailed</a>,</div>
<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa394bc212b3ab9c69dcb47b1412cedb53">  134</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa394bc212b3ab9c69dcb47b1412cedb53">errCopyFailed</a>,</div>
<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3faa5b3fc41be74d485b9aca2af43d27424">  135</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3faa5b3fc41be74d485b9aca2af43d27424">errInput</a>,</div>
<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fac1c33a97e722515f9851b116dc7bf2c5">  136</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fac1c33a97e722515f9851b116dc7bf2c5">errInputInterrupt</a>,</div>
<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa5833cd0e1a43ae7d420e62ce0851611e">  137</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa5833cd0e1a43ae7d420e62ce0851611e">errResourceFailure</a>,</div>
<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa1c7ee1231e7e7f8e8b6b1447d6f15090">  138</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa1c7ee1231e7e7f8e8b6b1447d6f15090">errOutput</a>,</div>
<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3faf67d1bcf85481bc4dd222f91e92deeb4">  139</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3faf67d1bcf85481bc4dd222f91e92deeb4">errOutputInterrupt</a>,</div>
<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa672dcab0341a211dcb14e0f848e9b5f9">  140</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa672dcab0341a211dcb14e0f848e9b5f9">errNotConnected</a>,</div>
<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fade54564fcb05a1744ccbf94f5a1b57a5">  141</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fade54564fcb05a1744ccbf94f5a1b57a5">errConnectRefused</a>,</div>
<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa837e20c1c3c6cf12d670f87afc1e8f66">  142</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa837e20c1c3c6cf12d670f87afc1e8f66">errConnectRejected</a>,</div>
<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3faf1a03fa32f971b5077ebf1cf749e90fa">  143</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3faf1a03fa32f971b5077ebf1cf749e90fa">errConnectTimeout</a>,</div>
<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa7646955354dce1249d606a2369ea6eaa">  144</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa7646955354dce1249d606a2369ea6eaa">errConnectFailed</a>,</div>
<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa1629a51edc39b379b3736a07d07bd782">  145</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa1629a51edc39b379b3736a07d07bd782">errConnectInvalid</a>,</div>
<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fad21ca357b1645094f6ddcbac26a4deed">  146</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fad21ca357b1645094f6ddcbac26a4deed">errConnectBusy</a>,</div>
<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa42e56e9bcd983284be704de1400d991d">  147</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa42e56e9bcd983284be704de1400d991d">errConnectNoRoute</a>,</div>
<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa61d62014cda69b8d77dd07141f59252b">  148</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa61d62014cda69b8d77dd07141f59252b">errBindingFailed</a>,</div>
<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fac3609d1255c9a57b86edc1c9a9a79e42">  149</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fac3609d1255c9a57b86edc1c9a9a79e42">errBroadcastDenied</a>,</div>
<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3faa352506dcb7b1d118837c1808944466f">  150</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3faa352506dcb7b1d118837c1808944466f">errRoutingDenied</a>,</div>
<div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa4e60741a75df84410263a3113090f55a">  151</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa4e60741a75df84410263a3113090f55a">errKeepaliveDenied</a>,</div>
<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa6a5e613ed6f8b222d924e419943a870c">  152</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa6a5e613ed6f8b222d924e419943a870c">errServiceDenied</a>,</div>
<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa4739d2c04636eff1971b3648bda5f672">  153</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa4739d2c04636eff1971b3648bda5f672">errServiceUnavailable</a>,</div>
<div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa8753eb8cc4591d5288c72ba2c91ea956">  154</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa8753eb8cc4591d5288c72ba2c91ea956">errMulticastDisabled</a>,</div>
<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa5d0c869dc200b3cd1eab866816dc217a">  155</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa5d0c869dc200b3cd1eab866816dc217a">errTimeout</a>,</div>
<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fafe1fd02e79a208ee781a5b41f7fb5814">  156</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fafe1fd02e79a208ee781a5b41f7fb5814">errNoDelay</a>,</div>
<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa8f699326e6567ea4171d5821fa417e35">  157</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa8f699326e6567ea4171d5821fa417e35">errExtended</a>,</div>
<div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa337bdb7f7512963ef0354f8be541c71e">  158</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa337bdb7f7512963ef0354f8be541c71e">errLookupFail</a>,</div>
<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa8939131de2df58fc2327933cbd024e49">  159</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa8939131de2df58fc2327933cbd024e49">errSearchErr</a>,</div>
<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa9ede2afac3c4df2fd5671d48cbf546dc">  160</a></span>&#160;        errInvalidValue</div>
<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    };</div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;</div>
<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a3306a277326459f69aa69b474f50d6e2">  163</a></span>&#160;    <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a>;</div>
<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;</div>
<div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a258f81f5a42d051242f0f49f8192f890">  165</a></span>&#160;    <span class="keyword">enum</span> <a class="code" href="classost_1_1_socket.html#a258f81f5a42d051242f0f49f8192f890">Tos</a> {</div>
<div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a258f81f5a42d051242f0f49f8192f890a2199fbf8a1e891120f27a67559e9b6ff">  166</a></span>&#160;        tosLowDelay = 0,</div>
<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a258f81f5a42d051242f0f49f8192f890ae805c8e2bc547dbc94b32ccc19c1396b">  167</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#a258f81f5a42d051242f0f49f8192f890ae805c8e2bc547dbc94b32ccc19c1396b">tosThroughput</a>,</div>
<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a258f81f5a42d051242f0f49f8192f890ad0e7d077cb9c6e6f3e702bc735af87d4">  168</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#a258f81f5a42d051242f0f49f8192f890ad0e7d077cb9c6e6f3e702bc735af87d4">tosReliability</a>,</div>
<div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a258f81f5a42d051242f0f49f8192f890aed0323ec6ea800b824853441c4ccd3e8">  169</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#a258f81f5a42d051242f0f49f8192f890aed0323ec6ea800b824853441c4ccd3e8">tosMinCost</a>,</div>
<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a258f81f5a42d051242f0f49f8192f890ac0b92a366fed8d304b3c91323aa49a15">  170</a></span>&#160;        tosInvalid</div>
<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    };</div>
<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a7caa0e1bb24b387bd1c5b8240ea592e1">  172</a></span>&#160;    <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="classost_1_1_socket.html#a258f81f5a42d051242f0f49f8192f890">Tos</a> <a class="code" href="classost_1_1_socket.html#a258f81f5a42d051242f0f49f8192f890">Tos</a>;</div>
<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;</div>
<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a2cb9ccad21fc2f10c23e45cbb99bc6f8">  174</a></span>&#160;    <span class="keyword">enum</span> <a class="code" href="classost_1_1_socket.html#a2cb9ccad21fc2f10c23e45cbb99bc6f8">Pending</a> {</div>
<div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a2cb9ccad21fc2f10c23e45cbb99bc6f8af2d41647f208c78eb97fe77196c55ccc">  175</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#a2cb9ccad21fc2f10c23e45cbb99bc6f8af2d41647f208c78eb97fe77196c55ccc">pendingInput</a>,</div>
<div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a2cb9ccad21fc2f10c23e45cbb99bc6f8a0c9ffb2c87eb616774ea812fc9739efd">  176</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#a2cb9ccad21fc2f10c23e45cbb99bc6f8a0c9ffb2c87eb616774ea812fc9739efd">pendingOutput</a>,</div>
<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a2cb9ccad21fc2f10c23e45cbb99bc6f8ad3bac41d6ea72956235766139b8742d6">  177</a></span>&#160;        pendingError</div>
<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;    };</div>
<div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ac2fe3b8bf4dfc66c7df11dfa1ce4415c">  179</a></span>&#160;    <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="classost_1_1_socket.html#a2cb9ccad21fc2f10c23e45cbb99bc6f8">Pending</a> <a class="code" href="classost_1_1_socket.html#a2cb9ccad21fc2f10c23e45cbb99bc6f8">Pending</a>;</div>
<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;</div>
<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ad17e0a386f4c50a57db3bebe55571066">  182</a></span>&#160;    <span class="keyword">enum</span> <a class="code" href="classost_1_1_socket.html#ad17e0a386f4c50a57db3bebe55571066">State</a> {</div>
<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ad17e0a386f4c50a57db3bebe55571066abd827e310a97ea890353a7ee5f92885c">  183</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ad17e0a386f4c50a57db3bebe55571066abd827e310a97ea890353a7ee5f92885c">INITIAL</a>,</div>
<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ad17e0a386f4c50a57db3bebe55571066a9181006b79c1fc5111fa9fd8adced04d">  184</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ad17e0a386f4c50a57db3bebe55571066a9181006b79c1fc5111fa9fd8adced04d">AVAILABLE</a>,</div>
<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ad17e0a386f4c50a57db3bebe55571066a6f74458d0045b716df163290d56a5c85">  185</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ad17e0a386f4c50a57db3bebe55571066a6f74458d0045b716df163290d56a5c85">BOUND</a>,</div>
<div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ad17e0a386f4c50a57db3bebe55571066a421a6e01dfd1841341d0dbcd7e821aa6">  186</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ad17e0a386f4c50a57db3bebe55571066a421a6e01dfd1841341d0dbcd7e821aa6">CONNECTED</a>,</div>
<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ad17e0a386f4c50a57db3bebe55571066a8240e96a84fba05c787ee8f770bbc47d">  187</a></span>&#160;        <a class="code" href="classost_1_1_socket.html#ad17e0a386f4c50a57db3bebe55571066a8240e96a84fba05c787ee8f770bbc47d">CONNECTING</a>,</div>
<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ad17e0a386f4c50a57db3bebe55571066af623db6499fd0e2eca13da3c94048fd0">  188</a></span>&#160;        STREAM</div>
<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    };</div>
<div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ac8890572886dca1a03a775997f04abba">  190</a></span>&#160;    <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="classost_1_1_socket.html#ad17e0a386f4c50a57db3bebe55571066">State</a> <a class="code" href="classost_1_1_socket.html#ad17e0a386f4c50a57db3bebe55571066">State</a>;</div>
<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;</div>
<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    <span class="comment">// used by exception handlers....</span></div>
<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    <span class="keyword">mutable</span> <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> errid;</div>
<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    <span class="keyword">mutable</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *errstr;</div>
<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    <span class="keyword">mutable</span> <span class="keywordtype">long</span> syserr;</div>
<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;</div>
<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    <span class="keywordtype">void</span> setSocket(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    <span class="keyword">friend</span> <a class="code" href="socket_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> dupSocket(<a class="code" href="socket_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s,<a class="code" href="classost_1_1_socket.html#ad17e0a386f4c50a57db3bebe55571066">Socket::State</a> state);</div>
<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;</div>
<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a795099d3d68f4c3bf7731f263cbd1ace">  202</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="classost_1_1_mutex.html">Mutex</a> <a class="code" href="classost_1_1_socket.html#a795099d3d68f4c3bf7731f263cbd1ace">mutex</a>;</div>
<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;</div>
<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;    <span class="keyword">mutable</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a9ade0c61ad6d9b0d27c71497b6e68bd5">  205</a></span>&#160;        <span class="keywordtype">bool</span> thrown: 1;</div>
<div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a2b6b25a155d401b661d62eef57754bfa">  206</a></span>&#160;        <span class="keywordtype">bool</span> broadcast: 1;</div>
<div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a118af6ea8eba44a8dbe687f2d31a9022">  207</a></span>&#160;        <span class="keywordtype">bool</span> route: 1;</div>
<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a507d2a060e03c63bbdf0599ffa9d555a">  208</a></span>&#160;        <span class="keywordtype">bool</span> keepalive: 1;</div>
<div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a19604a7ca524f3ee4c7623c7c237ff69">  209</a></span>&#160;        <span class="keywordtype">bool</span> loopback: 1;</div>
<div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a85db9df29af07929253387d76c59ab2b">  210</a></span>&#160;        <span class="keywordtype">bool</span> multicast: 1;</div>
<div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#af1ef1afa83f77869dc56910ff289d0c5">  211</a></span>&#160;        <span class="keywordtype">bool</span> completion: 1;</div>
<div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a617e01f010e15ec81be466052a5a378e">  212</a></span>&#160;        <span class="keywordtype">bool</span> linger: 1;</div>
<div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a6adc7a5d594ab3b8bace496f7a6757e9">  213</a></span>&#160;        <span class="keywordtype">unsigned</span> ttl: 8;</div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    } flags;</div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;</div>
<div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#af1291caf47c2e2e72a3214e4da206b07">  221</a></span>&#160;    <a class="code" href="socket_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> <span class="keyword">volatile</span> <a class="code" href="classost_1_1_socket.html#af1291caf47c2e2e72a3214e4da206b07">so</a>;</div>
<div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a72526c7c326a7faa20e96e9be01981ba">  222</a></span>&#160;    <a class="code" href="classost_1_1_socket.html#ad17e0a386f4c50a57db3bebe55571066">State</a> <span class="keyword">volatile</span> <a class="code" href="classost_1_1_socket.html#a72526c7c326a7faa20e96e9be01981ba">state</a>;</div>
<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;</div>
<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> <a class="code" href="namespaceost.html#a61faeec2dc6ec946dc3e98979bd93124">error</a>(<a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> <a class="code" href="namespaceost.html#a61faeec2dc6ec946dc3e98979bd93124">error</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> *err = NULL, <span class="keywordtype">long</span> systemError = 0) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;</div>
<div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a4f06b1af9c42afcc36739aa6b80982ef">  240</a></span>&#160;    <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classost_1_1_socket.html#a4f06b1af9c42afcc36739aa6b80982ef">error</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *err)<span class="keyword"> const</span></div>
<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;<span class="keyword">        </span>{<a class="code" href="namespaceost.html#a61faeec2dc6ec946dc3e98979bd93124">error</a>(errExtended, err);};</div>
<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;</div>
<div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a6f54a68eab25ab41bbe13ba87a48b435">  249</a></span>&#160;    <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classost_1_1_socket.html#a6f54a68eab25ab41bbe13ba87a48b435">setError</a>(<span class="keywordtype">bool</span> enable)</div>
<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;        {flags.thrown = !enable;};</div>
<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;</div>
<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    <span class="keywordtype">void</span> endSocket(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;</div>
<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;    Error connectError(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;</div>
<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;    Error sendLimit(<span class="keywordtype">int</span> limit = 2048);</div>
<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;</div>
<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;    Error receiveLimit(<span class="keywordtype">int</span> limit = 1);</div>
<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;</div>
<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;    Error sendTimeout(<a class="code" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timer);</div>
<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;</div>
<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;    Error receiveTimeout(<a class="code" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timer);</div>
<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;</div>
<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;    Error sendBuffer(<span class="keywordtype">unsigned</span> size);</div>
<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;</div>
<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;    Error receiveBuffer(<span class="keywordtype">unsigned</span> size);</div>
<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;</div>
<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;    Error bufferSize(<span class="keywordtype">unsigned</span> size);</div>
<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;</div>
<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;    Error setBroadcast(<span class="keywordtype">bool</span> enable);</div>
<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;</div>
<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;    Error setMulticastByFamily(<span class="keywordtype">bool</span> enable, Family family = IPV4);</div>
<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;</div>
<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;    Error setLoopbackByFamily(<span class="keywordtype">bool</span> enable, Family family = IPV4);</div>
<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;</div>
<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;    Error setTimeToLiveByFamily(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ttl, Family fam = IPV4);</div>
<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;</div>
<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;    Error join(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_multicast.html">IPV4Multicast</a> &amp;ia);</div>
<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;<span class="preprocessor"></span>    Error join(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_multicast.html">IPV6Multicast</a> &amp;ia);</div>
<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;    Error drop(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_multicast.html">IPV4Multicast</a> &amp;ia);</div>
<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;<span class="preprocessor"></span>    Error drop(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_multicast.html">IPV6Multicast</a> &amp;ia);</div>
<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;    Error setRouting(<span class="keywordtype">bool</span> enable);</div>
<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;</div>
<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;</div>
<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;    Error setNoDelay(<span class="keywordtype">bool</span> enable);</div>
<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;</div>
<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;    <a class="code" href="classost_1_1_socket.html">Socket</a>(<span class="keywordtype">int</span> domain, <span class="keywordtype">int</span> type, <span class="keywordtype">int</span> protocol = 0);</div>
<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;</div>
<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;    <a class="code" href="classost_1_1_socket.html">Socket</a>(<a class="code" href="socket_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> fd);</div>
<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;</div>
<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;    <a class="code" href="classost_1_1_socket.html">Socket</a>();</div>
<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;</div>
<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;    <a class="code" href="classost_1_1_socket.html">Socket</a>(<span class="keyword">const</span> <a class="code" href="classost_1_1_socket.html">Socket</a> &amp;source);</div>
<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;</div>
<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;    ssize_t readLine(<span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> len, <a class="code" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timeout = 0);</div>
<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;</div>
<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;    <span class="keyword">virtual</span> ssize_t readData(<span class="keywordtype">void</span> * buf,<span class="keywordtype">size_t</span> len,<span class="keywordtype">char</span> separator=0,<a class="code" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> t=0);</div>
<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;</div>
<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;    <span class="keyword">virtual</span> ssize_t writeData(<span class="keyword">const</span> <span class="keywordtype">void</span>* buf,<span class="keywordtype">size_t</span> len,<a class="code" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> t=0);</div>
<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;</div>
<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classost_1_1_socket.html">Socket</a>();</div>
<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;</div>
<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> check(Family fam);</div>
<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;</div>
<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;    <a class="code" href="classost_1_1_socket.html">Socket</a> &amp;operator=(<span class="keyword">const</span> <a class="code" href="classost_1_1_socket.html">Socket</a> &amp;from);</div>
<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;</div>
<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> getIPV4Sender(<a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> *port = NULL) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;</div>
<div class="line"><a name="l00505"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a99197c017c07c6b24d622b107fa46833">  505</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> <a class="code" href="classost_1_1_socket.html#a99197c017c07c6b24d622b107fa46833">getSender</a>(<a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> *port = NULL)<span class="keyword"> const</span></div>
<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;<span class="keyword">        </span>{<span class="keywordflow">return</span> getIPV4Sender(port);}</div>
<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;</div>
<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;<span class="preprocessor"></span>    <span class="keyword">virtual</span> <a class="code" href="classost_1_1_i_p_v6_host.html">IPV6Host</a> getIPV6Sender(<a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> *port = NULL) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;    <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> getIPV4Peer(<a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> *port = NULL) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;</div>
<div class="line"><a name="l00523"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a6fd1dffdfe9606e56fba838559ff6d67">  523</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> <a class="code" href="classost_1_1_socket.html#a6fd1dffdfe9606e56fba838559ff6d67">getPeer</a>(<a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> *port = NULL)<span class="keyword"> const</span></div>
<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;<span class="keyword">        </span>{<span class="keywordflow">return</span> getIPV4Peer(port);}</div>
<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;</div>
<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;<span class="preprocessor"></span>    <a class="code" href="classost_1_1_i_p_v6_host.html">IPV6Host</a> getIPV6Peer(<a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> *port = NULL) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;    <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> getIPV4Local(<a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> *port = NULL) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;</div>
<div class="line"><a name="l00539"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#aca71d871bfda4dfcab0891cb0c8df1d4">  539</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> <a class="code" href="classost_1_1_socket.html#aca71d871bfda4dfcab0891cb0c8df1d4">getLocal</a>(<a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> *port = NULL)<span class="keyword"> const</span></div>
<div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;<span class="keyword">        </span>{<span class="keywordflow">return</span> getIPV4Local(port);}</div>
<div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;</div>
<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;<span class="preprocessor"></span>    <a class="code" href="classost_1_1_i_p_v6_host.html">IPV6Host</a> getIPV6Local(<a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> *port = NULL) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;    <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> getIPV4NAT(<a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> *port = NULL) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;</div>
<div class="line"><a name="l00575"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ac3dded47080c852dcebc9998643e8dc6">  575</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> <a class="code" href="classost_1_1_socket.html#ac3dded47080c852dcebc9998643e8dc6">getNAT</a>(<a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> *port)<span class="keyword"> const</span></div>
<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;<span class="keyword">        </span>{<span class="keywordflow">return</span> getIPV4NAT(port);}</div>
<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;</div>
<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;<span class="preprocessor"></span>    <a class="code" href="classost_1_1_i_p_v6_host.html">IPV6Host</a> getIPV6NAT(<a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> *port = NULL) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;    <span class="keywordtype">void</span> setCompletion(<span class="keywordtype">bool</span> immediate);</div>
<div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;</div>
<div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;    Error setLinger(<span class="keywordtype">bool</span> linger);</div>
<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;</div>
<div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;    Error setKeepAlive(<span class="keywordtype">bool</span> enable);</div>
<div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;</div>
<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;    Error setTypeOfService(Tos service);</div>
<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;</div>
<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;    <span class="keywordtype">bool</span> isConnected(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;</div>
<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;    <span class="keywordtype">bool</span> isActive(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;</div>
<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;    <span class="keywordtype">bool</span> operator!() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;</div>
<div class="line"><a name="l00651"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a8120ca95daa7c488255c308998427ccb">  651</a></span>&#160;    <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classost_1_1_socket.html#a8120ca95daa7c488255c308998427ccb">isBroadcast</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div>
<div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;<span class="keyword">        </span>{<span class="keywordflow">return</span> flags.broadcast;};</div>
<div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;</div>
<div class="line"><a name="l00659"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a0a1e09a4411bf60bb5e2b6235d4e6a46">  659</a></span>&#160;    <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classost_1_1_socket.html#a0a1e09a4411bf60bb5e2b6235d4e6a46">isRouted</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div>
<div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;<span class="keyword">        </span>{<span class="keywordflow">return</span> flags.route;};</div>
<div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;</div>
<div class="line"><a name="l00668"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#abfdaefd24888f2d51089bdb31894286e">  668</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> <a class="code" href="classost_1_1_socket.html#abfdaefd24888f2d51089bdb31894286e">getErrorNumber</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{<span class="keywordflow">return</span> errid;}</div>
<div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;</div>
<div class="line"><a name="l00676"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ad1c8bb17f75cfe540853a871081bd9d0">  676</a></span>&#160;    <span class="keyword">inline</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classost_1_1_socket.html#ad1c8bb17f75cfe540853a871081bd9d0">getErrorString</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{<span class="keywordflow">return</span> errstr;}</div>
<div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;</div>
<div class="line"><a name="l00678"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a7720aace2bf055d21a6fc33007c88197">  678</a></span>&#160;    <span class="keyword">inline</span> <span class="keywordtype">long</span> <a class="code" href="classost_1_1_socket.html#a7720aace2bf055d21a6fc33007c88197">getSystemError</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{<span class="keywordflow">return</span> syserr;}</div>
<div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;</div>
<div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span> *getSystemErrorString(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;</div>
<div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isPending(Pending pend, <a class="code" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timeout = <a class="code" href="thread_8h.html#a74f2d4c747bce0b8f7f7c1f48e651876">TIMEOUT_INF</a>);</div>
<div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;};</div>
<div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;</div>
<div class="line"><a name="l00720"></a><span class="lineno"><a class="line" href="classost_1_1_d_c_c_p_socket.html">  720</a></span>&#160;<span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_d_c_c_p_socket.html">DCCPSocket</a> : <span class="keyword">public</span> <a class="code" href="classost_1_1_socket.html">Socket</a></div>
<div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;{</div>
<div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;    <span class="keyword">union </span>{</div>
<div class="line"><a name="l00723"></a><span class="lineno"><a class="line" href="classost_1_1_d_c_c_p_socket.html#a9ac2cdf8619e553d36c2b400b41fb383">  723</a></span>&#160;        <span class="keyword">struct </span>sockaddr_in ipv4;</div>
<div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l00725"></a><span class="lineno"><a class="line" href="classost_1_1_d_c_c_p_socket.html#a09b8ad0a2d57808bcaa1f8e7022db4e6">  725</a></span>&#160;<span class="preprocessor"></span>        <span class="keyword">struct </span>sockaddr_in6 ipv6;</div>
<div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;<span class="preprocessor"></span>    }   peer;</div>
<div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;</div>
<div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;    Family family;</div>
<div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;</div>
<div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> onAccept(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> &amp;ia, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port);</div>
<div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160;<span class="preprocessor"></span>    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> onAccept(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_host.html">IPV6Host</a> &amp;ia, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port);</div>
<div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> getIPV4Sender(<a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> *port = NULL) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;</div>
<div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;<span class="preprocessor"></span>    <span class="keyword">virtual</span> <a class="code" href="classost_1_1_i_p_v6_host.html">IPV6Host</a> getIPV6Sender(<a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> *port = NULL) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;    <a class="code" href="classost_1_1_d_c_c_p_socket.html">DCCPSocket</a>(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_address.html">IPV4Address</a> &amp;bind, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port, <span class="keywordtype">unsigned</span> backlog = 5);</div>
<div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;<span class="preprocessor"></span>    <a class="code" href="classost_1_1_d_c_c_p_socket.html">DCCPSocket</a>(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_address.html">IPV6Address</a> &amp;bind, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port, <span class="keywordtype">unsigned</span> backlog = 5);</div>
<div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;    <a class="code" href="classost_1_1_d_c_c_p_socket.html">DCCPSocket</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, Family family = IPV4, <span class="keywordtype">unsigned</span> backlog = 5);</div>
<div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160;</div>
<div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;    <a class="code" href="classost_1_1_d_c_c_p_socket.html">DCCPSocket</a>(Family family = IPV4);</div>
<div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;</div>
<div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;    <a class="code" href="classost_1_1_d_c_c_p_socket.html">DCCPSocket</a>(<a class="code" href="classost_1_1_d_c_c_p_socket.html">DCCPSocket</a>&amp; server, <a class="code" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timeout = 0);</div>
<div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;</div>
<div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;    <span class="keywordtype">void</span> reject(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;</div>
<div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;    <span class="keywordtype">void</span> disconnect(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;</div>
<div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;    <span class="keywordtype">bool</span> setCCID(<a class="code" href="config_8h.html#a2f658db822f8a23711b5bac1094c2185">uint8</a> ccid);</div>
<div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;</div>
<div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;    <span class="keywordtype">int</span> getTxCCID();</div>
<div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;</div>
<div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;    <span class="keywordtype">int</span> getRxCCID();</div>
<div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;</div>
<div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;    <span class="keywordtype">size_t</span> available();</div>
<div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;</div>
<div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;    <span class="keywordtype">void</span> connect(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> &amp;host, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port, <a class="code" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timeout = 0);</div>
<div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;<span class="preprocessor"></span>    <span class="keywordtype">void</span> connect(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_host.html">IPV6Host</a> &amp;host, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port, <a class="code" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timeout = 0);</div>
<div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;    <span class="keywordtype">void</span> connect(<span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
<div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;</div>
<div class="line"><a name="l00843"></a><span class="lineno"><a class="line" href="classost_1_1_d_c_c_p_socket.html#ad50bce35876eae7fc93ec408c397483d">  843</a></span>&#160;    <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classost_1_1_d_c_c_p_socket.html#ad50bce35876eae7fc93ec408c397483d">isPendingConnection</a>(<a class="code" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timeout = <a class="code" href="thread_8h.html#a74f2d4c747bce0b8f7f7c1f48e651876">TIMEOUT_INF</a>) <span class="comment">/* not const -- jfc */</span></div>
<div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;        {<span class="keywordflow">return</span> <a class="code" href="classost_1_1_socket.html#a8eb84be4b5cc91731c16be4f32f5bf3d">Socket::isPending</a>(<a class="code" href="classost_1_1_socket.html#a2cb9ccad21fc2f10c23e45cbb99bc6f8af2d41647f208c78eb97fe77196c55ccc">Socket::pendingInput</a>, timeout);}</div>
<div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;</div>
<div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classost_1_1_d_c_c_p_socket.html">DCCPSocket</a>();</div>
<div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;};</div>
<div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160;</div>
<div class="line"><a name="l00884"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_socket.html">  884</a></span>&#160;<span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_u_d_p_socket.html">UDPSocket</a> : <span class="keyword">public</span> <a class="code" href="classost_1_1_socket.html">Socket</a></div>
<div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;{</div>
<div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;    <span class="keyword">inline</span> <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> setKeepAlive(<span class="keywordtype">bool</span> enable)</div>
<div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;        {<span class="keywordflow">return</span> <a class="code" href="classost_1_1_socket.html#a866263b2933c0b7b649829f07ca288ff">Socket::setKeepAlive</a>(enable);};</div>
<div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;</div>
<div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;<span class="preprocessor"></span>    <span class="keyword">union </span>{</div>
<div class="line"><a name="l00893"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_socket.html#a9842db7ec82d337e554d264e7230a705">  893</a></span>&#160;        <span class="keyword">struct </span>sockaddr_in6 ipv6;</div>
<div class="line"><a name="l00894"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_socket.html#ad4c15c1eb5dd4f0ce6d4487b43869215">  894</a></span>&#160;        <span class="keyword">struct </span>sockaddr_in ipv4;</div>
<div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;    }   peer;</div>
<div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;<span class="preprocessor"></span>    <span class="keyword">union </span>{</div>
<div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;        <span class="keyword">struct </span>sockaddr_in ipv4;</div>
<div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;    }   peer;</div>
<div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00902"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_socket.html#afe9f40091dc6c57c6743cf0720ab5938">  902</a></span>&#160;    Family <a class="code" href="classost_1_1_u_d_p_socket.html#afe9f40091dc6c57c6743cf0720ab5938">family</a>;</div>
<div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;</div>
<div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;    <a class="code" href="classost_1_1_u_d_p_socket.html">UDPSocket</a>(Family family = IPV4);</div>
<div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;</div>
<div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;    <a class="code" href="classost_1_1_u_d_p_socket.html">UDPSocket</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, Family family = IPV4);</div>
<div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160;</div>
<div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160;    <a class="code" href="classost_1_1_u_d_p_socket.html">UDPSocket</a>(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_address.html">IPV4Address</a> &amp;bind, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port);</div>
<div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;<span class="preprocessor"></span>    <a class="code" href="classost_1_1_u_d_p_socket.html">UDPSocket</a>(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_address.html">IPV6Address</a> &amp;bind, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port);</div>
<div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classost_1_1_u_d_p_socket.html">UDPSocket</a>();</div>
<div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;</div>
<div class="line"><a name="l00937"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_socket.html#afbf86c658fcf48b0ba946a238df091d3">  937</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> <a class="code" href="classost_1_1_u_d_p_socket.html#afbf86c658fcf48b0ba946a238df091d3">setLoopback</a>(<span class="keywordtype">bool</span> enable)</div>
<div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;        {<span class="keywordflow">return</span> <a class="code" href="classost_1_1_socket.html#a08683bc57bede572b8effb07a3fc68dc">Socket::setLoopbackByFamily</a>(enable, family);}</div>
<div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;</div>
<div class="line"><a name="l00943"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_socket.html#ace98f5833ad9834af24e78697699c912">  943</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> <a class="code" href="classost_1_1_u_d_p_socket.html#ace98f5833ad9834af24e78697699c912">setMulticast</a>(<span class="keywordtype">bool</span> enable)</div>
<div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;        {<span class="keywordflow">return</span> <a class="code" href="classost_1_1_socket.html#a09b396c3fc7316061a3f0539e918a43f">Socket::setMulticastByFamily</a>(enable, family);}</div>
<div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;</div>
<div class="line"><a name="l00949"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_socket.html#ad3cf52efd8d79b40796d67b59285d2cf">  949</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> <a class="code" href="classost_1_1_u_d_p_socket.html#ad3cf52efd8d79b40796d67b59285d2cf">setTimeToLive</a>(<span class="keywordtype">char</span> ttl)</div>
<div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;        {<span class="keywordflow">return</span> <a class="code" href="classost_1_1_socket.html#a23d69227150ae996caf76b01024c1b20">Socket::setTimeToLiveByFamily</a>(ttl, family);}</div>
<div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;</div>
<div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;    <span class="keywordtype">void</span> setPeer(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> &amp;host, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port);</div>
<div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;    <span class="keywordtype">void</span> connect(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> &amp;host, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port);</div>
<div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;<span class="preprocessor"></span>    <span class="keywordtype">void</span> setPeer(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_host.html">IPV6Host</a> &amp;host, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port);</div>
<div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;    <span class="keywordtype">void</span> connect(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_host.html">IPV6Host</a> &amp;host, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port);</div>
<div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;    <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Socket::Error</a> getInterfaceIndex(<span class="keyword">const</span> <span class="keywordtype">char</span> *ethX,<span class="keywordtype">int</span>&amp; InterfaceIndex);</div>
<div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;</div>
<div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;    <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Socket::Error</a> join(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_multicast.html">IPV4Multicast</a> &amp;ia,<span class="keywordtype">int</span> InterfaceIndex);</div>
<div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;</div>
<div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;</div>
<div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;    ssize_t send(<span class="keyword">const</span> <span class="keywordtype">void</span> *buf, <span class="keywordtype">size_t</span> len);</div>
<div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;</div>
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;    ssize_t receive(<span class="keywordtype">void</span> *buf, <span class="keywordtype">size_t</span> len, <span class="keywordtype">bool</span> reply = <span class="keyword">false</span>);</div>
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;</div>
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;    <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> getIPV4Peer(<a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> *port = NULL) <span class="keyword">const</span>;</div>
<div class="line"><a name="l01014"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_socket.html#a5d06e7131790dd26cc3cf0b1531af3a2"> 1014</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> <a class="code" href="classost_1_1_u_d_p_socket.html#a5d06e7131790dd26cc3cf0b1531af3a2">getPeer</a>(<a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> *port = NULL)<span class="keyword"> const</span></div>
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;<span class="keyword">        </span>{<span class="keywordflow">return</span> getIPV4Peer(port);}</div>
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;</div>
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;<span class="preprocessor"></span>    <a class="code" href="classost_1_1_i_p_v6_host.html">IPV6Host</a> getIPV6Peer(<a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> *port = NULL) <span class="keyword">const</span>;</div>
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l01028"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_socket.html#a64b09e6ac9325d8f44d7ca7ed59215bf"> 1028</a></span>&#160;    <span class="keyword">inline</span> ssize_t <a class="code" href="classost_1_1_u_d_p_socket.html#a64b09e6ac9325d8f44d7ca7ed59215bf">peek</a>(<span class="keywordtype">void</span> *buf, <span class="keywordtype">size_t</span> len)</div>
<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;        {<span class="keywordflow">return</span> _IORET64 ::recv(so, (<span class="keywordtype">char</span> *)buf, <a class="code" href="socket_8h.html#addbcacf8e7b5164e650dc7f2ab47fea1">_IOLEN64</a> len, MSG_PEEK);};</div>
<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;</div>
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;    <span class="keywordtype">void</span> setPeer(<span class="keyword">const</span> <span class="keywordtype">char</span> *service);</div>
<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;    <span class="keywordtype">void</span> connect(<span class="keyword">const</span> <span class="keywordtype">char</span> *service);</div>
<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;</div>
<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;    Error disconnect(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;};</div>
<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;</div>
<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;</div>
<div class="line"><a name="l01053"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_broadcast.html"> 1053</a></span>&#160;<span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_u_d_p_broadcast.html">UDPBroadcast</a> : <span class="keyword">public</span> <a class="code" href="classost_1_1_u_d_p_socket.html">UDPSocket</a></div>
<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;{</div>
<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;    <span class="keywordtype">void</span> setPeer(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> &amp;ia, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port);</div>
<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;</div>
<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;    <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> setBroadcast(<span class="keywordtype">bool</span> enable)</div>
<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;        {<span class="keywordflow">return</span> <a class="code" href="classost_1_1_socket.html#a1a507041ee5741bcdc906707b1735781">Socket::setBroadcast</a>(enable);};</div>
<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;</div>
<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;    <a class="code" href="classost_1_1_u_d_p_broadcast.html">UDPBroadcast</a>(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_address.html">IPV4Address</a> &amp;ia, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port);</div>
<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;</div>
<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;    <span class="keywordtype">void</span> setPeer(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_broadcast.html">IPV4Broadcast</a> &amp;subnet, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port);</div>
<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;};</div>
<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;</div>
<div class="line"><a name="l01087"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_transmit.html"> 1087</a></span>&#160;<span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_u_d_p_transmit.html">UDPTransmit</a> : <span class="keyword">protected</span> <a class="code" href="classost_1_1_u_d_p_socket.html">UDPSocket</a></div>
<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;{</div>
<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;    <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> cConnect(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_address.html">IPV4Address</a> &amp;ia, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port);</div>
<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;</div>
<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;    <a class="code" href="classost_1_1_u_d_p_transmit.html">UDPTransmit</a>(<a class="code" href="classost_1_1_socket.html#a36a69681caa020f1abed34ae71d206ef">Family</a> family = IPV4);</div>
<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;</div>
<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;    <a class="code" href="classost_1_1_u_d_p_transmit.html">UDPTransmit</a>(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_address.html">IPV4Address</a> &amp;bind, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port = 5005);</div>
<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;<span class="preprocessor"></span>    <a class="code" href="classost_1_1_u_d_p_transmit.html">UDPTransmit</a>(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_address.html">IPV6Address</a> &amp;bind, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port = 5005);</div>
<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;    <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> connect(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> &amp;host, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port);</div>
<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;<span class="preprocessor"></span>    <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> connect(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_address.html">IPV6Address</a> &amp;host, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port);</div>
<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;    <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> connect(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_broadcast.html">IPV4Broadcast</a> &amp;subnet, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port);</div>
<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;</div>
<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;    <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> connect(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_multicast.html">IPV4Multicast</a> &amp;mgroup, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port);</div>
<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;<span class="preprocessor"></span>    <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> connect(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_multicast.html">IPV6Multicast</a> &amp;mgroup, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port);</div>
<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l01165"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_transmit.html#ac20e40569ec5502849fa3337dcfdf611"> 1165</a></span>&#160;    <span class="keyword">inline</span> ssize_t <a class="code" href="classost_1_1_u_d_p_transmit.html#ac20e40569ec5502849fa3337dcfdf611">send</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *buf, <span class="keywordtype">size_t</span> len)</div>
<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;        {<span class="keywordflow">return</span> _IORET64 ::send(so, (<span class="keyword">const</span> <span class="keywordtype">char</span> *)buf, <a class="code" href="socket_8h.html#addbcacf8e7b5164e650dc7f2ab47fea1">_IOLEN64</a> len, <a class="code" href="socket_8h.html#a9f55d0e90dc8cc6b2287312435cdde48">MSG_NOSIGNAL</a>);}</div>
<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;</div>
<div class="line"><a name="l01171"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_transmit.html#afda647033eb798b91e2c2ef3b089c5b2"> 1171</a></span>&#160;    <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classost_1_1_u_d_p_transmit.html#afda647033eb798b91e2c2ef3b089c5b2">endTransmitter</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;        {<a class="code" href="classost_1_1_socket.html#a3ab340e773f0214eefcf66f588bcf174">Socket::endSocket</a>();}</div>
<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;</div>
<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;<span class="comment">     * Get transmitter socket.</span></div>
<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;<span class="comment">     * @return transmitter.</span></div>
<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l01179"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_transmit.html#a69b7f01eb52ae82bf91f2eefc0854918"> 1179</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="socket_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> <a class="code" href="classost_1_1_u_d_p_transmit.html#a69b7f01eb52ae82bf91f2eefc0854918">getTransmitter</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;        {<span class="keywordflow">return</span> so;};</div>
<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;</div>
<div class="line"><a name="l01182"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_transmit.html#a4e5c8fb7c2ea5f78454d303169d68b61"> 1182</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> <a class="code" href="classost_1_1_u_d_p_transmit.html#a4e5c8fb7c2ea5f78454d303169d68b61">setMulticast</a>(<span class="keywordtype">bool</span> enable)</div>
<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;        {<span class="keywordflow">return</span> <a class="code" href="classost_1_1_socket.html#a09b396c3fc7316061a3f0539e918a43f">Socket::setMulticastByFamily</a>(enable, family);}</div>
<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;</div>
<div class="line"><a name="l01185"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_transmit.html#a80800a55f609d62bbd8d7635f4798e6d"> 1185</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> <a class="code" href="classost_1_1_u_d_p_transmit.html#a80800a55f609d62bbd8d7635f4798e6d">setTimeToLive</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ttl)</div>
<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;        {<span class="keywordflow">return</span> <a class="code" href="classost_1_1_socket.html#a23d69227150ae996caf76b01024c1b20">Socket::setTimeToLiveByFamily</a>(ttl, family);};</div>
<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;</div>
<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l01198"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_transmit.html#ab648dd889101cf98bcad682299c48329"> 1198</a></span>&#160;    <span class="keyword">inline</span> ssize_t <a class="code" href="classost_1_1_u_d_p_transmit.html#ab648dd889101cf98bcad682299c48329">transmit</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *buffer, <span class="keywordtype">size_t</span> len)</div>
<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;        {<span class="keywordflow">return</span> _IORET64 ::send(so, buffer, <a class="code" href="socket_8h.html#addbcacf8e7b5164e650dc7f2ab47fea1">_IOLEN64</a> len, <a class="code" href="socket_8h.html#ab18d3d439e4a9c8d0f73e7166e8eb376">MSG_DONTWAIT</a>|<a class="code" href="socket_8h.html#a9f55d0e90dc8cc6b2287312435cdde48">MSG_NOSIGNAL</a>);}</div>
<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;</div>
<div class="line"><a name="l01207"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_transmit.html#addc1e1aff22446589d633bacfc436e38"> 1207</a></span>&#160;    <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classost_1_1_u_d_p_transmit.html#addc1e1aff22446589d633bacfc436e38">isOutputReady</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> timeout = 0l)</div>
<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;        {<span class="keywordflow">return</span> <a class="code" href="classost_1_1_socket.html#a8eb84be4b5cc91731c16be4f32f5bf3d">Socket::isPending</a>(<a class="code" href="classost_1_1_socket.html#a2cb9ccad21fc2f10c23e45cbb99bc6f8a0c9ffb2c87eb616774ea812fc9739efd">Socket::pendingOutput</a>, timeout);};</div>
<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;</div>
<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;</div>
<div class="line"><a name="l01211"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_transmit.html#a04ebd34e6cfc70146bfe3789c31d8903"> 1211</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> <a class="code" href="classost_1_1_u_d_p_transmit.html#a04ebd34e6cfc70146bfe3789c31d8903">setRouting</a>(<span class="keywordtype">bool</span> enable)</div>
<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;        {<span class="keywordflow">return</span> <a class="code" href="classost_1_1_socket.html#a2165fdf85e39e6a8aaff3da889ae7e20">Socket::setRouting</a>(enable);};</div>
<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;</div>
<div class="line"><a name="l01214"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_transmit.html#a11c5788901bb8c18af8428efe9c54145"> 1214</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> <a class="code" href="classost_1_1_u_d_p_transmit.html#a11c5788901bb8c18af8428efe9c54145">setTypeOfService</a>(<a class="code" href="classost_1_1_socket.html#a258f81f5a42d051242f0f49f8192f890">Tos</a> tos)</div>
<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;        {<span class="keywordflow">return</span> <a class="code" href="classost_1_1_socket.html#ae49df7e3c3913147116d8491f77a1b63">Socket::setTypeOfService</a>(tos);};</div>
<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;</div>
<div class="line"><a name="l01217"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_transmit.html#a86e9e41d05629a5e6f3029ace0d55e38"> 1217</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> <a class="code" href="classost_1_1_u_d_p_transmit.html#a86e9e41d05629a5e6f3029ace0d55e38">setBroadcast</a>(<span class="keywordtype">bool</span> enable)</div>
<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;        {<span class="keywordflow">return</span> <a class="code" href="classost_1_1_socket.html#a1a507041ee5741bcdc906707b1735781">Socket::setBroadcast</a>(enable);};</div>
<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;};</div>
<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;</div>
<div class="line"><a name="l01229"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_receive.html"> 1229</a></span>&#160;<span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_u_d_p_receive.html">UDPReceive</a> : <span class="keyword">protected</span> <a class="code" href="classost_1_1_u_d_p_socket.html">UDPSocket</a></div>
<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;{</div>
<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160;    <a class="code" href="classost_1_1_u_d_p_receive.html">UDPReceive</a>(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_address.html">IPV4Address</a> &amp;bind, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port);</div>
<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;<span class="preprocessor"></span>    <a class="code" href="classost_1_1_u_d_p_receive.html">UDPReceive</a>(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_address.html">IPV6Address</a> &amp;bind, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port);</div>
<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160;    <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> connect(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> &amp;host, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port);</div>
<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160;<span class="preprocessor"></span>    <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> connect(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_host.html">IPV6Host</a> &amp;host, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port);</div>
<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l01267"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_receive.html#af5beaaf3d4941735b8784c1c1bc0ea99"> 1267</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classost_1_1_u_d_p_receive.html#af5beaaf3d4941735b8784c1c1bc0ea99">isPendingReceive</a>(<a class="code" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timeout)</div>
<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160;        {<span class="keywordflow">return</span> <a class="code" href="classost_1_1_socket.html#a8eb84be4b5cc91731c16be4f32f5bf3d">Socket::isPending</a>(<a class="code" href="classost_1_1_socket.html#a2cb9ccad21fc2f10c23e45cbb99bc6f8af2d41647f208c78eb97fe77196c55ccc">Socket::pendingInput</a>, timeout);};</div>
<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160;</div>
<div class="line"><a name="l01273"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_receive.html#aee5e39bfbba0ba9cbfb616b0df254bcd"> 1273</a></span>&#160;    <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classost_1_1_u_d_p_receive.html#aee5e39bfbba0ba9cbfb616b0df254bcd">endReceiver</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160;        {<a class="code" href="classost_1_1_socket.html#a3ab340e773f0214eefcf66f588bcf174">Socket::endSocket</a>();}</div>
<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160;</div>
<div class="line"><a name="l01276"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_receive.html#aab58fbd159ce6d8c3f539038196a0d11"> 1276</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="socket_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> <a class="code" href="classost_1_1_u_d_p_receive.html#aab58fbd159ce6d8c3f539038196a0d11">getReceiver</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div>
<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160;<span class="keyword">        </span>{<span class="keywordflow">return</span> so;};</div>
<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160;</div>
<div class="line"><a name="l01279"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_receive.html#ae28ec2a16ac42d1a14f015ca5daa260f"> 1279</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> <a class="code" href="classost_1_1_u_d_p_receive.html#ae28ec2a16ac42d1a14f015ca5daa260f">setRouting</a>(<span class="keywordtype">bool</span> enable)</div>
<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;        {<span class="keywordflow">return</span> <a class="code" href="classost_1_1_socket.html#a2165fdf85e39e6a8aaff3da889ae7e20">Socket::setRouting</a>(enable);}</div>
<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160;</div>
<div class="line"><a name="l01282"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_receive.html#aa513f9513f012494e0fbd61d84c665f6"> 1282</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> <a class="code" href="classost_1_1_u_d_p_receive.html#aa513f9513f012494e0fbd61d84c665f6">setMulticast</a>(<span class="keywordtype">bool</span> enable)</div>
<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160;        {<span class="keywordflow">return</span> <a class="code" href="classost_1_1_socket.html#a09b396c3fc7316061a3f0539e918a43f">Socket::setMulticastByFamily</a>(enable, family);}</div>
<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160;</div>
<div class="line"><a name="l01285"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_receive.html#a29df9040b68e4e6b99a03827d7e112c8"> 1285</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> <a class="code" href="classost_1_1_u_d_p_receive.html#a29df9040b68e4e6b99a03827d7e112c8">join</a>(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_multicast.html">IPV4Multicast</a> &amp;ia)</div>
<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160;            {<span class="keywordflow">return</span> <a class="code" href="classost_1_1_socket.html#afb0e2d234f461ce45711bff52ffc96ad">Socket::join</a>(ia);}</div>
<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160;</div>
<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l01289"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_receive.html#a3d1491c118a0609aa6f67aed9a7a5103"> 1289</a></span>&#160;<span class="preprocessor"></span>    <span class="keyword">inline</span> <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> <a class="code" href="classost_1_1_u_d_p_receive.html#a3d1491c118a0609aa6f67aed9a7a5103">join</a>(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_multicast.html">IPV6Multicast</a> &amp;ia)</div>
<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;        {<span class="keywordflow">return</span> <a class="code" href="classost_1_1_socket.html#afb0e2d234f461ce45711bff52ffc96ad">Socket::join</a>(ia);}</div>
<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l01293"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_receive.html#a6ec872d42da02ac13e3390f4ec6cb98d"> 1293</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> <a class="code" href="classost_1_1_u_d_p_receive.html#a6ec872d42da02ac13e3390f4ec6cb98d">drop</a>(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_multicast.html">IPV4Multicast</a> &amp;ia)</div>
<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160;            {<span class="keywordflow">return</span> <a class="code" href="classost_1_1_socket.html#ac59c08e11070a1602352da5c54332d9e">Socket::drop</a>(ia);}</div>
<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160;</div>
<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l01297"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_receive.html#a4fb379f4df763e3726c8097d65d4c584"> 1297</a></span>&#160;<span class="preprocessor"></span>    <span class="keyword">inline</span> <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> <a class="code" href="classost_1_1_u_d_p_receive.html#a4fb379f4df763e3726c8097d65d4c584">drop</a>(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_multicast.html">IPV6Multicast</a> &amp;ia)</div>
<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160;        {<span class="keywordflow">return</span> <a class="code" href="classost_1_1_socket.html#ac59c08e11070a1602352da5c54332d9e">Socket::drop</a>(ia);}</div>
<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l01309"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_receive.html#a39f5e896422f2f3dda0948f265b8b013"> 1309</a></span>&#160;    <span class="keyword">inline</span> ssize_t <a class="code" href="classost_1_1_u_d_p_receive.html#a39f5e896422f2f3dda0948f265b8b013">receive</a>(<span class="keywordtype">void</span> *buf, <span class="keywordtype">size_t</span> len)</div>
<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;        {<span class="keywordflow">return</span> _IORET64 ::recv(so, (<span class="keywordtype">char</span> *)buf, <a class="code" href="socket_8h.html#addbcacf8e7b5164e650dc7f2ab47fea1">_IOLEN64</a> len, 0);};</div>
<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160;</div>
<div class="line"><a name="l01318"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_receive.html#a3a63f4aa241374a3550201eaf92c134a"> 1318</a></span>&#160;    <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classost_1_1_u_d_p_receive.html#a3a63f4aa241374a3550201eaf92c134a">isInputReady</a>(<a class="code" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timeout = <a class="code" href="thread_8h.html#a74f2d4c747bce0b8f7f7c1f48e651876">TIMEOUT_INF</a>)</div>
<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;        {<span class="keywordflow">return</span> <a class="code" href="classost_1_1_socket.html#a8eb84be4b5cc91731c16be4f32f5bf3d">Socket::isPending</a>(<a class="code" href="classost_1_1_socket.html#a2cb9ccad21fc2f10c23e45cbb99bc6f8af2d41647f208c78eb97fe77196c55ccc">Socket::pendingInput</a>, timeout);};</div>
<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160;};</div>
<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160;</div>
<div class="line"><a name="l01332"></a><span class="lineno"><a class="line" href="classost_1_1_u_d_p_duplex.html"> 1332</a></span>&#160;<span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_u_d_p_duplex.html">UDPDuplex</a> : <span class="keyword">public</span> <a class="code" href="classost_1_1_u_d_p_transmit.html">UDPTransmit</a>, <span class="keyword">public</span> <a class="code" href="classost_1_1_u_d_p_receive.html">UDPReceive</a></div>
<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;{</div>
<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160;    <a class="code" href="classost_1_1_u_d_p_duplex.html">UDPDuplex</a>(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_address.html">IPV4Address</a> &amp;bind, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port);</div>
<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;<span class="preprocessor"></span>    <a class="code" href="classost_1_1_u_d_p_duplex.html">UDPDuplex</a>(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_address.html">IPV6Address</a> &amp;bind, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port);</div>
<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160;    <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> connect(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> &amp;host, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port);</div>
<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;<span class="preprocessor"></span>    <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> connect(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_host.html">IPV6Host</a> &amp;host, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port);</div>
<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160;    <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Error</a> disconnect(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160;};</div>
<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160;</div>
<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160;</div>
<div class="line"><a name="l01395"></a><span class="lineno"><a class="line" href="classost_1_1_t_c_p_socket.html"> 1395</a></span>&#160;<span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_t_c_p_socket.html">TCPSocket</a> : <span class="keyword">protected</span> <a class="code" href="classost_1_1_socket.html">Socket</a></div>
<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160;{</div>
<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l01398"></a><span class="lineno"><a class="line" href="classost_1_1_t_c_p_socket.html#a926afdde97f8074cfe21a6c0d23830ed"> 1398</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="classost_1_1_t_c_p_socket.html#a926afdde97f8074cfe21a6c0d23830ed">segsize</a>;</div>
<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160;    <span class="keywordtype">void</span> setSegmentSize(<span class="keywordtype">unsigned</span> mss);</div>
<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160;</div>
<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> onAccept(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> &amp;ia, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port);</div>
<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160;</div>
<div class="line"><a name="l01418"></a><span class="lineno"><a class="line" href="classost_1_1_t_c_p_socket.html#a58d0e49f75856b2e888e9ac894c489a2"> 1418</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="socket_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> <a class="code" href="classost_1_1_t_c_p_socket.html#a58d0e49f75856b2e888e9ac894c489a2">getSocket</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160;        {<span class="keywordflow">return</span> so;};</div>
<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160;</div>
<div class="line"><a name="l01424"></a><span class="lineno"><a class="line" href="classost_1_1_t_c_p_socket.html#ae25df03dd4c3abd8da25e20a59ffbc62"> 1424</a></span>&#160;    <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="classost_1_1_t_c_p_socket.html#ae25df03dd4c3abd8da25e20a59ffbc62">getSegmentSize</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160;        {<span class="keywordflow">return</span> segsize;};</div>
<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160;</div>
<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160;    <a class="code" href="classost_1_1_t_c_p_socket.html">TCPSocket</a>(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_address.html">IPV4Address</a> &amp;bind, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port, <span class="keywordtype">unsigned</span> backlog = 5, <span class="keywordtype">unsigned</span> mss = 536);</div>
<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160;</div>
<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160;    <a class="code" href="classost_1_1_t_c_p_socket.html">TCPSocket</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">unsigned</span> backlog = 5, <span class="keywordtype">unsigned</span> mss = 536);</div>
<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160;</div>
<div class="line"><a name="l01461"></a><span class="lineno"><a class="line" href="classost_1_1_t_c_p_socket.html#abb20f4723de2e9641528d9c82f9389d1"> 1461</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> <a class="code" href="classost_1_1_t_c_p_socket.html#abb20f4723de2e9641528d9c82f9389d1">getRequest</a>(<a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> *port = NULL)<span class="keyword"> const</span></div>
<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160;<span class="keyword">        </span>{<span class="keywordflow">return</span> <a class="code" href="classost_1_1_socket.html#a68a7acd6af1686e66e88e9e466a9903f">Socket::getIPV4Sender</a>(port);}</div>
<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160;</div>
<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160;    <span class="keywordtype">void</span> reject(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160;</div>
<div class="line"><a name="l01472"></a><span class="lineno"><a class="line" href="classost_1_1_t_c_p_socket.html#aa0779bf0973ae5b54a5f323ef62ab4ae"> 1472</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> <a class="code" href="classost_1_1_t_c_p_socket.html#aa0779bf0973ae5b54a5f323ef62ab4ae">getLocal</a>(<a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> *port = NULL)<span class="keyword"> const</span></div>
<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160;<span class="keyword">        </span>{<span class="keywordflow">return</span> <a class="code" href="classost_1_1_socket.html#af72396adf4cac5113e722447e48b7916">Socket::getIPV4Local</a>(port);}</div>
<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160;</div>
<div class="line"><a name="l01480"></a><span class="lineno"><a class="line" href="classost_1_1_t_c_p_socket.html#a112e8235b317f15e15f6ea264fe81eb7"> 1480</a></span>&#160;    <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classost_1_1_t_c_p_socket.html#a112e8235b317f15e15f6ea264fe81eb7">isPendingConnection</a>(<a class="code" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timeout = <a class="code" href="thread_8h.html#a74f2d4c747bce0b8f7f7c1f48e651876">TIMEOUT_INF</a>) <span class="comment">/* not const -- jfc */</span></div>
<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160;        {<span class="keywordflow">return</span> <a class="code" href="classost_1_1_socket.html#a8eb84be4b5cc91731c16be4f32f5bf3d">Socket::isPending</a>(<a class="code" href="classost_1_1_socket.html#a2cb9ccad21fc2f10c23e45cbb99bc6f8af2d41647f208c78eb97fe77196c55ccc">Socket::pendingInput</a>, timeout);}</div>
<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160;</div>
<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classost_1_1_t_c_p_socket.html">TCPSocket</a>();</div>
<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160;};</div>
<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160;</div>
<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l01514"></a><span class="lineno"><a class="line" href="classost_1_1_t_c_p_v6_socket.html"> 1514</a></span>&#160;<span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_t_c_p_v6_socket.html">TCPV6Socket</a> : <span class="keyword">protected</span> <a class="code" href="classost_1_1_socket.html">Socket</a></div>
<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160;{</div>
<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160;    <span class="keywordtype">int</span> segsize;</div>
<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160;    <span class="keywordtype">void</span> setSegmentSize(<span class="keywordtype">unsigned</span> mss);</div>
<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160;</div>
<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> onAccept(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_host.html">IPV6Host</a> &amp;ia, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port);</div>
<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160;</div>
<div class="line"><a name="l01537"></a><span class="lineno"><a class="line" href="classost_1_1_t_c_p_v6_socket.html#acede992ad26a20072d38716d44f243dc"> 1537</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="socket_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> <a class="code" href="classost_1_1_t_c_p_v6_socket.html#acede992ad26a20072d38716d44f243dc">getSocket</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160;        {<span class="keywordflow">return</span> so;};</div>
<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160;</div>
<div class="line"><a name="l01540"></a><span class="lineno"><a class="line" href="classost_1_1_t_c_p_v6_socket.html#a8381cf05daeccc8f78c56a2e1cf33370"> 1540</a></span>&#160;    <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="classost_1_1_t_c_p_v6_socket.html#a8381cf05daeccc8f78c56a2e1cf33370">getSegmentSize</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160;        {<span class="keywordflow">return</span> segsize;};</div>
<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160;</div>
<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160;    <a class="code" href="classost_1_1_t_c_p_v6_socket.html">TCPV6Socket</a>(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_address.html">IPV6Address</a> &amp;bind, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port, <span class="keywordtype">unsigned</span> backlog = 5, <span class="keywordtype">unsigned</span> mss = 536);</div>
<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160;</div>
<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160;    <a class="code" href="classost_1_1_t_c_p_v6_socket.html">TCPV6Socket</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">unsigned</span> backlog = 5, <span class="keywordtype">unsigned</span> mss = 536);</div>
<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160;</div>
<div class="line"><a name="l01577"></a><span class="lineno"><a class="line" href="classost_1_1_t_c_p_v6_socket.html#a2afe9be7e5c2390b5d6cf5c18c705a9c"> 1577</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="classost_1_1_i_p_v6_host.html">IPV6Host</a> <a class="code" href="classost_1_1_t_c_p_v6_socket.html#a2afe9be7e5c2390b5d6cf5c18c705a9c">getRequest</a>(<a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> *port = NULL)<span class="keyword"> const</span></div>
<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160;<span class="keyword">        </span>{<span class="keywordflow">return</span> <a class="code" href="classost_1_1_socket.html#a4f1e7645a2d543e0a665b111c2dba8e9">Socket::getIPV6Sender</a>(port);}</div>
<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160;</div>
<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160;    <span class="keywordtype">void</span> reject(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160;</div>
<div class="line"><a name="l01588"></a><span class="lineno"><a class="line" href="classost_1_1_t_c_p_v6_socket.html#ac886cc40d05790837f9a52bde00c6170"> 1588</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="classost_1_1_i_p_v6_host.html">IPV6Host</a> <a class="code" href="classost_1_1_t_c_p_v6_socket.html#ac886cc40d05790837f9a52bde00c6170">getLocal</a>(<a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> *port = NULL)<span class="keyword"> const</span></div>
<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160;<span class="keyword">        </span>{<span class="keywordflow">return</span> <a class="code" href="classost_1_1_socket.html#a8410324ca8ddf50751830f59afeaf377">Socket::getIPV6Local</a>(port);}</div>
<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160;</div>
<div class="line"><a name="l01596"></a><span class="lineno"><a class="line" href="classost_1_1_t_c_p_v6_socket.html#a490ee599f8bdb269f359f33cc7862845"> 1596</a></span>&#160;    <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classost_1_1_t_c_p_v6_socket.html#a490ee599f8bdb269f359f33cc7862845">isPendingConnection</a>(<a class="code" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timeout = <a class="code" href="thread_8h.html#a74f2d4c747bce0b8f7f7c1f48e651876">TIMEOUT_INF</a>) <span class="comment">/* not const -- jfc */</span></div>
<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160;        {<span class="keywordflow">return</span> <a class="code" href="classost_1_1_socket.html#a8eb84be4b5cc91731c16be4f32f5bf3d">Socket::isPending</a>(<a class="code" href="classost_1_1_socket.html#a2cb9ccad21fc2f10c23e45cbb99bc6f8af2d41647f208c78eb97fe77196c55ccc">Socket::pendingInput</a>, timeout);}</div>
<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160;</div>
<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classost_1_1_t_c_p_v6_socket.html">TCPV6Socket</a>();</div>
<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160;};</div>
<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160;</div>
<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160;<span class="comment">:\projects\libraries\cplusplus\commonc++\win32\socket.h(357) : warning C4275: non dll-interface class &#39;streambuf&#39; used as base for dll-interface class &#39;TCPStream&#39;</span></div>
<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160;<span class="comment">    c:\program files\microsoft visual studio\vc98\include\streamb.h(69) : see declaration of &#39;streambuf&#39;</span></div>
<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160;<span class="comment">c:\projects\libraries\cplusplus\commonc++\win32\socket.h(358) : warning C4275: non dll-interface class &#39;iostream&#39; used as base for dll-interface class &#39;TCPStream&#39;</span></div>
<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160;<span class="comment">    c:\program files\microsoft visual studio\vc98\include\iostream.h(66) : see declaration of &#39;iostream&#39;</span></div>
<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160;</div>
<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160;<span class="preprocessor">#ifdef _MSC_VER</span></div>
<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#pragma warning(disable:4275) // disable C4275 warning</span></div>
<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l01631"></a><span class="lineno"><a class="line" href="classost_1_1_t_c_p_stream.html"> 1631</a></span>&#160;<span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_t_c_p_stream.html">TCPStream</a> : <span class="keyword">protected</span> std::streambuf, <span class="keyword">public</span> <a class="code" href="classost_1_1_socket.html">Socket</a>, <span class="keyword">public</span> std::iostream</div>
<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160;{</div>
<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160;    <span class="keywordtype">int</span> doallocate();</div>
<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160;</div>
<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160;    <span class="keywordtype">void</span> segmentBuffering(<span class="keywordtype">unsigned</span> mss);</div>
<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160;</div>
<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160;    <span class="keyword">friend</span> <a class="code" href="classost_1_1_t_c_p_stream.html">TCPStream</a>&amp; crlf(<a class="code" href="classost_1_1_t_c_p_stream.html">TCPStream</a>&amp;);</div>
<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160;    <span class="keyword">friend</span> <a class="code" href="classost_1_1_t_c_p_stream.html">TCPStream</a>&amp; lfcr(<a class="code" href="classost_1_1_t_c_p_stream.html">TCPStream</a>&amp;);</div>
<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160;</div>
<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l01642"></a><span class="lineno"><a class="line" href="classost_1_1_t_c_p_stream.html#ae223ae380e2dc9d2e64cde0a577eccf2"> 1642</a></span>&#160;    <a class="code" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> <a class="code" href="classost_1_1_t_c_p_stream.html#ae223ae380e2dc9d2e64cde0a577eccf2">timeout</a>;</div>
<div class="line"><a name="l01643"></a><span class="lineno"><a class="line" href="classost_1_1_t_c_p_stream.html#a1eb7fe5844a5c0a5708d658187e9839b"> 1643</a></span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="classost_1_1_t_c_p_stream.html#a1eb7fe5844a5c0a5708d658187e9839b">bufsize</a>;</div>
<div class="line"><a name="l01644"></a><span class="lineno"><a class="line" href="classost_1_1_t_c_p_stream.html#aecc5f6b34232ba0fef048f53fdaa51fc"> 1644</a></span>&#160;    Family <a class="code" href="classost_1_1_t_c_p_stream.html#aecc5f6b34232ba0fef048f53fdaa51fc">family</a>;</div>
<div class="line"><a name="l01645"></a><span class="lineno"><a class="line" href="classost_1_1_t_c_p_stream.html#afe373d1dd6090f4627e2361ff3a4fcdd"> 1645</a></span>&#160;    <span class="keywordtype">char</span> *gbuf, *<a class="code" href="classost_1_1_t_c_p_stream.html#afe373d1dd6090f4627e2361ff3a4fcdd">pbuf</a>;</div>
<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160;</div>
<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160;    <a class="code" href="classost_1_1_t_c_p_stream.html">TCPStream</a>(Family family = IPV4, <span class="keywordtype">bool</span> throwflag = <span class="keyword">true</span>, <a class="code" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> to = 0);</div>
<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160;</div>
<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160;    <span class="keywordtype">void</span> disconnect(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160;</div>
<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>&#160;    <span class="keywordtype">int</span> getSegmentSize(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160;</div>
<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160;    <span class="keywordtype">void</span> allocate(<span class="keywordtype">size_t</span> size);</div>
<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160;</div>
<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160;    <span class="keywordtype">void</span> endStream(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160;</div>
<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160;    <span class="keywordtype">int</span> underflow();</div>
<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160;</div>
<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160;    <span class="keywordtype">int</span> uflow();</div>
<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160;</div>
<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160;    <span class="keywordtype">int</span> overflow(<span class="keywordtype">int</span> ch);</div>
<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160;</div>
<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>&#160;    <span class="keywordtype">void</span> connect(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> &amp;host, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port, <span class="keywordtype">unsigned</span> mss = 536);</div>
<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>&#160;<span class="preprocessor"></span>    <span class="keywordtype">void</span> connect(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_host.html">IPV6Host</a> &amp;host, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port, <span class="keywordtype">unsigned</span> mss = 536);</div>
<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160;    <span class="keywordtype">void</span> connect(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">unsigned</span> mss = 536);</div>
<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160;</div>
<div class="line"><a name="l01735"></a><span class="lineno"><a class="line" href="classost_1_1_t_c_p_stream.html#a5191b9c6d7c2369f96f236ae78b25452"> 1735</a></span>&#160;    std::iostream *<a class="code" href="classost_1_1_t_c_p_stream.html#a5191b9c6d7c2369f96f236ae78b25452">tcp</a>(<span class="keywordtype">void</span>)</div>
<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160;        {<span class="keywordflow">return</span> ((std::iostream *)<span class="keyword">this</span>);};</div>
<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160;</div>
<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160;    <a class="code" href="classost_1_1_t_c_p_stream.html">TCPStream</a>(<a class="code" href="classost_1_1_t_c_p_socket.html">TCPSocket</a> &amp;server, <span class="keywordtype">bool</span> throwflag = <span class="keyword">true</span>, <a class="code" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timeout = 0);</div>
<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160;<span class="preprocessor"></span>    <a class="code" href="classost_1_1_t_c_p_stream.html">TCPStream</a>(<a class="code" href="classost_1_1_t_c_p_v6_socket.html">TCPV6Socket</a> &amp;server, <span class="keywordtype">bool</span> throwflag = <span class="keyword">true</span>, <a class="code" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timeout = 0);</div>
<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>&#160;    <span class="keywordtype">void</span> connect(<a class="code" href="classost_1_1_t_c_p_socket.html">TCPSocket</a> &amp;server);</div>
<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160;<span class="preprocessor"></span>    <span class="keywordtype">void</span> connect(<a class="code" href="classost_1_1_t_c_p_v6_socket.html">TCPV6Socket</a> &amp;server);</div>
<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160;    <a class="code" href="classost_1_1_t_c_p_stream.html">TCPStream</a>(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> &amp;host, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port, <span class="keywordtype">unsigned</span> mss = 536, <span class="keywordtype">bool</span> throwflag = <span class="keyword">true</span>, <a class="code" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timeout = 0);</div>
<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>&#160;<span class="preprocessor"></span>    <a class="code" href="classost_1_1_t_c_p_stream.html">TCPStream</a>(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_host.html">IPV6Host</a> &amp;host, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port, <span class="keywordtype">unsigned</span> mss = 536, <span class="keywordtype">bool</span> throwflag = <span class="keyword">true</span>, <a class="code" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timeout = 0);</div>
<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>&#160;    <a class="code" href="classost_1_1_t_c_p_stream.html">TCPStream</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, Family family = IPV4, <span class="keywordtype">unsigned</span> mss = 536, <span class="keywordtype">bool</span> throwflag = <span class="keyword">false</span>, <a class="code" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timer = 0);</div>
<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>&#160;</div>
<div class="line"><a name="l01794"></a><span class="lineno"><a class="line" href="classost_1_1_t_c_p_stream.html#a1bdf8e7962c57d6086117d5a790ad3f6"> 1794</a></span>&#160;    <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classost_1_1_t_c_p_stream.html#a1bdf8e7962c57d6086117d5a790ad3f6">setTimeout</a>(<a class="code" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timer)</div>
<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>&#160;        {timeout = timer;};</div>
<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>&#160;</div>
<div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>&#160;    <a class="code" href="classost_1_1_t_c_p_stream.html">TCPStream</a>(<span class="keyword">const</span> <a class="code" href="classost_1_1_t_c_p_stream.html">TCPStream</a> &amp;source);</div>
<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>&#160;</div>
<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classost_1_1_t_c_p_stream.html">TCPStream</a>();</div>
<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>&#160;</div>
<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>&#160;    <span class="keywordtype">int</span> sync(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>&#160;</div>
<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>&#160;<span class="preprocessor">#ifdef  HAVE_SNPRINTF</span></div>
<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160;    <span class="keywordtype">size_t</span> printf(<span class="keyword">const</span> <span class="keywordtype">char</span> *format, ...);</div>
<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>&#160;    <span class="keywordtype">bool</span> isPending(Pending pend, <a class="code" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timeout = <a class="code" href="thread_8h.html#a74f2d4c747bce0b8f7f7c1f48e651876">TIMEOUT_INF</a>);</div>
<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>&#160;</div>
<div class="line"><a name="l01845"></a><span class="lineno"><a class="line" href="classost_1_1_t_c_p_stream.html#a0150df4f03d32e200b22d0f06404ac39"> 1845</a></span>&#160;     <span class="keyword">inline</span> ssize_t <a class="code" href="classost_1_1_t_c_p_stream.html#a0150df4f03d32e200b22d0f06404ac39">peek</a>(<span class="keywordtype">void</span> *buf, <span class="keywordtype">size_t</span> len)</div>
<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>&#160;         {<span class="keywordflow">return</span> _IORET64 ::recv(so, (<span class="keywordtype">char</span> *)buf, <a class="code" href="socket_8h.html#addbcacf8e7b5164e650dc7f2ab47fea1">_IOLEN64</a> len, MSG_PEEK);};</div>
<div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>&#160;</div>
<div class="line"><a name="l01853"></a><span class="lineno"><a class="line" href="classost_1_1_t_c_p_stream.html#a0d016d7c968dcfcb0d3e15e759af4c5f"> 1853</a></span>&#160;    <span class="keyword">inline</span> <span class="keywordtype">size_t</span> <a class="code" href="classost_1_1_t_c_p_stream.html#a0d016d7c968dcfcb0d3e15e759af4c5f">getBufferSize</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div>
<div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>&#160;<span class="keyword">        </span>{<span class="keywordflow">return</span> bufsize;};</div>
<div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>&#160;};</div>
<div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160;</div>
<div class="line"><a name="l01867"></a><span class="lineno"><a class="line" href="classost_1_1_t_c_p_session.html"> 1867</a></span>&#160;<span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_t_c_p_session.html">TCPSession</a> : <span class="keyword">public</span> <a class="code" href="classost_1_1_thread.html">Thread</a>, <span class="keyword">public</span> <a class="code" href="classost_1_1_t_c_p_stream.html">TCPStream</a></div>
<div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>&#160;{</div>
<div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>&#160;    <a class="code" href="classost_1_1_t_c_p_session.html">TCPSession</a>(<span class="keyword">const</span> <a class="code" href="classost_1_1_t_c_p_session.html">TCPSession</a> &amp;rhs); <span class="comment">// not defined</span></div>
<div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160;    <span class="keywordtype">int</span> waitConnection(<a class="code" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timeout = <a class="code" href="thread_8h.html#a74f2d4c747bce0b8f7f7c1f48e651876">TIMEOUT_INF</a>);</div>
<div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>&#160;</div>
<div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>&#160;    <span class="keywordtype">void</span> initial(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>&#160;</div>
<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>&#160;    <a class="code" href="classost_1_1_t_c_p_session.html">TCPSession</a>(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> &amp;host,</div>
<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160;        <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port, <span class="keywordtype">size_t</span> size = 536, <span class="keywordtype">int</span> pri = 0, <span class="keywordtype">size_t</span> stack = 0);</div>
<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>&#160;<span class="preprocessor"></span>    <a class="code" href="classost_1_1_t_c_p_session.html">TCPSession</a>(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_host.html">IPV6Host</a> &amp;host,</div>
<div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>&#160;        <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port, <span class="keywordtype">size_t</span> size = 536, <span class="keywordtype">int</span> pri = 0, <span class="keywordtype">size_t</span> stack = 0);</div>
<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160;    <a class="code" href="classost_1_1_t_c_p_session.html">TCPSession</a>(<a class="code" href="classost_1_1_t_c_p_socket.html">TCPSocket</a> &amp;server, <span class="keywordtype">int</span> pri = 0, <span class="keywordtype">size_t</span> stack = 0);</div>
<div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>&#160;<span class="preprocessor">#ifdef  CCXX_IPV6</span></div>
<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160;<span class="preprocessor"></span>    <a class="code" href="classost_1_1_t_c_p_session.html">TCPSession</a>(<a class="code" href="classost_1_1_t_c_p_v6_socket.html">TCPV6Socket</a> &amp;server, <span class="keywordtype">int</span> pri = 0, <span class="keywordtype">size_t</span> stack = 0);</div>
<div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classost_1_1_t_c_p_session.html">TCPSession</a>();</div>
<div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160;};</div>
<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160;</div>
<div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>&#160;<span class="preprocessor">#if defined(WIN32)</span></div>
<div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>&#160;<span class="keyword">class </span>init_WSA</div>
<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>&#160;{</div>
<div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>&#160;    init_WSA();</div>
<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>&#160;    ~init_WSA();</div>
<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>&#160;};</div>
<div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>&#160;</div>
<div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>&#160;<span class="preprocessor">#endif // WIN32</span></div>
<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l01952"></a><span class="lineno"><a class="line" href="namespaceost.html#a33ac1051cb7ef5d55c254ff51054d2e7"> 1952</a></span>&#160;<span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_simple_t_c_p_stream.html">SimpleTCPStream</a>;</div>
<div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>&#160;</div>
<div class="line"><a name="l01965"></a><span class="lineno"><a class="line" href="classost_1_1_simple_t_c_p_stream.html"> 1965</a></span>&#160;<span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_simple_t_c_p_stream.html">SimpleTCPStream</a> : <span class="keyword">public</span> <a class="code" href="classost_1_1_socket.html">Socket</a></div>
<div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>&#160;{</div>
<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160;</div>
<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160;    <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> getSender(<a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> *port) <span class="keyword">const</span>;</div>
<div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>&#160;</div>
<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>&#160;    <a class="code" href="namespaceost.html#a33ac1051cb7ef5d55c254ff51054d2e7">SimpleTCPStream</a>();</div>
<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>&#160;</div>
<div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>&#160;    <span class="keywordtype">void</span> endStream(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>&#160;</div>
<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160;    <span class="keywordtype">void</span> Connect(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> &amp;host, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port, <span class="keywordtype">size_t</span> size);</div>
<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160;</div>
<div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>&#160;</div>
<div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>&#160;    <a class="code" href="namespaceost.html#a33ac1051cb7ef5d55c254ff51054d2e7">SimpleTCPStream</a>(<a class="code" href="classost_1_1_t_c_p_socket.html">TCPSocket</a> &amp;server, <span class="keywordtype">size_t</span> size = 512);</div>
<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160;</div>
<div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>&#160;    <a class="code" href="namespaceost.html#a33ac1051cb7ef5d55c254ff51054d2e7">SimpleTCPStream</a>(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> &amp;host, <a class="code" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">tpport_t</a> port, <span class="keywordtype">size_t</span> size = 512);</div>
<div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>&#160;</div>
<div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>&#160;    <a class="code" href="namespaceost.html#a33ac1051cb7ef5d55c254ff51054d2e7">SimpleTCPStream</a>(<span class="keyword">const</span> <a class="code" href="classost_1_1_simple_t_c_p_stream.html">SimpleTCPStream</a> &amp;source);</div>
<div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>&#160;</div>
<div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classost_1_1_simple_t_c_p_stream.html">SimpleTCPStream</a>();</div>
<div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160;</div>
<div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160;    <span class="keywordtype">bool</span> isPending(<a class="code" href="classost_1_1_socket.html#a2cb9ccad21fc2f10c23e45cbb99bc6f8">Pending</a> pend, <a class="code" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timeout = <a class="code" href="thread_8h.html#a74f2d4c747bce0b8f7f7c1f48e651876">TIMEOUT_INF</a>);</div>
<div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160;</div>
<div class="line"><a name="l02042"></a><span class="lineno"><a class="line" href="classost_1_1_simple_t_c_p_stream.html#a50cdae078469b3876506ca4408f69705"> 2042</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classost_1_1_simple_t_c_p_stream.html#a50cdae078469b3876506ca4408f69705">flush</a>() {}</div>
<div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160;</div>
<div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>&#160;    ssize_t read(<span class="keywordtype">char</span> *bytes, <span class="keywordtype">size_t</span> length, <a class="code" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timeout = 0);</div>
<div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>&#160;</div>
<div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>&#160;    ssize_t write(<span class="keyword">const</span> <span class="keywordtype">char</span> *bytes, <span class="keywordtype">size_t</span> length, <a class="code" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timeout = 0);</div>
<div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>&#160;</div>
<div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>&#160;    ssize_t peek(<span class="keywordtype">char</span> *bytes, <span class="keywordtype">size_t</span> length, <a class="code" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timeout = 0);</div>
<div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>&#160;</div>
<div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>&#160;};</div>
<div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160;</div>
<div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>&#160;<span class="preprocessor">#ifdef  COMMON_STD_EXCEPTION</span></div>
<div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160;<span class="preprocessor"></span><span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> SockException : <span class="keyword">public</span> IOException</div>
<div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160;{</div>
<div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160;    <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Socket::Error</a> _socketError;</div>
<div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>&#160;</div>
<div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160;    SockException(<span class="keyword">const</span> String &amp;str, <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Socket::Error</a> socketError, <span class="keywordtype">long</span> systemError = 0) :</div>
<div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160;        IOException(str, systemError), _socketError(socketError) {};</div>
<div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>&#160;</div>
<div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>&#160;    <span class="keyword">inline</span> <a class="code" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">Socket::Error</a> getSocketError()<span class="keyword"> const</span></div>
<div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>&#160;<span class="keyword">    </span>{ <span class="keywordflow">return</span> _socketError; }</div>
<div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>&#160;};</div>
<div class="line"><a name="l02100"></a><span class="lineno"> 2100</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160;<span class="preprocessor">#ifdef  CCXX_NAMESPACES</span></div>
<div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160;<span class="preprocessor"></span>}</div>
<div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>&#160;<span class="preprocessor"></span></div>
<div class="ttc" id="classost_1_1_t_c_p_v6_socket_html_acede992ad26a20072d38716d44f243dc"><div class="ttname"><a href="classost_1_1_t_c_p_v6_socket.html#acede992ad26a20072d38716d44f243dc">ost::TCPV6Socket::getSocket</a></div><div class="ttdeci">SOCKET getSocket(void)</div><div class="ttdoc">Fetch out the socket. </div><div class="ttdef"><b>Definition:</b> socket.h:1537</div></div>
<div class="ttc" id="classost_1_1_u_d_p_broadcast_html"><div class="ttname"><a href="classost_1_1_u_d_p_broadcast.html">ost::UDPBroadcast</a></div><div class="ttdoc">Representing a UDP socket used for subnet broadcasts, this class provides an alternate binding and se...</div><div class="ttdef"><b>Definition:</b> socket.h:1053</div></div>
<div class="ttc" id="classost_1_1_socket_html_a68a7acd6af1686e66e88e9e466a9903f"><div class="ttname"><a href="classost_1_1_socket.html#a68a7acd6af1686e66e88e9e466a9903f">ost::Socket::getIPV4Sender</a></div><div class="ttdeci">virtual IPV4Host getIPV4Sender(tpport_t *port=NULL) const </div><div class="ttdoc">May be used to examine the origin of data waiting in the socket receive queue. </div></div>
<div class="ttc" id="classost_1_1_t_c_p_v6_socket_html_a490ee599f8bdb269f359f33cc7862845"><div class="ttname"><a href="classost_1_1_t_c_p_v6_socket.html#a490ee599f8bdb269f359f33cc7862845">ost::TCPV6Socket::isPendingConnection</a></div><div class="ttdeci">bool isPendingConnection(timeout_t timeout=TIMEOUT_INF)</div><div class="ttdoc">Used to wait for pending connection requests. </div><div class="ttdef"><b>Definition:</b> socket.h:1596</div></div>
<div class="ttc" id="classost_1_1_t_c_p_stream_html_a5191b9c6d7c2369f96f236ae78b25452"><div class="ttname"><a href="classost_1_1_t_c_p_stream.html#a5191b9c6d7c2369f96f236ae78b25452">ost::TCPStream::tcp</a></div><div class="ttdeci">std::iostream * tcp(void)</div><div class="ttdoc">Used in derived classes to refer to the current object via it&amp;#39;s iostream. </div><div class="ttdef"><b>Definition:</b> socket.h:1735</div></div>
<div class="ttc" id="classost_1_1_socket_html_ae056b6dd4f167163083b7ab602fd3f3fad21ca357b1645094f6ddcbac26a4deed"><div class="ttname"><a href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fad21ca357b1645094f6ddcbac26a4deed">ost::Socket::errConnectBusy</a></div><div class="ttdef"><b>Definition:</b> socket.h:146</div></div>
<div class="ttc" id="socket_8h_html_a9f55d0e90dc8cc6b2287312435cdde48"><div class="ttname"><a href="socket_8h.html#a9f55d0e90dc8cc6b2287312435cdde48">MSG_NOSIGNAL</a></div><div class="ttdeci">#define MSG_NOSIGNAL</div><div class="ttdef"><b>Definition:</b> socket.h:76</div></div>
<div class="ttc" id="classost_1_1_socket_html_ae056b6dd4f167163083b7ab602fd3f3fa5833cd0e1a43ae7d420e62ce0851611e"><div class="ttname"><a href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa5833cd0e1a43ae7d420e62ce0851611e">ost::Socket::errResourceFailure</a></div><div class="ttdef"><b>Definition:</b> socket.h:137</div></div>
<div class="ttc" id="classost_1_1_socket_html_a2cb9ccad21fc2f10c23e45cbb99bc6f8af2d41647f208c78eb97fe77196c55ccc"><div class="ttname"><a href="classost_1_1_socket.html#a2cb9ccad21fc2f10c23e45cbb99bc6f8af2d41647f208c78eb97fe77196c55ccc">ost::Socket::pendingInput</a></div><div class="ttdef"><b>Definition:</b> socket.h:175</div></div>
<div class="ttc" id="classost_1_1_socket_html_ae056b6dd4f167163083b7ab602fd3f3fa394bc212b3ab9c69dcb47b1412cedb53"><div class="ttname"><a href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa394bc212b3ab9c69dcb47b1412cedb53">ost::Socket::errCopyFailed</a></div><div class="ttdef"><b>Definition:</b> socket.h:134</div></div>
<div class="ttc" id="classost_1_1_t_c_p_v6_socket_html_a2afe9be7e5c2390b5d6cf5c18c705a9c"><div class="ttname"><a href="classost_1_1_t_c_p_v6_socket.html#a2afe9be7e5c2390b5d6cf5c18c705a9c">ost::TCPV6Socket::getRequest</a></div><div class="ttdeci">IPV6Host getRequest(tpport_t *port=NULL) const </div><div class="ttdoc">Return address and port of next connection request. </div><div class="ttdef"><b>Definition:</b> socket.h:1577</div></div>
<div class="ttc" id="classost_1_1_d_c_c_p_socket_html_ad50bce35876eae7fc93ec408c397483d"><div class="ttname"><a href="classost_1_1_d_c_c_p_socket.html#ad50bce35876eae7fc93ec408c397483d">ost::DCCPSocket::isPendingConnection</a></div><div class="ttdeci">bool isPendingConnection(timeout_t timeout=TIMEOUT_INF)</div><div class="ttdoc">Used to wait for pending connection requests. </div><div class="ttdef"><b>Definition:</b> socket.h:843</div></div>
<div class="ttc" id="classost_1_1_socket_html_ad17e0a386f4c50a57db3bebe55571066a8240e96a84fba05c787ee8f770bbc47d"><div class="ttname"><a href="classost_1_1_socket.html#ad17e0a386f4c50a57db3bebe55571066a8240e96a84fba05c787ee8f770bbc47d">ost::Socket::CONNECTING</a></div><div class="ttdef"><b>Definition:</b> socket.h:187</div></div>
<div class="ttc" id="classost_1_1_socket_html_abfdaefd24888f2d51089bdb31894286e"><div class="ttname"><a href="classost_1_1_socket.html#abfdaefd24888f2d51089bdb31894286e">ost::Socket::getErrorNumber</a></div><div class="ttdeci">Error getErrorNumber(void) const </div><div class="ttdoc">Often used by a &amp;quot;catch&amp;quot; to fetch the last error of a thrown socket. </div><div class="ttdef"><b>Definition:</b> socket.h:668</div></div>
<div class="ttc" id="classost_1_1_socket_html_ad17e0a386f4c50a57db3bebe55571066"><div class="ttname"><a href="classost_1_1_socket.html#ad17e0a386f4c50a57db3bebe55571066">ost::Socket::State</a></div><div class="ttdeci">State</div><div class="ttdef"><b>Definition:</b> socket.h:182</div></div>
<div class="ttc" id="classost_1_1_socket_html_ad17e0a386f4c50a57db3bebe55571066a421a6e01dfd1841341d0dbcd7e821aa6"><div class="ttname"><a href="classost_1_1_socket.html#ad17e0a386f4c50a57db3bebe55571066a421a6e01dfd1841341d0dbcd7e821aa6">ost::Socket::CONNECTED</a></div><div class="ttdef"><b>Definition:</b> socket.h:186</div></div>
<div class="ttc" id="classost_1_1_socket_html_ae056b6dd4f167163083b7ab602fd3f3fa61d62014cda69b8d77dd07141f59252b"><div class="ttname"><a href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa61d62014cda69b8d77dd07141f59252b">ost::Socket::errBindingFailed</a></div><div class="ttdef"><b>Definition:</b> socket.h:148</div></div>
<div class="ttc" id="classost_1_1_t_c_p_stream_html_a1bdf8e7962c57d6086117d5a790ad3f6"><div class="ttname"><a href="classost_1_1_t_c_p_stream.html#a1bdf8e7962c57d6086117d5a790ad3f6">ost::TCPStream::setTimeout</a></div><div class="ttdeci">void setTimeout(timeout_t timer)</div><div class="ttdoc">Set the I/O operation timeout for socket I/O operations. </div><div class="ttdef"><b>Definition:</b> socket.h:1794</div></div>
<div class="ttc" id="classost_1_1_t_c_p_stream_html_ae223ae380e2dc9d2e64cde0a577eccf2"><div class="ttname"><a href="classost_1_1_t_c_p_stream.html#ae223ae380e2dc9d2e64cde0a577eccf2">ost::TCPStream::timeout</a></div><div class="ttdeci">timeout_t timeout</div><div class="ttdef"><b>Definition:</b> socket.h:1642</div></div>
<div class="ttc" id="classost_1_1_t_c_p_socket_html_abb20f4723de2e9641528d9c82f9389d1"><div class="ttname"><a href="classost_1_1_t_c_p_socket.html#abb20f4723de2e9641528d9c82f9389d1">ost::TCPSocket::getRequest</a></div><div class="ttdeci">IPV4Host getRequest(tpport_t *port=NULL) const </div><div class="ttdoc">Return address and port of next connection request. </div><div class="ttdef"><b>Definition:</b> socket.h:1461</div></div>
<div class="ttc" id="classost_1_1_socket_html_ae056b6dd4f167163083b7ab602fd3f3fa4739d2c04636eff1971b3648bda5f672"><div class="ttname"><a href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa4739d2c04636eff1971b3648bda5f672">ost::Socket::errServiceUnavailable</a></div><div class="ttdef"><b>Definition:</b> socket.h:153</div></div>
<div class="ttc" id="classost_1_1_u_d_p_receive_html_af5beaaf3d4941735b8784c1c1bc0ea99"><div class="ttname"><a href="classost_1_1_u_d_p_receive.html#af5beaaf3d4941735b8784c1c1bc0ea99">ost::UDPReceive::isPendingReceive</a></div><div class="ttdeci">bool isPendingReceive(timeout_t timeout)</div><div class="ttdoc">Check for pending data. </div><div class="ttdef"><b>Definition:</b> socket.h:1267</div></div>
<div class="ttc" id="classost_1_1_t_c_p_v6_socket_html_a8381cf05daeccc8f78c56a2e1cf33370"><div class="ttname"><a href="classost_1_1_t_c_p_v6_socket.html#a8381cf05daeccc8f78c56a2e1cf33370">ost::TCPV6Socket::getSegmentSize</a></div><div class="ttdeci">int getSegmentSize(void)</div><div class="ttdef"><b>Definition:</b> socket.h:1540</div></div>
<div class="ttc" id="classost_1_1_u_d_p_transmit_html_a11c5788901bb8c18af8428efe9c54145"><div class="ttname"><a href="classost_1_1_u_d_p_transmit.html#a11c5788901bb8c18af8428efe9c54145">ost::UDPTransmit::setTypeOfService</a></div><div class="ttdeci">Error setTypeOfService(Tos tos)</div><div class="ttdef"><b>Definition:</b> socket.h:1214</div></div>
<div class="ttc" id="classost_1_1_socket_html_ae056b6dd4f167163083b7ab602fd3f3faf67d1bcf85481bc4dd222f91e92deeb4"><div class="ttname"><a href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3faf67d1bcf85481bc4dd222f91e92deeb4">ost::Socket::errOutputInterrupt</a></div><div class="ttdef"><b>Definition:</b> socket.h:139</div></div>
<div class="ttc" id="classost_1_1_socket_html_ad17e0a386f4c50a57db3bebe55571066a9181006b79c1fc5111fa9fd8adced04d"><div class="ttname"><a href="classost_1_1_socket.html#ad17e0a386f4c50a57db3bebe55571066a9181006b79c1fc5111fa9fd8adced04d">ost::Socket::AVAILABLE</a></div><div class="ttdef"><b>Definition:</b> socket.h:184</div></div>
<div class="ttc" id="classost_1_1_u_d_p_transmit_html_a69b7f01eb52ae82bf91f2eefc0854918"><div class="ttname"><a href="classost_1_1_u_d_p_transmit.html#a69b7f01eb52ae82bf91f2eefc0854918">ost::UDPTransmit::getTransmitter</a></div><div class="ttdeci">SOCKET getTransmitter(void)</div><div class="ttdef"><b>Definition:</b> socket.h:1179</div></div>
<div class="ttc" id="classost_1_1_u_d_p_transmit_html_ab648dd889101cf98bcad682299c48329"><div class="ttname"><a href="classost_1_1_u_d_p_transmit.html#ab648dd889101cf98bcad682299c48329">ost::UDPTransmit::transmit</a></div><div class="ttdeci">ssize_t transmit(const char *buffer, size_t len)</div><div class="ttdoc">Transmit &amp;quot;send&amp;quot; to use &amp;quot;connected&amp;quot; send rather than sendto. </div><div class="ttdef"><b>Definition:</b> socket.h:1198</div></div>
<div class="ttc" id="classost_1_1_socket_html_a8eb84be4b5cc91731c16be4f32f5bf3d"><div class="ttname"><a href="classost_1_1_socket.html#a8eb84be4b5cc91731c16be4f32f5bf3d">ost::Socket::isPending</a></div><div class="ttdeci">virtual bool isPending(Pending pend, timeout_t timeout=TIMEOUT_INF)</div><div class="ttdoc">Get the status of pending operations. </div></div>
<div class="ttc" id="config_8h_html_ad10ef148ba8327bd530fc6c32c1e181c"><div class="ttname"><a href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a></div><div class="ttdeci">#define __EXPORT</div><div class="ttdef"><b>Definition:</b> config.h:980</div></div>
<div class="ttc" id="classost_1_1_socket_html_ae056b6dd4f167163083b7ab602fd3f3fa8f699326e6567ea4171d5821fa417e35"><div class="ttname"><a href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa8f699326e6567ea4171d5821fa417e35">ost::Socket::errExtended</a></div><div class="ttdef"><b>Definition:</b> socket.h:157</div></div>
<div class="ttc" id="classost_1_1_t_c_p_stream_html_afe373d1dd6090f4627e2361ff3a4fcdd"><div class="ttname"><a href="classost_1_1_t_c_p_stream.html#afe373d1dd6090f4627e2361ff3a4fcdd">ost::TCPStream::pbuf</a></div><div class="ttdeci">char * pbuf</div><div class="ttdef"><b>Definition:</b> socket.h:1645</div></div>
<div class="ttc" id="classost_1_1_socket_html_a2165fdf85e39e6a8aaff3da889ae7e20"><div class="ttname"><a href="classost_1_1_socket.html#a2165fdf85e39e6a8aaff3da889ae7e20">ost::Socket::setRouting</a></div><div class="ttdeci">Error setRouting(bool enable)</div><div class="ttdoc">Set the socket routing to indicate if outgoing messages should bypass normal routing (set false)...</div></div>
<div class="ttc" id="classost_1_1_socket_html_ae056b6dd4f167163083b7ab602fd3f3fa8939131de2df58fc2327933cbd024e49"><div class="ttname"><a href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa8939131de2df58fc2327933cbd024e49">ost::Socket::errSearchErr</a></div><div class="ttdef"><b>Definition:</b> socket.h:159</div></div>
<div class="ttc" id="classost_1_1_u_d_p_receive_html_aab58fbd159ce6d8c3f539038196a0d11"><div class="ttname"><a href="classost_1_1_u_d_p_receive.html#aab58fbd159ce6d8c3f539038196a0d11">ost::UDPReceive::getReceiver</a></div><div class="ttdeci">SOCKET getReceiver(void) const </div><div class="ttdef"><b>Definition:</b> socket.h:1276</div></div>
<div class="ttc" id="classost_1_1_socket_html_a09b396c3fc7316061a3f0539e918a43f"><div class="ttname"><a href="classost_1_1_socket.html#a09b396c3fc7316061a3f0539e918a43f">ost::Socket::setMulticastByFamily</a></div><div class="ttdeci">Error setMulticastByFamily(bool enable, Family family=IPV4)</div><div class="ttdoc">Setting multicast binds the multicast interface used for the socket to the interface the socket itsel...</div></div>
<div class="ttc" id="classost_1_1_socket_html_ae056b6dd4f167163083b7ab602fd3f3fa8753eb8cc4591d5288c72ba2c91ea956"><div class="ttname"><a href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa8753eb8cc4591d5288c72ba2c91ea956">ost::Socket::errMulticastDisabled</a></div><div class="ttdef"><b>Definition:</b> socket.h:154</div></div>
<div class="ttc" id="thread_8h_html_a74f2d4c747bce0b8f7f7c1f48e651876"><div class="ttname"><a href="thread_8h.html#a74f2d4c747bce0b8f7f7c1f48e651876">TIMEOUT_INF</a></div><div class="ttdeci">#define TIMEOUT_INF</div><div class="ttdef"><b>Definition:</b> thread.h:115</div></div>
<div class="ttc" id="classost_1_1_u_d_p_duplex_html"><div class="ttname"><a href="classost_1_1_u_d_p_duplex.html">ost::UDPDuplex</a></div><div class="ttdoc">UDP duplex connections impliment a bi-directional point-to-point UDP session between two peer hosts...</div><div class="ttdef"><b>Definition:</b> socket.h:1332</div></div>
<div class="ttc" id="classost_1_1_socket_html_afb0e2d234f461ce45711bff52ffc96ad"><div class="ttname"><a href="classost_1_1_socket.html#afb0e2d234f461ce45711bff52ffc96ad">ost::Socket::join</a></div><div class="ttdeci">Error join(const IPV4Multicast &amp;ia)</div><div class="ttdoc">Join a multicast group. </div></div>
<div class="ttc" id="classost_1_1_u_d_p_transmit_html_a86e9e41d05629a5e6f3029ace0d55e38"><div class="ttname"><a href="classost_1_1_u_d_p_transmit.html#a86e9e41d05629a5e6f3029ace0d55e38">ost::UDPTransmit::setBroadcast</a></div><div class="ttdeci">Error setBroadcast(bool enable)</div><div class="ttdef"><b>Definition:</b> socket.h:1217</div></div>
<div class="ttc" id="classost_1_1_socket_html_ae056b6dd4f167163083b7ab602fd3f3fa337bdb7f7512963ef0354f8be541c71e"><div class="ttname"><a href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa337bdb7f7512963ef0354f8be541c71e">ost::Socket::errLookupFail</a></div><div class="ttdef"><b>Definition:</b> socket.h:158</div></div>
<div class="ttc" id="classost_1_1_socket_html_a36a69681caa020f1abed34ae71d206ef"><div class="ttname"><a href="classost_1_1_socket.html#a36a69681caa020f1abed34ae71d206ef">ost::Socket::Family</a></div><div class="ttdeci">Family</div><div class="ttdef"><b>Definition:</b> socket.h:122</div></div>
<div class="ttc" id="classost_1_1_u_d_p_transmit_html_addc1e1aff22446589d633bacfc436e38"><div class="ttname"><a href="classost_1_1_u_d_p_transmit.html#addc1e1aff22446589d633bacfc436e38">ost::UDPTransmit::isOutputReady</a></div><div class="ttdeci">bool isOutputReady(unsigned long timeout=0l)</div><div class="ttdoc">See if output queue is empty for sending more packets. </div><div class="ttdef"><b>Definition:</b> socket.h:1207</div></div>
<div class="ttc" id="classost_1_1_u_d_p_transmit_html_a04ebd34e6cfc70146bfe3789c31d8903"><div class="ttname"><a href="classost_1_1_u_d_p_transmit.html#a04ebd34e6cfc70146bfe3789c31d8903">ost::UDPTransmit::setRouting</a></div><div class="ttdeci">Error setRouting(bool enable)</div><div class="ttdef"><b>Definition:</b> socket.h:1211</div></div>
<div class="ttc" id="config_8h_html_a2f658db822f8a23711b5bac1094c2185"><div class="ttname"><a href="config_8h.html#a2f658db822f8a23711b5bac1094c2185">uint8</a></div><div class="ttdeci">u_int8_t uint8</div><div class="ttdef"><b>Definition:</b> config.h:143</div></div>
<div class="ttc" id="classost_1_1_socket_html_a795099d3d68f4c3bf7731f263cbd1ace"><div class="ttname"><a href="classost_1_1_socket.html#a795099d3d68f4c3bf7731f263cbd1ace">ost::Socket::mutex</a></div><div class="ttdeci">static Mutex mutex</div><div class="ttdef"><b>Definition:</b> socket.h:202</div></div>
<div class="ttc" id="classost_1_1_t_c_p_stream_html_a0d016d7c968dcfcb0d3e15e759af4c5f"><div class="ttname"><a href="classost_1_1_t_c_p_stream.html#a0d016d7c968dcfcb0d3e15e759af4c5f">ost::TCPStream::getBufferSize</a></div><div class="ttdeci">size_t getBufferSize(void) const </div><div class="ttdoc">Return the size of the current stream buffering used. </div><div class="ttdef"><b>Definition:</b> socket.h:1853</div></div>
<div class="ttc" id="classost_1_1_u_d_p_socket_html_afe9f40091dc6c57c6743cf0720ab5938"><div class="ttname"><a href="classost_1_1_u_d_p_socket.html#afe9f40091dc6c57c6743cf0720ab5938">ost::UDPSocket::family</a></div><div class="ttdeci">Family family</div><div class="ttdef"><b>Definition:</b> socket.h:902</div></div>
<div class="ttc" id="classost_1_1_socket_html_a258f81f5a42d051242f0f49f8192f890ae805c8e2bc547dbc94b32ccc19c1396b"><div class="ttname"><a href="classost_1_1_socket.html#a258f81f5a42d051242f0f49f8192f890ae805c8e2bc547dbc94b32ccc19c1396b">ost::Socket::tosThroughput</a></div><div class="ttdef"><b>Definition:</b> socket.h:167</div></div>
<div class="ttc" id="classost_1_1_u_d_p_transmit_html"><div class="ttname"><a href="classost_1_1_u_d_p_transmit.html">ost::UDPTransmit</a></div><div class="ttdoc">Representing half of a two-way UDP connection, the UDP transmitter can broadcast data to another sele...</div><div class="ttdef"><b>Definition:</b> socket.h:1087</div></div>
<div class="ttc" id="classost_1_1_socket_html_ae056b6dd4f167163083b7ab602fd3f3faa5b3fc41be74d485b9aca2af43d27424"><div class="ttname"><a href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3faa5b3fc41be74d485b9aca2af43d27424">ost::Socket::errInput</a></div><div class="ttdef"><b>Definition:</b> socket.h:135</div></div>
<div class="ttc" id="thread_8h_html_af412159e5cef839836a5e7b19ee75d1c"><div class="ttname"><a href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a></div><div class="ttdeci">unsigned long timeout_t</div><div class="ttdef"><b>Definition:</b> thread.h:74</div></div>
<div class="ttc" id="classost_1_1_t_c_p_stream_html_aecc5f6b34232ba0fef048f53fdaa51fc"><div class="ttname"><a href="classost_1_1_t_c_p_stream.html#aecc5f6b34232ba0fef048f53fdaa51fc">ost::TCPStream::family</a></div><div class="ttdeci">Family family</div><div class="ttdef"><b>Definition:</b> socket.h:1644</div></div>
<div class="ttc" id="classost_1_1_socket_html_ae056b6dd4f167163083b7ab602fd3f3fa1629a51edc39b379b3736a07d07bd782"><div class="ttname"><a href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa1629a51edc39b379b3736a07d07bd782">ost::Socket::errConnectInvalid</a></div><div class="ttdef"><b>Definition:</b> socket.h:145</div></div>
<div class="ttc" id="classost_1_1_socket_html_a08683bc57bede572b8effb07a3fc68dc"><div class="ttname"><a href="classost_1_1_socket.html#a08683bc57bede572b8effb07a3fc68dc">ost::Socket::setLoopbackByFamily</a></div><div class="ttdeci">Error setLoopbackByFamily(bool enable, Family family=IPV4)</div><div class="ttdoc">Set the multicast loopback flag for the socket. </div></div>
<div class="ttc" id="classost_1_1_socket_html_a2cb9ccad21fc2f10c23e45cbb99bc6f8a0c9ffb2c87eb616774ea812fc9739efd"><div class="ttname"><a href="classost_1_1_socket.html#a2cb9ccad21fc2f10c23e45cbb99bc6f8a0c9ffb2c87eb616774ea812fc9739efd">ost::Socket::pendingOutput</a></div><div class="ttdef"><b>Definition:</b> socket.h:176</div></div>
<div class="ttc" id="classost_1_1_t_c_p_session_html"><div class="ttname"><a href="classost_1_1_t_c_p_session.html">ost::TCPSession</a></div><div class="ttdoc">The TCP session is used to primarily to represent a client connection that can be managed on a sepera...</div><div class="ttdef"><b>Definition:</b> socket.h:1867</div></div>
<div class="ttc" id="classost_1_1_socket_html_a6f54a68eab25ab41bbe13ba87a48b435"><div class="ttname"><a href="classost_1_1_socket.html#a6f54a68eab25ab41bbe13ba87a48b435">ost::Socket::setError</a></div><div class="ttdeci">void setError(bool enable)</div><div class="ttdoc">This service is used to turn the error handler on or off for &amp;quot;throwing&amp;quot; exceptions by manipulating th...</div><div class="ttdef"><b>Definition:</b> socket.h:249</div></div>
<div class="ttc" id="classost_1_1_u_d_p_receive_html"><div class="ttname"><a href="classost_1_1_u_d_p_receive.html">ost::UDPReceive</a></div><div class="ttdoc">Representing half of a two-way UDP connection, the UDP receiver can receive data from another peer ho...</div><div class="ttdef"><b>Definition:</b> socket.h:1229</div></div>
<div class="ttc" id="classost_1_1_u_d_p_receive_html_ae28ec2a16ac42d1a14f015ca5daa260f"><div class="ttname"><a href="classost_1_1_u_d_p_receive.html#ae28ec2a16ac42d1a14f015ca5daa260f">ost::UDPReceive::setRouting</a></div><div class="ttdeci">Error setRouting(bool enable)</div><div class="ttdef"><b>Definition:</b> socket.h:1279</div></div>
<div class="ttc" id="classost_1_1_socket_html_a99197c017c07c6b24d622b107fa46833"><div class="ttname"><a href="classost_1_1_socket.html#a99197c017c07c6b24d622b107fa46833">ost::Socket::getSender</a></div><div class="ttdeci">IPV4Host getSender(tpport_t *port=NULL) const </div><div class="ttdef"><b>Definition:</b> socket.h:505</div></div>
<div class="ttc" id="classost_1_1_t_c_p_v6_socket_html_ac886cc40d05790837f9a52bde00c6170"><div class="ttname"><a href="classost_1_1_t_c_p_v6_socket.html#ac886cc40d05790837f9a52bde00c6170">ost::TCPV6Socket::getLocal</a></div><div class="ttdeci">IPV6Host getLocal(tpport_t *port=NULL) const </div><div class="ttdoc">Used to get local bound address. </div><div class="ttdef"><b>Definition:</b> socket.h:1588</div></div>
<div class="ttc" id="classost_1_1_socket_html_a8120ca95daa7c488255c308998427ccb"><div class="ttname"><a href="classost_1_1_socket.html#a8120ca95daa7c488255c308998427ccb">ost::Socket::isBroadcast</a></div><div class="ttdeci">bool isBroadcast(void) const </div><div class="ttdoc">Return if broadcast has been enabled for the specified socket. </div><div class="ttdef"><b>Definition:</b> socket.h:651</div></div>
<div class="ttc" id="classost_1_1_u_d_p_receive_html_aa513f9513f012494e0fbd61d84c665f6"><div class="ttname"><a href="classost_1_1_u_d_p_receive.html#aa513f9513f012494e0fbd61d84c665f6">ost::UDPReceive::setMulticast</a></div><div class="ttdeci">Error setMulticast(bool enable)</div><div class="ttdef"><b>Definition:</b> socket.h:1282</div></div>
<div class="ttc" id="classost_1_1_socket_html_ac3dded47080c852dcebc9998643e8dc6"><div class="ttname"><a href="classost_1_1_socket.html#ac3dded47080c852dcebc9998643e8dc6">ost::Socket::getNAT</a></div><div class="ttdeci">IPV4Host getNAT(tpport_t *port) const </div><div class="ttdef"><b>Definition:</b> socket.h:575</div></div>
<div class="ttc" id="classost_1_1_socket_html_af1291caf47c2e2e72a3214e4da206b07"><div class="ttname"><a href="classost_1_1_socket.html#af1291caf47c2e2e72a3214e4da206b07">ost::Socket::so</a></div><div class="ttdeci">SOCKET volatile so</div><div class="ttdoc">the actual socket descriptor, in Windows, unlike posix it cannot be used as an file descriptor that w...</div><div class="ttdef"><b>Definition:</b> socket.h:221</div></div>
<div class="ttc" id="classost_1_1_socket_html_a4f1e7645a2d543e0a665b111c2dba8e9"><div class="ttname"><a href="classost_1_1_socket.html#a4f1e7645a2d543e0a665b111c2dba8e9">ost::Socket::getIPV6Sender</a></div><div class="ttdeci">virtual IPV6Host getIPV6Sender(tpport_t *port=NULL) const </div></div>
<div class="ttc" id="classost_1_1_socket_html_ae056b6dd4f167163083b7ab602fd3f3faf1a03fa32f971b5077ebf1cf749e90fa"><div class="ttname"><a href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3faf1a03fa32f971b5077ebf1cf749e90fa">ost::Socket::errConnectTimeout</a></div><div class="ttdef"><b>Definition:</b> socket.h:143</div></div>
<div class="ttc" id="classost_1_1_i_p_v6_address_html"><div class="ttname"><a href="classost_1_1_i_p_v6_address.html">ost::IPV6Address</a></div><div class="ttdoc">The network name and address objects are all derived from a common IPV6Address base class...</div><div class="ttdef"><b>Definition:</b> address.h:753</div></div>
<div class="ttc" id="classost_1_1_i_p_v4_address_html"><div class="ttname"><a href="classost_1_1_i_p_v4_address.html">ost::IPV4Address</a></div><div class="ttdoc">The network name and address objects are all derived from a common IPV4Address base class...</div><div class="ttdef"><b>Definition:</b> address.h:350</div></div>
<div class="ttc" id="classost_1_1_t_c_p_stream_html_a0150df4f03d32e200b22d0f06404ac39"><div class="ttname"><a href="classost_1_1_t_c_p_stream.html#a0150df4f03d32e200b22d0f06404ac39">ost::TCPStream::peek</a></div><div class="ttdeci">ssize_t peek(void *buf, size_t len)</div><div class="ttdoc">Examine contents of next waiting packet. </div><div class="ttdef"><b>Definition:</b> socket.h:1845</div></div>
<div class="ttc" id="classost_1_1_socket_html_ae056b6dd4f167163083b7ab602fd3f3fac1c33a97e722515f9851b116dc7bf2c5"><div class="ttname"><a href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fac1c33a97e722515f9851b116dc7bf2c5">ost::Socket::errInputInterrupt</a></div><div class="ttdef"><b>Definition:</b> socket.h:136</div></div>
<div class="ttc" id="classost_1_1_socket_html_a23d69227150ae996caf76b01024c1b20"><div class="ttname"><a href="classost_1_1_socket.html#a23d69227150ae996caf76b01024c1b20">ost::Socket::setTimeToLiveByFamily</a></div><div class="ttdeci">Error setTimeToLiveByFamily(unsigned char ttl, Family fam=IPV4)</div><div class="ttdoc">Set the multicast time to live for a multicast socket. </div></div>
<div class="ttc" id="classost_1_1_t_c_p_socket_html_a58d0e49f75856b2e888e9ac894c489a2"><div class="ttname"><a href="classost_1_1_t_c_p_socket.html#a58d0e49f75856b2e888e9ac894c489a2">ost::TCPSocket::getSocket</a></div><div class="ttdeci">SOCKET getSocket(void)</div><div class="ttdoc">Fetch out the socket. </div><div class="ttdef"><b>Definition:</b> socket.h:1418</div></div>
<div class="ttc" id="classost_1_1_socket_html_a72526c7c326a7faa20e96e9be01981ba"><div class="ttname"><a href="classost_1_1_socket.html#a72526c7c326a7faa20e96e9be01981ba">ost::Socket::state</a></div><div class="ttdeci">State volatile state</div><div class="ttdef"><b>Definition:</b> socket.h:222</div></div>
<div class="ttc" id="classost_1_1_socket_html_a866263b2933c0b7b649829f07ca288ff"><div class="ttname"><a href="classost_1_1_socket.html#a866263b2933c0b7b649829f07ca288ff">ost::Socket::setKeepAlive</a></div><div class="ttdeci">Error setKeepAlive(bool enable)</div><div class="ttdoc">Set the keep-alive status of this socket and if keep-alive messages will be sent. ...</div></div>
<div class="ttc" id="classost_1_1_socket_html_a8410324ca8ddf50751830f59afeaf377"><div class="ttname"><a href="classost_1_1_socket.html#a8410324ca8ddf50751830f59afeaf377">ost::Socket::getIPV6Local</a></div><div class="ttdeci">IPV6Host getIPV6Local(tpport_t *port=NULL) const </div></div>
<div class="ttc" id="classost_1_1_u_d_p_socket_html_afbf86c658fcf48b0ba946a238df091d3"><div class="ttname"><a href="classost_1_1_u_d_p_socket.html#afbf86c658fcf48b0ba946a238df091d3">ost::UDPSocket::setLoopback</a></div><div class="ttdeci">Error setLoopback(bool enable)</div><div class="ttdoc">Set the loopback. </div><div class="ttdef"><b>Definition:</b> socket.h:937</div></div>
<div class="ttc" id="classost_1_1_u_d_p_socket_html_a5d06e7131790dd26cc3cf0b1531af3a2"><div class="ttname"><a href="classost_1_1_u_d_p_socket.html#a5d06e7131790dd26cc3cf0b1531af3a2">ost::UDPSocket::getPeer</a></div><div class="ttdeci">IPV4Host getPeer(tpport_t *port=NULL) const </div><div class="ttdef"><b>Definition:</b> socket.h:1014</div></div>
<div class="ttc" id="socket_8h_html_ab18d3d439e4a9c8d0f73e7166e8eb376"><div class="ttname"><a href="socket_8h.html#ab18d3d439e4a9c8d0f73e7166e8eb376">MSG_DONTWAIT</a></div><div class="ttdeci">#define MSG_DONTWAIT</div><div class="ttdef"><b>Definition:</b> socket.h:72</div></div>
<div class="ttc" id="address_8h_html"><div class="ttname"><a href="address_8h.html">address.h</a></div><div class="ttdoc">Network addresses and sockets related classes. </div></div>
<div class="ttc" id="classost_1_1_socket_html_ae056b6dd4f167163083b7ab602fd3f3fa7646955354dce1249d606a2369ea6eaa"><div class="ttname"><a href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa7646955354dce1249d606a2369ea6eaa">ost::Socket::errConnectFailed</a></div><div class="ttdef"><b>Definition:</b> socket.h:144</div></div>
<div class="ttc" id="classost_1_1_u_d_p_receive_html_a4fb379f4df763e3726c8097d65d4c584"><div class="ttname"><a href="classost_1_1_u_d_p_receive.html#a4fb379f4df763e3726c8097d65d4c584">ost::UDPReceive::drop</a></div><div class="ttdeci">Error drop(const IPV6Multicast &amp;ia)</div><div class="ttdef"><b>Definition:</b> socket.h:1297</div></div>
<div class="ttc" id="classost_1_1_u_d_p_receive_html_a39f5e896422f2f3dda0948f265b8b013"><div class="ttname"><a href="classost_1_1_u_d_p_receive.html#a39f5e896422f2f3dda0948f265b8b013">ost::UDPReceive::receive</a></div><div class="ttdeci">ssize_t receive(void *buf, size_t len)</div><div class="ttdoc">Receive a data packet from the connected peer host. </div><div class="ttdef"><b>Definition:</b> socket.h:1309</div></div>
<div class="ttc" id="classost_1_1_socket_html_ad17e0a386f4c50a57db3bebe55571066a6f74458d0045b716df163290d56a5c85"><div class="ttname"><a href="classost_1_1_socket.html#ad17e0a386f4c50a57db3bebe55571066a6f74458d0045b716df163290d56a5c85">ost::Socket::BOUND</a></div><div class="ttdef"><b>Definition:</b> socket.h:185</div></div>
<div class="ttc" id="classost_1_1_t_c_p_socket_html_ae25df03dd4c3abd8da25e20a59ffbc62"><div class="ttname"><a href="classost_1_1_t_c_p_socket.html#ae25df03dd4c3abd8da25e20a59ffbc62">ost::TCPSocket::getSegmentSize</a></div><div class="ttdeci">int getSegmentSize(void)</div><div class="ttdoc">Get the buffer size for servers. </div><div class="ttdef"><b>Definition:</b> socket.h:1424</div></div>
<div class="ttc" id="classost_1_1_socket_html_ae056b6dd4f167163083b7ab602fd3f3fa1c7ee1231e7e7f8e8b6b1447d6f15090"><div class="ttname"><a href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa1c7ee1231e7e7f8e8b6b1447d6f15090">ost::Socket::errOutput</a></div><div class="ttdef"><b>Definition:</b> socket.h:138</div></div>
<div class="ttc" id="classost_1_1_socket_html_ae056b6dd4f167163083b7ab602fd3f3fa5d0c869dc200b3cd1eab866816dc217a"><div class="ttname"><a href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa5d0c869dc200b3cd1eab866816dc217a">ost::Socket::errTimeout</a></div><div class="ttdef"><b>Definition:</b> socket.h:155</div></div>
<div class="ttc" id="classost_1_1_socket_html_a258f81f5a42d051242f0f49f8192f890aed0323ec6ea800b824853441c4ccd3e8"><div class="ttname"><a href="classost_1_1_socket.html#a258f81f5a42d051242f0f49f8192f890aed0323ec6ea800b824853441c4ccd3e8">ost::Socket::tosMinCost</a></div><div class="ttdef"><b>Definition:</b> socket.h:169</div></div>
<div class="ttc" id="classost_1_1_socket_html_ae056b6dd4f167163083b7ab602fd3f3fac3609d1255c9a57b86edc1c9a9a79e42"><div class="ttname"><a href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fac3609d1255c9a57b86edc1c9a9a79e42">ost::Socket::errBroadcastDenied</a></div><div class="ttdef"><b>Definition:</b> socket.h:149</div></div>
<div class="ttc" id="classost_1_1_u_d_p_transmit_html_afda647033eb798b91e2c2ef3b089c5b2"><div class="ttname"><a href="classost_1_1_u_d_p_transmit.html#afda647033eb798b91e2c2ef3b089c5b2">ost::UDPTransmit::endTransmitter</a></div><div class="ttdeci">void endTransmitter(void)</div><div class="ttdoc">Stop transmitter. </div><div class="ttdef"><b>Definition:</b> socket.h:1171</div></div>
<div class="ttc" id="classost_1_1_u_d_p_socket_html_ace98f5833ad9834af24e78697699c912"><div class="ttname"><a href="classost_1_1_u_d_p_socket.html#ace98f5833ad9834af24e78697699c912">ost::UDPSocket::setMulticast</a></div><div class="ttdeci">Error setMulticast(bool enable)</div><div class="ttdoc">Set the multicast. </div><div class="ttdef"><b>Definition:</b> socket.h:943</div></div>
<div class="ttc" id="classost_1_1_socket_html_a258f81f5a42d051242f0f49f8192f890"><div class="ttname"><a href="classost_1_1_socket.html#a258f81f5a42d051242f0f49f8192f890">ost::Socket::Tos</a></div><div class="ttdeci">Tos</div><div class="ttdef"><b>Definition:</b> socket.h:165</div></div>
<div class="ttc" id="classost_1_1_socket_html_ac59c08e11070a1602352da5c54332d9e"><div class="ttname"><a href="classost_1_1_socket.html#ac59c08e11070a1602352da5c54332d9e">ost::Socket::drop</a></div><div class="ttdeci">Error drop(const IPV4Multicast &amp;ia)</div><div class="ttdoc">Drop membership from a multicast group. </div></div>
<div class="ttc" id="classost_1_1_t_c_p_socket_html_a112e8235b317f15e15f6ea264fe81eb7"><div class="ttname"><a href="classost_1_1_t_c_p_socket.html#a112e8235b317f15e15f6ea264fe81eb7">ost::TCPSocket::isPendingConnection</a></div><div class="ttdeci">bool isPendingConnection(timeout_t timeout=TIMEOUT_INF)</div><div class="ttdoc">Used to wait for pending connection requests. </div><div class="ttdef"><b>Definition:</b> socket.h:1480</div></div>
<div class="ttc" id="classost_1_1_t_c_p_v6_socket_html"><div class="ttname"><a href="classost_1_1_t_c_p_v6_socket.html">ost::TCPV6Socket</a></div><div class="ttdoc">TCPV6 sockets are used for stream based connected sessions between two ipv6 sockets. </div><div class="ttdef"><b>Definition:</b> socket.h:1514</div></div>
<div class="ttc" id="classost_1_1_u_d_p_transmit_html_a80800a55f609d62bbd8d7635f4798e6d"><div class="ttname"><a href="classost_1_1_u_d_p_transmit.html#a80800a55f609d62bbd8d7635f4798e6d">ost::UDPTransmit::setTimeToLive</a></div><div class="ttdeci">Error setTimeToLive(unsigned char ttl)</div><div class="ttdef"><b>Definition:</b> socket.h:1185</div></div>
<div class="ttc" id="classost_1_1_socket_html"><div class="ttname"><a href="classost_1_1_socket.html">ost::Socket</a></div><div class="ttdoc">The Socket is used as the base for all Internet protocol services under Common C++. </div><div class="ttdef"><b>Definition:</b> socket.h:119</div></div>
<div class="ttc" id="classost_1_1_t_c_p_stream_html_a1eb7fe5844a5c0a5708d658187e9839b"><div class="ttname"><a href="classost_1_1_t_c_p_stream.html#a1eb7fe5844a5c0a5708d658187e9839b">ost::TCPStream::bufsize</a></div><div class="ttdeci">size_t bufsize</div><div class="ttdef"><b>Definition:</b> socket.h:1643</div></div>
<div class="ttc" id="classost_1_1_u_d_p_socket_html_a64b09e6ac9325d8f44d7ca7ed59215bf"><div class="ttname"><a href="classost_1_1_u_d_p_socket.html#a64b09e6ac9325d8f44d7ca7ed59215bf">ost::UDPSocket::peek</a></div><div class="ttdeci">ssize_t peek(void *buf, size_t len)</div><div class="ttdoc">Examine contents of next waiting packet. </div><div class="ttdef"><b>Definition:</b> socket.h:1028</div></div>
<div class="ttc" id="classost_1_1_socket_html_ae49df7e3c3913147116d8491f77a1b63"><div class="ttname"><a href="classost_1_1_socket.html#ae49df7e3c3913147116d8491f77a1b63">ost::Socket::setTypeOfService</a></div><div class="ttdeci">Error setTypeOfService(Tos service)</div><div class="ttdoc">Set packet scheduling on platforms which support ip quality of service conventions. </div></div>
<div class="ttc" id="classost_1_1_socket_html_ae056b6dd4f167163083b7ab602fd3f3fa42e56e9bcd983284be704de1400d991d"><div class="ttname"><a href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa42e56e9bcd983284be704de1400d991d">ost::Socket::errConnectNoRoute</a></div><div class="ttdef"><b>Definition:</b> socket.h:147</div></div>
<div class="ttc" id="classost_1_1_mutex_html"><div class="ttname"><a href="classost_1_1_mutex.html">ost::Mutex</a></div><div class="ttdoc">The Mutex class is used to protect a section of code so that at any given time only a single thread c...</div><div class="ttdef"><b>Definition:</b> thread.h:186</div></div>
<div class="ttc" id="classost_1_1_t_c_p_stream_html"><div class="ttname"><a href="classost_1_1_t_c_p_stream.html">ost::TCPStream</a></div><div class="ttdoc">TCP streams are used to represent TCP client connections to a server by TCP protocol servers for acce...</div><div class="ttdef"><b>Definition:</b> socket.h:1631</div></div>
<div class="ttc" id="classost_1_1_i_p_v6_multicast_html"><div class="ttname"><a href="classost_1_1_i_p_v6_multicast.html">ost::IPV6Multicast</a></div><div class="ttdoc">A specialization of IPV6Address that provides address validation for multicast addresses. </div><div class="ttdef"><b>Definition:</b> address.h:1010</div></div>
<div class="ttc" id="classost_1_1_socket_html_aca71d871bfda4dfcab0891cb0c8df1d4"><div class="ttname"><a href="classost_1_1_socket.html#aca71d871bfda4dfcab0891cb0c8df1d4">ost::Socket::getLocal</a></div><div class="ttdeci">IPV4Host getLocal(tpport_t *port=NULL) const </div><div class="ttdef"><b>Definition:</b> socket.h:539</div></div>
<div class="ttc" id="classost_1_1_socket_html_ae056b6dd4f167163083b7ab602fd3f3fa4e60741a75df84410263a3113090f55a"><div class="ttname"><a href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa4e60741a75df84410263a3113090f55a">ost::Socket::errKeepaliveDenied</a></div><div class="ttdef"><b>Definition:</b> socket.h:151</div></div>
<div class="ttc" id="classost_1_1_thread_html"><div class="ttname"><a href="classost_1_1_thread.html">ost::Thread</a></div><div class="ttdoc">Every thread of execution in an application is created by instantiating an object of a class derived ...</div><div class="ttdef"><b>Definition:</b> thread.h:1093</div></div>
<div class="ttc" id="classost_1_1_u_d_p_socket_html_ad3cf52efd8d79b40796d67b59285d2cf"><div class="ttname"><a href="classost_1_1_u_d_p_socket.html#ad3cf52efd8d79b40796d67b59285d2cf">ost::UDPSocket::setTimeToLive</a></div><div class="ttdeci">Error setTimeToLive(char ttl)</div><div class="ttdoc">Set time to live. </div><div class="ttdef"><b>Definition:</b> socket.h:949</div></div>
<div class="ttc" id="classost_1_1_socket_html_a2cb9ccad21fc2f10c23e45cbb99bc6f8"><div class="ttname"><a href="classost_1_1_socket.html#a2cb9ccad21fc2f10c23e45cbb99bc6f8">ost::Socket::Pending</a></div><div class="ttdeci">Pending</div><div class="ttdef"><b>Definition:</b> socket.h:174</div></div>
<div class="ttc" id="classost_1_1_socket_html_ae056b6dd4f167163083b7ab602fd3f3fa6a5e613ed6f8b222d924e419943a870c"><div class="ttname"><a href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa6a5e613ed6f8b222d924e419943a870c">ost::Socket::errServiceDenied</a></div><div class="ttdef"><b>Definition:</b> socket.h:152</div></div>
<div class="ttc" id="classost_1_1_u_d_p_transmit_html_ac20e40569ec5502849fa3337dcfdf611"><div class="ttname"><a href="classost_1_1_u_d_p_transmit.html#ac20e40569ec5502849fa3337dcfdf611">ost::UDPTransmit::send</a></div><div class="ttdeci">ssize_t send(const void *buf, size_t len)</div><div class="ttdoc">Transmit &amp;quot;send&amp;quot; to use &amp;quot;connected&amp;quot; send rather than sendto. </div><div class="ttdef"><b>Definition:</b> socket.h:1165</div></div>
<div class="ttc" id="classost_1_1_u_d_p_receive_html_a29df9040b68e4e6b99a03827d7e112c8"><div class="ttname"><a href="classost_1_1_u_d_p_receive.html#a29df9040b68e4e6b99a03827d7e112c8">ost::UDPReceive::join</a></div><div class="ttdeci">Error join(const IPV4Multicast &amp;ia)</div><div class="ttdef"><b>Definition:</b> socket.h:1285</div></div>
<div class="ttc" id="classost_1_1_socket_html_a3ab340e773f0214eefcf66f588bcf174"><div class="ttname"><a href="classost_1_1_socket.html#a3ab340e773f0214eefcf66f588bcf174">ost::Socket::endSocket</a></div><div class="ttdeci">void endSocket(void)</div><div class="ttdoc">Used as the default destructor for ending a socket. </div></div>
<div class="ttc" id="classost_1_1_socket_html_af72396adf4cac5113e722447e48b7916"><div class="ttname"><a href="classost_1_1_socket.html#af72396adf4cac5113e722447e48b7916">ost::Socket::getIPV4Local</a></div><div class="ttdeci">IPV4Host getIPV4Local(tpport_t *port=NULL) const </div><div class="ttdoc">Get the local address and port number this socket is currently bound to. </div></div>
<div class="ttc" id="classost_1_1_i_p_v4_broadcast_html"><div class="ttname"><a href="classost_1_1_i_p_v4_broadcast.html">ost::IPV4Broadcast</a></div><div class="ttdoc">The broadcast address object is used to store the broadcast address for a specific subnet...</div><div class="ttdef"><b>Definition:</b> address.h:612</div></div>
<div class="ttc" id="classost_1_1_u_d_p_receive_html_a3a63f4aa241374a3550201eaf92c134a"><div class="ttname"><a href="classost_1_1_u_d_p_receive.html#a3a63f4aa241374a3550201eaf92c134a">ost::UDPReceive::isInputReady</a></div><div class="ttdeci">bool isInputReady(timeout_t timeout=TIMEOUT_INF)</div><div class="ttdoc">See if input queue has data packets available. </div><div class="ttdef"><b>Definition:</b> socket.h:1318</div></div>
<div class="ttc" id="socket_8h_html_a8dc8083897335125630f1af5dafd5831"><div class="ttname"><a href="socket_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a></div><div class="ttdeci">int SOCKET</div><div class="ttdef"><b>Definition:</b> socket.h:60</div></div>
<div class="ttc" id="classost_1_1_socket_html_ae056b6dd4f167163083b7ab602fd3f3fafe1fd02e79a208ee781a5b41f7fb5814"><div class="ttname"><a href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fafe1fd02e79a208ee781a5b41f7fb5814">ost::Socket::errNoDelay</a></div><div class="ttdef"><b>Definition:</b> socket.h:156</div></div>
<div class="ttc" id="namespaceost_html_a33ac1051cb7ef5d55c254ff51054d2e7"><div class="ttname"><a href="namespaceost.html#a33ac1051cb7ef5d55c254ff51054d2e7">ost::SimpleTCPStream</a></div><div class="ttdeci">class __EXPORT SimpleTCPStream</div><div class="ttdef"><b>Definition:</b> socket.h:1952</div></div>
<div class="ttc" id="classost_1_1_simple_t_c_p_stream_html"><div class="ttname"><a href="classost_1_1_simple_t_c_p_stream.html">ost::SimpleTCPStream</a></div><div class="ttdoc">Simple TCP Stream, to be used with Common C++ Library. </div><div class="ttdef"><b>Definition:</b> socket.h:1965</div></div>
<div class="ttc" id="classost_1_1_i_p_v4_host_html"><div class="ttname"><a href="classost_1_1_i_p_v4_host.html">ost::IPV4Host</a></div><div class="ttdoc">This object is used to hold the actual and valid internet address of a specific host machine that wil...</div><div class="ttdef"><b>Definition:</b> address.h:561</div></div>
<div class="ttc" id="classost_1_1_socket_html_ae056b6dd4f167163083b7ab602fd3f3f"><div class="ttname"><a href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f">ost::Socket::Error</a></div><div class="ttdeci">Error</div><div class="ttdef"><b>Definition:</b> socket.h:131</div></div>
<div class="ttc" id="classost_1_1_u_d_p_receive_html_a6ec872d42da02ac13e3390f4ec6cb98d"><div class="ttname"><a href="classost_1_1_u_d_p_receive.html#a6ec872d42da02ac13e3390f4ec6cb98d">ost::UDPReceive::drop</a></div><div class="ttdeci">Error drop(const IPV4Multicast &amp;ia)</div><div class="ttdef"><b>Definition:</b> socket.h:1293</div></div>
<div class="ttc" id="classost_1_1_simple_t_c_p_stream_html_a50cdae078469b3876506ca4408f69705"><div class="ttname"><a href="classost_1_1_simple_t_c_p_stream.html#a50cdae078469b3876506ca4408f69705">ost::SimpleTCPStream::flush</a></div><div class="ttdeci">void flush()</div><div class="ttdef"><b>Definition:</b> socket.h:2042</div></div>
<div class="ttc" id="classost_1_1_u_d_p_socket_html"><div class="ttname"><a href="classost_1_1_u_d_p_socket.html">ost::UDPSocket</a></div><div class="ttdoc">UDP sockets implement the TCP SOCK_DGRAM UDP protocol. </div><div class="ttdef"><b>Definition:</b> socket.h:884</div></div>
<div class="ttc" id="classost_1_1_socket_html_ae056b6dd4f167163083b7ab602fd3f3fa672dcab0341a211dcb14e0f848e9b5f9"><div class="ttname"><a href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa672dcab0341a211dcb14e0f848e9b5f9">ost::Socket::errNotConnected</a></div><div class="ttdef"><b>Definition:</b> socket.h:140</div></div>
<div class="ttc" id="classost_1_1_socket_html_a1a507041ee5741bcdc906707b1735781"><div class="ttname"><a href="classost_1_1_socket.html#a1a507041ee5741bcdc906707b1735781">ost::Socket::setBroadcast</a></div><div class="ttdeci">Error setBroadcast(bool enable)</div><div class="ttdoc">Set the subnet broadcast flag for the socket. </div></div>
<div class="ttc" id="classost_1_1_i_p_v4_multicast_html"><div class="ttname"><a href="classost_1_1_i_p_v4_multicast.html">ost::IPV4Multicast</a></div><div class="ttdoc">A specialization of IPV4Address that provides address validation for multicast addresses. </div><div class="ttdef"><b>Definition:</b> address.h:634</div></div>
<div class="ttc" id="classost_1_1_t_c_p_socket_html_aa0779bf0973ae5b54a5f323ef62ab4ae"><div class="ttname"><a href="classost_1_1_t_c_p_socket.html#aa0779bf0973ae5b54a5f323ef62ab4ae">ost::TCPSocket::getLocal</a></div><div class="ttdeci">IPV4Host getLocal(tpport_t *port=NULL) const </div><div class="ttdoc">Used to get local bound address. </div><div class="ttdef"><b>Definition:</b> socket.h:1472</div></div>
<div class="ttc" id="classost_1_1_u_d_p_receive_html_a3d1491c118a0609aa6f67aed9a7a5103"><div class="ttname"><a href="classost_1_1_u_d_p_receive.html#a3d1491c118a0609aa6f67aed9a7a5103">ost::UDPReceive::join</a></div><div class="ttdeci">Error join(const IPV6Multicast &amp;ia)</div><div class="ttdef"><b>Definition:</b> socket.h:1289</div></div>
<div class="ttc" id="classost_1_1_t_c_p_socket_html_a926afdde97f8074cfe21a6c0d23830ed"><div class="ttname"><a href="classost_1_1_t_c_p_socket.html#a926afdde97f8074cfe21a6c0d23830ed">ost::TCPSocket::segsize</a></div><div class="ttdeci">int segsize</div><div class="ttdef"><b>Definition:</b> socket.h:1398</div></div>
<div class="ttc" id="classost_1_1_socket_html_a258f81f5a42d051242f0f49f8192f890ad0e7d077cb9c6e6f3e702bc735af87d4"><div class="ttname"><a href="classost_1_1_socket.html#a258f81f5a42d051242f0f49f8192f890ad0e7d077cb9c6e6f3e702bc735af87d4">ost::Socket::tosReliability</a></div><div class="ttdef"><b>Definition:</b> socket.h:168</div></div>
<div class="ttc" id="classost_1_1_u_d_p_transmit_html_a4e5c8fb7c2ea5f78454d303169d68b61"><div class="ttname"><a href="classost_1_1_u_d_p_transmit.html#a4e5c8fb7c2ea5f78454d303169d68b61">ost::UDPTransmit::setMulticast</a></div><div class="ttdeci">Error setMulticast(bool enable)</div><div class="ttdef"><b>Definition:</b> socket.h:1182</div></div>
<div class="ttc" id="namespaceost_html_a3c74a1a40c359fd349f3e3e1b96ebfc7"><div class="ttname"><a href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7">ost::tpport_t</a></div><div class="ttdeci">unsigned short tpport_t</div><div class="ttdoc">Transport Protocol Ports. </div><div class="ttdef"><b>Definition:</b> address.h:86</div></div>
<div class="ttc" id="classost_1_1_i_p_v6_host_html"><div class="ttname"><a href="classost_1_1_i_p_v6_host.html">ost::IPV6Host</a></div><div class="ttdoc">This object is used to hold the actual and valid internet address of a specific host machine that wil...</div><div class="ttdef"><b>Definition:</b> address.h:948</div></div>
<div class="ttc" id="classost_1_1_socket_html_a0a1e09a4411bf60bb5e2b6235d4e6a46"><div class="ttname"><a href="classost_1_1_socket.html#a0a1e09a4411bf60bb5e2b6235d4e6a46">ost::Socket::isRouted</a></div><div class="ttdeci">bool isRouted(void) const </div><div class="ttdoc">Return if socket routing is enabled. </div><div class="ttdef"><b>Definition:</b> socket.h:659</div></div>
<div class="ttc" id="classost_1_1_socket_html_ad17e0a386f4c50a57db3bebe55571066abd827e310a97ea890353a7ee5f92885c"><div class="ttname"><a href="classost_1_1_socket.html#ad17e0a386f4c50a57db3bebe55571066abd827e310a97ea890353a7ee5f92885c">ost::Socket::INITIAL</a></div><div class="ttdef"><b>Definition:</b> socket.h:183</div></div>
<div class="ttc" id="classost_1_1_socket_html_ae056b6dd4f167163083b7ab602fd3f3faa352506dcb7b1d118837c1808944466f"><div class="ttname"><a href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3faa352506dcb7b1d118837c1808944466f">ost::Socket::errRoutingDenied</a></div><div class="ttdef"><b>Definition:</b> socket.h:150</div></div>
<div class="ttc" id="classost_1_1_socket_html_a6fd1dffdfe9606e56fba838559ff6d67"><div class="ttname"><a href="classost_1_1_socket.html#a6fd1dffdfe9606e56fba838559ff6d67">ost::Socket::getPeer</a></div><div class="ttdeci">IPV4Host getPeer(tpport_t *port=NULL) const </div><div class="ttdef"><b>Definition:</b> socket.h:523</div></div>
<div class="ttc" id="classost_1_1_d_c_c_p_socket_html"><div class="ttname"><a href="classost_1_1_d_c_c_p_socket.html">ost::DCCPSocket</a></div><div class="ttdoc">DCCP sockets are used for stream based connected sessions between two sockets. </div><div class="ttdef"><b>Definition:</b> socket.h:720</div></div>
<div class="ttc" id="classost_1_1_socket_html_ad1c8bb17f75cfe540853a871081bd9d0"><div class="ttname"><a href="classost_1_1_socket.html#ad1c8bb17f75cfe540853a871081bd9d0">ost::Socket::getErrorString</a></div><div class="ttdeci">const char * getErrorString(void) const </div><div class="ttdoc">Often used by a &amp;quot;catch&amp;quot; to fetch the user set error string of a thrown socket, but only if EXTENDED e...</div><div class="ttdef"><b>Definition:</b> socket.h:676</div></div>
<div class="ttc" id="classost_1_1_socket_html_a4f06b1af9c42afcc36739aa6b80982ef"><div class="ttname"><a href="classost_1_1_socket.html#a4f06b1af9c42afcc36739aa6b80982ef">ost::Socket::error</a></div><div class="ttdeci">void error(const char *err) const </div><div class="ttdoc">This service is used to throw application defined socket errors where the application specific error ...</div><div class="ttdef"><b>Definition:</b> socket.h:240</div></div>
<div class="ttc" id="classost_1_1_socket_html_ae056b6dd4f167163083b7ab602fd3f3fa837e20c1c3c6cf12d670f87afc1e8f66"><div class="ttname"><a href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa837e20c1c3c6cf12d670f87afc1e8f66">ost::Socket::errConnectRejected</a></div><div class="ttdef"><b>Definition:</b> socket.h:142</div></div>
<div class="ttc" id="classost_1_1_t_c_p_socket_html"><div class="ttname"><a href="classost_1_1_t_c_p_socket.html">ost::TCPSocket</a></div><div class="ttdoc">TCP sockets are used for stream based connected sessions between two sockets. </div><div class="ttdef"><b>Definition:</b> socket.h:1395</div></div>
<div class="ttc" id="classost_1_1_socket_html_ae056b6dd4f167163083b7ab602fd3f3fade54564fcb05a1744ccbf94f5a1b57a5"><div class="ttname"><a href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fade54564fcb05a1744ccbf94f5a1b57a5">ost::Socket::errConnectRefused</a></div><div class="ttdef"><b>Definition:</b> socket.h:141</div></div>
<div class="ttc" id="classost_1_1_socket_html_ae056b6dd4f167163083b7ab602fd3f3fa8d1d01d77a141c804b50456d70b94e46"><div class="ttname"><a href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3fa8d1d01d77a141c804b50456d70b94e46">ost::Socket::errCreateFailed</a></div><div class="ttdef"><b>Definition:</b> socket.h:133</div></div>
<div class="ttc" id="socket_8h_html_addbcacf8e7b5164e650dc7f2ab47fea1"><div class="ttname"><a href="socket_8h.html#addbcacf8e7b5164e650dc7f2ab47fea1">_IOLEN64</a></div><div class="ttdeci">#define _IOLEN64</div><div class="ttdef"><b>Definition:</b> socket.h:64</div></div>
<div class="ttc" id="classost_1_1_socket_html_a7720aace2bf055d21a6fc33007c88197"><div class="ttname"><a href="classost_1_1_socket.html#a7720aace2bf055d21a6fc33007c88197">ost::Socket::getSystemError</a></div><div class="ttdeci">long getSystemError(void) const </div><div class="ttdef"><b>Definition:</b> socket.h:678</div></div>
<div class="ttc" id="namespaceost_html_a61faeec2dc6ec946dc3e98979bd93124"><div class="ttname"><a href="namespaceost.html#a61faeec2dc6ec946dc3e98979bd93124">ost::error</a></div><div class="ttdeci">__EXPORT AppLog &amp; error(AppLog &amp;sl)</div><div class="ttdoc">Manipulator for error level. </div><div class="ttdef"><b>Definition:</b> applog.h:541</div></div>
<div class="ttc" id="classost_1_1_u_d_p_receive_html_aee5e39bfbba0ba9cbfb616b0df254bcd"><div class="ttname"><a href="classost_1_1_u_d_p_receive.html#aee5e39bfbba0ba9cbfb616b0df254bcd">ost::UDPReceive::endReceiver</a></div><div class="ttdeci">void endReceiver(void)</div><div class="ttdoc">End receiver. </div><div class="ttdef"><b>Definition:</b> socket.h:1273</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Oct 17 2013 23:24:57 for GNU CommonC++ 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>