<!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 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 List</span></a></li> <li><a href="globals.html"><span>File 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> <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> <span class="comment">// Copyright (C) 2009 Leandro Melo de Sales <leandroal@gmail.com></span></div> <div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <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> <span class="comment">//</span></div> <div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <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> <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> <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> <span class="comment">// (at your option) any later version.</span></div> <div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">//</span></div> <div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <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> <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> <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> <span class="comment">// GNU General Public License for more details.</span></div> <div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">//</span></div> <div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <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> <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> <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> <span class="comment">//</span></div> <div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <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> <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> <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> <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> <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> <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> <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> <span class="comment">// the GNU General Public License.</span></div> <div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment">//</span></div> <div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <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> <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> <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> <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> <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> <span class="comment">// this exception notice from them.</span></div> <div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment">//</span></div> <div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <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> <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> <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> <span class="comment">//</span></div> <div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div> <div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#ifndef CCXX_SOCKET_H_</span></div> <div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <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> <span class="preprocessor"></span></div> <div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#ifndef CCXX_ADDRESS_H_</span></div> <div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"></span><span class="preprocessor">#include <<a class="code" href="address_8h.html">cc++/address.h</a>></span></div> <div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#if defined(WIN32) && !defined(__CYGWIN32__)</span></div> <div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor"></span><span class="preprocessor">#include <io.h></span></div> <div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor">#define _IOLEN64 (unsigned)</span></div> <div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor"></span><span class="preprocessor">#define _IORET64 (int)</span></div> <div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <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> <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> <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> <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> <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> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <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> <span class="preprocessor"></span><span class="preprocessor">#define _IOLEN64</span></div> <div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> <div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <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> <span class="preprocessor"></span><span class="preprocessor">#define _IORET64</span></div> <div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> <div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <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> <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> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> <div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <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> <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> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> <div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <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> <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> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> <div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <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> <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> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> <div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <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> <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> <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> <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> <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> <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> <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> <span class="preprocessor"></span></div> <div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor">#ifdef CCXX_NAMESPACES</span></div> <div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor"></span><span class="keyword">namespace </span>ost {</div> <div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <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> </div> <div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html"> 119</a></span> <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> {</div> <div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <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>  <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> <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> <span class="preprocessor"></span> IPV6 = AF_INET6,</div> <div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <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> <span class="preprocessor"></span> IPV4 = AF_INET</div> <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  };</div> <div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div> <div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#aaa032e41b920b38a79c875b8ae375799"> 129</a></span>  <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> </div> <div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ae056b6dd4f167163083b7ab602fd3f3f"> 131</a></span>  <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>  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>  <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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>  errInvalidValue</div> <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  };</div> <div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div> <div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a3306a277326459f69aa69b474f50d6e2"> 163</a></span>  <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> </div> <div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a258f81f5a42d051242f0f49f8192f890"> 165</a></span>  <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>  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>  <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>  <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>  <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>  tosInvalid</div> <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  };</div> <div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a7caa0e1bb24b387bd1c5b8240ea592e1"> 172</a></span>  <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> </div> <div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a2cb9ccad21fc2f10c23e45cbb99bc6f8"> 174</a></span>  <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>  <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>  <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>  pendingError</div> <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  };</div> <div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ac2fe3b8bf4dfc66c7df11dfa1ce4415c"> 179</a></span>  <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> </div> <div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <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>  <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>  <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>  <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>  <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>  <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>  <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>  STREAM</div> <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  };</div> <div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ac8890572886dca1a03a775997f04abba"> 190</a></span>  <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> </div> <div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="keyword">private</span>:</div> <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="comment">// used by exception handlers....</span></div> <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <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>  <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>  <span class="keyword">mutable</span> <span class="keywordtype">long</span> syserr;</div> <div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div> <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordtype">void</span> setSocket(<span class="keywordtype">void</span>);</div> <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <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> </div> <div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <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>  <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> </div> <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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>  <span class="keywordtype">unsigned</span> ttl: 8;</div> <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  } flags;</div> <div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div> <div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#af1291caf47c2e2e72a3214e4da206b07"> 221</a></span>  <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>  <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> </div> <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <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> </div> <div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a4f06b1af9c42afcc36739aa6b80982ef"> 240</a></span>  <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> <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> </div> <div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a6f54a68eab25ab41bbe13ba87a48b435"> 249</a></span>  <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>  {flags.thrown = !enable;};</div> <div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div> <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keywordtype">void</span> endSocket(<span class="keywordtype">void</span>);</div> <div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div> <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  Error connectError(<span class="keywordtype">void</span>);</div> <div class="line"><a name="l00265"></a><span class="lineno"> 265</span> </div> <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  Error sendLimit(<span class="keywordtype">int</span> limit = 2048);</div> <div class="line"><a name="l00270"></a><span class="lineno"> 270</span> </div> <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  Error receiveLimit(<span class="keywordtype">int</span> limit = 1);</div> <div class="line"><a name="l00275"></a><span class="lineno"> 275</span> </div> <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  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> </div> <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  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> </div> <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  Error sendBuffer(<span class="keywordtype">unsigned</span> size);</div> <div class="line"><a name="l00300"></a><span class="lineno"> 300</span> </div> <div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  Error receiveBuffer(<span class="keywordtype">unsigned</span> size);</div> <div class="line"><a name="l00309"></a><span class="lineno"> 309</span> </div> <div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  Error bufferSize(<span class="keywordtype">unsigned</span> size);</div> <div class="line"><a name="l00318"></a><span class="lineno"> 318</span> </div> <div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  Error setBroadcast(<span class="keywordtype">bool</span> enable);</div> <div class="line"><a name="l00328"></a><span class="lineno"> 328</span> </div> <div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  Error setMulticastByFamily(<span class="keywordtype">bool</span> enable, Family family = IPV4);</div> <div class="line"><a name="l00341"></a><span class="lineno"> 341</span> </div> <div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  Error setLoopbackByFamily(<span class="keywordtype">bool</span> enable, Family family = IPV4);</div> <div class="line"><a name="l00351"></a><span class="lineno"> 351</span> </div> <div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  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> </div> <div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  Error join(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_multicast.html">IPV4Multicast</a> &ia);</div> <div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="preprocessor">#ifdef CCXX_IPV6</span></div> <div class="line"><a name="l00369"></a><span class="lineno"> 369</span> <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> &ia);</div> <div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  Error drop(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_multicast.html">IPV4Multicast</a> &ia);</div> <div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="preprocessor">#ifdef CCXX_IPV6</span></div> <div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <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> &ia);</div> <div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00382"></a><span class="lineno"> 382</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  Error setRouting(<span class="keywordtype">bool</span> enable);</div> <div class="line"><a name="l00391"></a><span class="lineno"> 391</span> </div> <div class="line"><a name="l00392"></a><span class="lineno"> 392</span> </div> <div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  Error setNoDelay(<span class="keywordtype">bool</span> enable);</div> <div class="line"><a name="l00400"></a><span class="lineno"> 400</span> </div> <div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <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> </div> <div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <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> </div> <div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <a class="code" href="classost_1_1_socket.html">Socket</a>();</div> <div class="line"><a name="l00427"></a><span class="lineno"> 427</span> </div> <div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <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> &source);</div> <div class="line"><a name="l00436"></a><span class="lineno"> 436</span> </div> <div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  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> </div> <div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <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> </div> <div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <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> </div> <div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <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> </div> <div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <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> </div> <div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <a class="code" href="classost_1_1_socket.html">Socket</a> &operator=(<span class="keyword">const</span> <a class="code" href="classost_1_1_socket.html">Socket</a> &from);</div> <div class="line"><a name="l00493"></a><span class="lineno"> 493</span> </div> <div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <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> </div> <div class="line"><a name="l00505"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a99197c017c07c6b24d622b107fa46833"> 505</a></span>  <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> <span class="keyword"> </span>{<span class="keywordflow">return</span> getIPV4Sender(port);}</div> <div class="line"><a name="l00507"></a><span class="lineno"> 507</span> </div> <div class="line"><a name="l00508"></a><span class="lineno"> 508</span> <span class="preprocessor">#ifdef CCXX_IPV6</span></div> <div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <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> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00511"></a><span class="lineno"> 511</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <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> </div> <div class="line"><a name="l00523"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a6fd1dffdfe9606e56fba838559ff6d67"> 523</a></span>  <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> <span class="keyword"> </span>{<span class="keywordflow">return</span> getIPV4Peer(port);}</div> <div class="line"><a name="l00525"></a><span class="lineno"> 525</span> </div> <div class="line"><a name="l00526"></a><span class="lineno"> 526</span> <span class="preprocessor">#ifdef CCXX_IPV6</span></div> <div class="line"><a name="l00527"></a><span class="lineno"> 527</span> <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> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00529"></a><span class="lineno"> 529</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <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> </div> <div class="line"><a name="l00539"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#aca71d871bfda4dfcab0891cb0c8df1d4"> 539</a></span>  <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> <span class="keyword"> </span>{<span class="keywordflow">return</span> getIPV4Local(port);}</div> <div class="line"><a name="l00541"></a><span class="lineno"> 541</span> </div> <div class="line"><a name="l00542"></a><span class="lineno"> 542</span> <span class="preprocessor">#ifdef CCXX_IPV6</span></div> <div class="line"><a name="l00543"></a><span class="lineno"> 543</span> <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> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00545"></a><span class="lineno"> 545</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <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> </div> <div class="line"><a name="l00575"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ac3dded47080c852dcebc9998643e8dc6"> 575</a></span>  <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> <span class="keyword"> </span>{<span class="keywordflow">return</span> getIPV4NAT(port);}</div> <div class="line"><a name="l00577"></a><span class="lineno"> 577</span> </div> <div class="line"><a name="l00578"></a><span class="lineno"> 578</span> <span class="preprocessor">#ifdef CCXX_IPV6</span></div> <div class="line"><a name="l00579"></a><span class="lineno"> 579</span> <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> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00581"></a><span class="lineno"> 581</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  <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> </div> <div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  Error setLinger(<span class="keywordtype">bool</span> linger);</div> <div class="line"><a name="l00600"></a><span class="lineno"> 600</span> </div> <div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  Error setKeepAlive(<span class="keywordtype">bool</span> enable);</div> <div class="line"><a name="l00609"></a><span class="lineno"> 609</span> </div> <div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  Error setTypeOfService(Tos service);</div> <div class="line"><a name="l00619"></a><span class="lineno"> 619</span> </div> <div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  <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> </div> <div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  <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> </div> <div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  <span class="keywordtype">bool</span> operator!() <span class="keyword">const</span>;</div> <div class="line"><a name="l00644"></a><span class="lineno"> 644</span> </div> <div class="line"><a name="l00651"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a8120ca95daa7c488255c308998427ccb"> 651</a></span>  <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> <span class="keyword"> </span>{<span class="keywordflow">return</span> flags.broadcast;};</div> <div class="line"><a name="l00653"></a><span class="lineno"> 653</span> </div> <div class="line"><a name="l00659"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a0a1e09a4411bf60bb5e2b6235d4e6a46"> 659</a></span>  <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> <span class="keyword"> </span>{<span class="keywordflow">return</span> flags.route;};</div> <div class="line"><a name="l00661"></a><span class="lineno"> 661</span> </div> <div class="line"><a name="l00668"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#abfdaefd24888f2d51089bdb31894286e"> 668</a></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_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> </div> <div class="line"><a name="l00676"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#ad1c8bb17f75cfe540853a871081bd9d0"> 676</a></span>  <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> </div> <div class="line"><a name="l00678"></a><span class="lineno"><a class="line" href="classost_1_1_socket.html#a7720aace2bf055d21a6fc33007c88197"> 678</a></span>  <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> </div> <div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  <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> </div> <div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  <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> };</div> <div class="line"><a name="l00693"></a><span class="lineno"> 693</span> </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> <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> {</div> <div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  <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>  <span class="keyword">struct </span>sockaddr_in ipv4;</div> <div class="line"><a name="l00724"></a><span class="lineno"> 724</span> <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> <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> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00727"></a><span class="lineno"> 727</span> <span class="preprocessor"></span> } peer;</div> <div class="line"><a name="l00728"></a><span class="lineno"> 728</span> </div> <div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  Family family;</div> <div class="line"><a name="l00730"></a><span class="lineno"> 730</span> </div> <div class="line"><a name="l00731"></a><span class="lineno"> 731</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l00743"></a><span class="lineno"> 743</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_v4_host.html">IPV4Host</a> &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> <span class="preprocessor">#ifdef CCXX_IPV6</span></div> <div class="line"><a name="l00745"></a><span class="lineno"> 745</span> <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> &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> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00747"></a><span class="lineno"> 747</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  <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> </div> <div class="line"><a name="l00750"></a><span class="lineno"> 750</span> <span class="preprocessor">#ifdef CCXX_IPV6</span></div> <div class="line"><a name="l00751"></a><span class="lineno"> 751</span> <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> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00753"></a><span class="lineno"> 753</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00765"></a><span class="lineno"> 765</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_v4_address.html">IPV4Address</a> &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> <span class="preprocessor">#ifdef CCXX_IPV6</span></div> <div class="line"><a name="l00767"></a><span class="lineno"> 767</span> <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> &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> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00769"></a><span class="lineno"> 769</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  <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> </div> <div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  <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> </div> <div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  <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>& 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> </div> <div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  <span class="keywordtype">void</span> reject(<span class="keywordtype">void</span>);</div> <div class="line"><a name="l00795"></a><span class="lineno"> 795</span> </div> <div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  <span class="keywordtype">void</span> disconnect(<span class="keywordtype">void</span>);</div> <div class="line"><a name="l00800"></a><span class="lineno"> 800</span> </div> <div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  <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> </div> <div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  <span class="keywordtype">int</span> getTxCCID();</div> <div class="line"><a name="l00810"></a><span class="lineno"> 810</span> </div> <div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  <span class="keywordtype">int</span> getRxCCID();</div> <div class="line"><a name="l00815"></a><span class="lineno"> 815</span> </div> <div class="line"><a name="l00819"></a><span class="lineno"> 819</span>  <span class="keywordtype">size_t</span> available();</div> <div class="line"><a name="l00820"></a><span class="lineno"> 820</span> </div> <div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  <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> &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> <span class="preprocessor">#ifdef CCXX_IPV6</span></div> <div class="line"><a name="l00830"></a><span class="lineno"> 830</span> <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> &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> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00832"></a><span class="lineno"> 832</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  <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> </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>  <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>  {<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> </div> <div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  <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> };</div> <div class="line"><a name="l00851"></a><span class="lineno"> 851</span> </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> <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> {</div> <div class="line"><a name="l00886"></a><span class="lineno"> 886</span> <span class="keyword">private</span>:</div> <div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  <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>  {<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> </div> <div class="line"><a name="l00890"></a><span class="lineno"> 890</span> <span class="keyword">protected</span>:</div> <div class="line"><a name="l00891"></a><span class="lineno"> 891</span> <span class="preprocessor">#ifdef CCXX_IPV6</span></div> <div class="line"><a name="l00892"></a><span class="lineno"> 892</span> <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>  <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>  <span class="keyword">struct </span>sockaddr_in ipv4;</div> <div class="line"><a name="l00895"></a><span class="lineno"> 895</span>  } peer;</div> <div class="line"><a name="l00896"></a><span class="lineno"> 896</span> <span class="preprocessor">#else</span></div> <div class="line"><a name="l00897"></a><span class="lineno"> 897</span> <span class="preprocessor"></span> <span class="keyword">union </span>{</div> <div class="line"><a name="l00898"></a><span class="lineno"> 898</span>  <span class="keyword">struct </span>sockaddr_in ipv4;</div> <div class="line"><a name="l00899"></a><span class="lineno"> 899</span>  } peer;</div> <div class="line"><a name="l00900"></a><span class="lineno"> 900</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00901"></a><span class="lineno"> 901</span> <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>  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> </div> <div class="line"><a name="l00904"></a><span class="lineno"> 904</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l00908"></a><span class="lineno"> 908</span>  <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> </div> <div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  <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> </div> <div class="line"><a name="l00924"></a><span class="lineno"> 924</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_v4_address.html">IPV4Address</a> &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> <span class="preprocessor">#ifdef CCXX_IPV6</span></div> <div class="line"><a name="l00926"></a><span class="lineno"> 926</span> <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> &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> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00928"></a><span class="lineno"> 928</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00932"></a><span class="lineno"> 932</span>  <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> </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>  <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>  {<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> </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>  <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>  {<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> </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>  <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>  {<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> </div> <div class="line"><a name="l00959"></a><span class="lineno"> 959</span>  <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> &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>  <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> &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> <span class="preprocessor">#ifdef CCXX_IPV6</span></div> <div class="line"><a name="l00962"></a><span class="lineno"> 962</span> <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> &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>  <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> &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> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00965"></a><span class="lineno"> 965</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00973"></a><span class="lineno"> 973</span>  <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>& InterfaceIndex);</div> <div class="line"><a name="l00974"></a><span class="lineno"> 974</span> </div> <div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  <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> &ia,<span class="keywordtype">int</span> InterfaceIndex);</div> <div class="line"><a name="l00984"></a><span class="lineno"> 984</span> </div> <div class="line"><a name="l00985"></a><span class="lineno"> 985</span> </div> <div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  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> </div> <div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  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> </div> <div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>  <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>  <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> <span class="keyword"> </span>{<span class="keywordflow">return</span> getIPV4Peer(port);}</div> <div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> </div> <div class="line"><a name="l01017"></a><span class="lineno"> 1017</span> <span class="preprocessor">#ifdef CCXX_IPV6</span></div> <div class="line"><a name="l01018"></a><span class="lineno"> 1018</span> <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> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l01020"></a><span class="lineno"> 1020</span> <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>  <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>  {<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> </div> <div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>  <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>  <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> </div> <div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>  Error disconnect(<span class="keywordtype">void</span>);</div> <div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> };</div> <div class="line"><a name="l01043"></a><span class="lineno"> 1043</span> </div> <div class="line"><a name="l01044"></a><span class="lineno"> 1044</span> </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> <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> {</div> <div class="line"><a name="l01055"></a><span class="lineno"> 1055</span> <span class="keyword">private</span>:</div> <div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>  <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> &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> </div> <div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>  <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>  {<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> </div> <div class="line"><a name="l01061"></a><span class="lineno"> 1061</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>  <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> &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> </div> <div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>  <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> &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> };</div> <div class="line"><a name="l01078"></a><span class="lineno"> 1078</span> </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> <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> {</div> <div class="line"><a name="l01089"></a><span class="lineno"> 1089</span> <span class="keyword">private</span>:</div> <div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>  <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> &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> </div> <div class="line"><a name="l01099"></a><span class="lineno"> 1099</span> <span class="keyword">protected</span>:</div> <div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>  <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> </div> <div class="line"><a name="l01116"></a><span class="lineno"> 1116</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_v4_address.html">IPV4Address</a> &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> <span class="preprocessor">#ifdef CCXX_IPV6</span></div> <div class="line"><a name="l01118"></a><span class="lineno"> 1118</span> <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> &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> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l01120"></a><span class="lineno"> 1120</span> <span class="preprocessor"></span></div> <div class="line"><a name="l01130"></a><span class="lineno"> 1130</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_v4_host.html">IPV4Host</a> &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> <span class="preprocessor">#ifdef CCXX_IPV6</span></div> <div class="line"><a name="l01132"></a><span class="lineno"> 1132</span> <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> &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> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l01134"></a><span class="lineno"> 1134</span> <span class="preprocessor"></span></div> <div class="line"><a name="l01144"></a><span class="lineno"> 1144</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_v4_broadcast.html">IPV4Broadcast</a> &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> </div> <div class="line"><a name="l01153"></a><span class="lineno"> 1153</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_v4_multicast.html">IPV4Multicast</a> &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> <span class="preprocessor">#ifdef CCXX_IPV6</span></div> <div class="line"><a name="l01155"></a><span class="lineno"> 1155</span> <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> &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> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l01157"></a><span class="lineno"> 1157</span> <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>  <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>  {<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> </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>  <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>  {<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> </div> <div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>  <span class="comment">/*</span></div> <div class="line"><a name="l01175"></a><span class="lineno"> 1175</span> <span class="comment"> * Get transmitter socket.</span></div> <div class="line"><a name="l01176"></a><span class="lineno"> 1176</span> <span class="comment"> *</span></div> <div class="line"><a name="l01177"></a><span class="lineno"> 1177</span> <span class="comment"> * @return transmitter.</span></div> <div class="line"><a name="l01178"></a><span class="lineno"> 1178</span> <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>  <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>  {<span class="keywordflow">return</span> so;};</div> <div class="line"><a name="l01181"></a><span class="lineno"> 1181</span> </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>  <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>  {<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> </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>  <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>  {<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> </div> <div class="line"><a name="l01188"></a><span class="lineno"> 1188</span> <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>  <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>  {<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> </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>  <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>  {<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> </div> <div class="line"><a name="l01210"></a><span class="lineno"> 1210</span> </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>  <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>  {<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> </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>  <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>  {<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> </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>  <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>  {<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> };</div> <div class="line"><a name="l01220"></a><span class="lineno"> 1220</span> </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> <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> {</div> <div class="line"><a name="l01231"></a><span class="lineno"> 1231</span> <span class="keyword">protected</span>:</div> <div class="line"><a name="l01242"></a><span class="lineno"> 1242</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_v4_address.html">IPV4Address</a> &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> <span class="preprocessor">#ifdef CCXX_IPV6</span></div> <div class="line"><a name="l01244"></a><span class="lineno"> 1244</span> <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> &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> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l01246"></a><span class="lineno"> 1246</span> <span class="preprocessor"></span></div> <div class="line"><a name="l01256"></a><span class="lineno"> 1256</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_v4_host.html">IPV4Host</a> &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> <span class="preprocessor">#ifdef CCXX_IPV6</span></div> <div class="line"><a name="l01258"></a><span class="lineno"> 1258</span> <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> &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> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l01260"></a><span class="lineno"> 1260</span> <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>  <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>  {<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> </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>  <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>  {<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> </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>  <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> <span class="keyword"> </span>{<span class="keywordflow">return</span> so;};</div> <div class="line"><a name="l01278"></a><span class="lineno"> 1278</span> </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>  <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>  {<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> </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>  <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>  {<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> </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>  <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> &ia)</div> <div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>  {<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> </div> <div class="line"><a name="l01288"></a><span class="lineno"> 1288</span> <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> <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> &ia)</div> <div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>  {<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> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l01292"></a><span class="lineno"> 1292</span> <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>  <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> &ia)</div> <div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>  {<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> </div> <div class="line"><a name="l01296"></a><span class="lineno"> 1296</span> <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> <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> &ia)</div> <div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>  {<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> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l01300"></a><span class="lineno"> 1300</span> <span class="preprocessor"></span></div> <div class="line"><a name="l01301"></a><span class="lineno"> 1301</span> <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>  <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>  {<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> </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>  <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>  {<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> };</div> <div class="line"><a name="l01321"></a><span class="lineno"> 1321</span> </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> <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> {</div> <div class="line"><a name="l01334"></a><span class="lineno"> 1334</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l01342"></a><span class="lineno"> 1342</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_v4_address.html">IPV4Address</a> &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> <span class="preprocessor">#ifdef CCXX_IPV6</span></div> <div class="line"><a name="l01344"></a><span class="lineno"> 1344</span> <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> &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> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l01346"></a><span class="lineno"> 1346</span> <span class="preprocessor"></span></div> <div class="line"><a name="l01356"></a><span class="lineno"> 1356</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_v4_host.html">IPV4Host</a> &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> <span class="preprocessor">#ifdef CCXX_IPV6</span></div> <div class="line"><a name="l01358"></a><span class="lineno"> 1358</span> <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> &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> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l01360"></a><span class="lineno"> 1360</span> <span class="preprocessor"></span></div> <div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>  <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> };</div> <div class="line"><a name="l01369"></a><span class="lineno"> 1369</span> </div> <div class="line"><a name="l01370"></a><span class="lineno"> 1370</span> </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> <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> {</div> <div class="line"><a name="l01397"></a><span class="lineno"> 1397</span> <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>  <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>  <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> </div> <div class="line"><a name="l01401"></a><span class="lineno"> 1401</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l01413"></a><span class="lineno"> 1413</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_v4_host.html">IPV4Host</a> &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> </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>  <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>  {<span class="keywordflow">return</span> so;};</div> <div class="line"><a name="l01420"></a><span class="lineno"> 1420</span> </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>  <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>  {<span class="keywordflow">return</span> segsize;};</div> <div class="line"><a name="l01426"></a><span class="lineno"> 1426</span> </div> <div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>  <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> &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> </div> <div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>  <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> </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>  <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> <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> </div> <div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>  <span class="keywordtype">void</span> reject(<span class="keywordtype">void</span>);</div> <div class="line"><a name="l01468"></a><span class="lineno"> 1468</span> </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>  <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> <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> </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>  <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>  {<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> </div> <div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>  <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> };</div> <div class="line"><a name="l01488"></a><span class="lineno"> 1488</span> </div> <div class="line"><a name="l01489"></a><span class="lineno"> 1489</span> <span class="preprocessor">#ifdef CCXX_IPV6</span></div> <div class="line"><a name="l01490"></a><span class="lineno"> 1490</span> <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> <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> {</div> <div class="line"><a name="l01516"></a><span class="lineno"> 1516</span> <span class="keyword">private</span>:</div> <div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>  <span class="keywordtype">int</span> segsize;</div> <div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>  <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> </div> <div class="line"><a name="l01520"></a><span class="lineno"> 1520</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l01532"></a><span class="lineno"> 1532</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> &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> </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>  <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>  {<span class="keywordflow">return</span> so;};</div> <div class="line"><a name="l01539"></a><span class="lineno"> 1539</span> </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>  <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>  {<span class="keywordflow">return</span> segsize;};</div> <div class="line"><a name="l01542"></a><span class="lineno"> 1542</span> </div> <div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>  <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> &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> </div> <div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>  <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> </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>  <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> <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> </div> <div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>  <span class="keywordtype">void</span> reject(<span class="keywordtype">void</span>);</div> <div class="line"><a name="l01584"></a><span class="lineno"> 1584</span> </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>  <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> <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> </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>  <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>  {<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> </div> <div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>  <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> };</div> <div class="line"><a name="l01604"></a><span class="lineno"> 1604</span> </div> <div class="line"><a name="l01605"></a><span class="lineno"> 1605</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l01606"></a><span class="lineno"> 1606</span> <span class="preprocessor"></span></div> <div class="line"><a name="l01607"></a><span class="lineno"> 1607</span> <span class="comment">/*</span></div> <div class="line"><a name="l01608"></a><span class="lineno"> 1608</span> <span class="comment">:\projects\libraries\cplusplus\commonc++\win32\socket.h(357) : warning C4275: non dll-interface class 'streambuf' used as base for dll-interface class 'TCPStream'</span></div> <div class="line"><a name="l01609"></a><span class="lineno"> 1609</span> <span class="comment"> c:\program files\microsoft visual studio\vc98\include\streamb.h(69) : see declaration of 'streambuf'</span></div> <div class="line"><a name="l01610"></a><span class="lineno"> 1610</span> <span class="comment">c:\projects\libraries\cplusplus\commonc++\win32\socket.h(358) : warning C4275: non dll-interface class 'iostream' used as base for dll-interface class 'TCPStream'</span></div> <div class="line"><a name="l01611"></a><span class="lineno"> 1611</span> <span class="comment"> c:\program files\microsoft visual studio\vc98\include\iostream.h(66) : see declaration of 'iostream'</span></div> <div class="line"><a name="l01612"></a><span class="lineno"> 1612</span> <span class="comment">*/</span></div> <div class="line"><a name="l01613"></a><span class="lineno"> 1613</span> </div> <div class="line"><a name="l01614"></a><span class="lineno"> 1614</span> <span class="preprocessor">#ifdef _MSC_VER</span></div> <div class="line"><a name="l01615"></a><span class="lineno"> 1615</span> <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> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> <div class="line"><a name="l01617"></a><span class="lineno"> 1617</span> <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> <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> {</div> <div class="line"><a name="l01633"></a><span class="lineno"> 1633</span> <span class="keyword">private</span>:</div> <div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>  <span class="keywordtype">int</span> doallocate();</div> <div class="line"><a name="l01635"></a><span class="lineno"> 1635</span> </div> <div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>  <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> </div> <div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>  <span class="keyword">friend</span> <a class="code" href="classost_1_1_t_c_p_stream.html">TCPStream</a>& crlf(<a class="code" href="classost_1_1_t_c_p_stream.html">TCPStream</a>&);</div> <div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>  <span class="keyword">friend</span> <a class="code" href="classost_1_1_t_c_p_stream.html">TCPStream</a>& lfcr(<a class="code" href="classost_1_1_t_c_p_stream.html">TCPStream</a>&);</div> <div class="line"><a name="l01640"></a><span class="lineno"> 1640</span> </div> <div class="line"><a name="l01641"></a><span class="lineno"> 1641</span> <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>  <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>  <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>  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>  <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> </div> <div class="line"><a name="l01647"></a><span class="lineno"> 1647</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>  <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> </div> <div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>  <span class="keywordtype">void</span> disconnect(<span class="keywordtype">void</span>);</div> <div class="line"><a name="l01658"></a><span class="lineno"> 1658</span> </div> <div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>  <span class="keywordtype">int</span> getSegmentSize(<span class="keywordtype">void</span>);</div> <div class="line"><a name="l01663"></a><span class="lineno"> 1663</span> </div> <div class="line"><a name="l01664"></a><span class="lineno"> 1664</span> <span class="keyword">protected</span>:</div> <div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>  <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> </div> <div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>  <span class="keywordtype">void</span> endStream(<span class="keywordtype">void</span>);</div> <div class="line"><a name="l01678"></a><span class="lineno"> 1678</span> </div> <div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>  <span class="keywordtype">int</span> underflow();</div> <div class="line"><a name="l01686"></a><span class="lineno"> 1686</span> </div> <div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>  <span class="keywordtype">int</span> uflow();</div> <div class="line"><a name="l01696"></a><span class="lineno"> 1696</span> </div> <div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>  <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> </div> <div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>  <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> &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> <span class="preprocessor">#ifdef CCXX_IPV6</span></div> <div class="line"><a name="l01716"></a><span class="lineno"> 1716</span> <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> &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> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l01718"></a><span class="lineno"> 1718</span> <span class="preprocessor"></span></div> <div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>  <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> </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>  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>  {<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> </div> <div class="line"><a name="l01738"></a><span class="lineno"> 1738</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l01748"></a><span class="lineno"> 1748</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_socket.html">TCPSocket</a> &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> <span class="preprocessor">#ifdef CCXX_IPV6</span></div> <div class="line"><a name="l01750"></a><span class="lineno"> 1750</span> <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> &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> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l01752"></a><span class="lineno"> 1752</span> <span class="preprocessor"></span></div> <div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>  <span class="keywordtype">void</span> connect(<a class="code" href="classost_1_1_t_c_p_socket.html">TCPSocket</a> &server);</div> <div class="line"><a name="l01759"></a><span class="lineno"> 1759</span> <span class="preprocessor">#ifdef CCXX_IPV6</span></div> <div class="line"><a name="l01760"></a><span class="lineno"> 1760</span> <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> &server);</div> <div class="line"><a name="l01761"></a><span class="lineno"> 1761</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l01762"></a><span class="lineno"> 1762</span> <span class="preprocessor"></span></div> <div class="line"><a name="l01773"></a><span class="lineno"> 1773</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_v4_host.html">IPV4Host</a> &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> <span class="preprocessor">#ifdef CCXX_IPV6</span></div> <div class="line"><a name="l01775"></a><span class="lineno"> 1775</span> <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> &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> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l01777"></a><span class="lineno"> 1777</span> <span class="preprocessor"></span></div> <div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>  <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> </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>  <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>  {timeout = timer;};</div> <div class="line"><a name="l01796"></a><span class="lineno"> 1796</span> </div> <div class="line"><a name="l01803"></a><span class="lineno"> 1803</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_t_c_p_stream.html">TCPStream</a> &source);</div> <div class="line"><a name="l01804"></a><span class="lineno"> 1804</span> </div> <div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>  <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> </div> <div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>  <span class="keywordtype">int</span> sync(<span class="keywordtype">void</span>);</div> <div class="line"><a name="l01818"></a><span class="lineno"> 1818</span> </div> <div class="line"><a name="l01819"></a><span class="lineno"> 1819</span> <span class="preprocessor">#ifdef HAVE_SNPRINTF</span></div> <div class="line"><a name="l01820"></a><span class="lineno"> 1820</span> <span class="preprocessor"></span></div> <div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>  <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> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l01828"></a><span class="lineno"> 1828</span> <span class="preprocessor"></span></div> <div class="line"><a name="l01836"></a><span class="lineno"> 1836</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="l01837"></a><span class="lineno"> 1837</span> </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>  <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>  {<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> </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>  <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> <span class="keyword"> </span>{<span class="keywordflow">return</span> bufsize;};</div> <div class="line"><a name="l01855"></a><span class="lineno"> 1855</span> };</div> <div class="line"><a name="l01856"></a><span class="lineno"> 1856</span> </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> <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> {</div> <div class="line"><a name="l01869"></a><span class="lineno"> 1869</span> <span class="keyword">private</span>:</div> <div class="line"><a name="l01870"></a><span class="lineno"> 1870</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_t_c_p_session.html">TCPSession</a> &rhs); <span class="comment">// not defined</span></div> <div class="line"><a name="l01871"></a><span class="lineno"> 1871</span> <span class="keyword">protected</span>:</div> <div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>  <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> </div> <div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>  <span class="keywordtype">void</span> initial(<span class="keywordtype">void</span>);</div> <div class="line"><a name="l01893"></a><span class="lineno"> 1893</span> </div> <div class="line"><a name="l01894"></a><span class="lineno"> 1894</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l01905"></a><span class="lineno"> 1905</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_v4_host.html">IPV4Host</a> &host,</div> <div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>  <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> <span class="preprocessor">#ifdef CCXX_IPV6</span></div> <div class="line"><a name="l01908"></a><span class="lineno"> 1908</span> <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> &host,</div> <div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>  <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> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l01911"></a><span class="lineno"> 1911</span> <span class="preprocessor"></span></div> <div class="line"><a name="l01921"></a><span class="lineno"> 1921</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_socket.html">TCPSocket</a> &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> <span class="preprocessor">#ifdef CCXX_IPV6</span></div> <div class="line"><a name="l01923"></a><span class="lineno"> 1923</span> <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> &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> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l01925"></a><span class="lineno"> 1925</span> <span class="preprocessor"></span></div> <div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>  <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> };</div> <div class="line"><a name="l01931"></a><span class="lineno"> 1931</span> </div> <div class="line"><a name="l01932"></a><span class="lineno"> 1932</span> <span class="preprocessor">#if defined(WIN32)</span></div> <div class="line"><a name="l01933"></a><span class="lineno"> 1933</span> <span class="preprocessor"></span></div> <div class="line"><a name="l01943"></a><span class="lineno"> 1943</span> <span class="keyword">class </span>init_WSA</div> <div class="line"><a name="l01944"></a><span class="lineno"> 1944</span> {</div> <div class="line"><a name="l01945"></a><span class="lineno"> 1945</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>  init_WSA();</div> <div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>  ~init_WSA();</div> <div class="line"><a name="l01948"></a><span class="lineno"> 1948</span> };</div> <div class="line"><a name="l01949"></a><span class="lineno"> 1949</span> </div> <div class="line"><a name="l01950"></a><span class="lineno"> 1950</span> <span class="preprocessor">#endif // WIN32</span></div> <div class="line"><a name="l01951"></a><span class="lineno"> 1951</span> <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> <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> </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> <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> {</div> <div class="line"><a name="l01967"></a><span class="lineno"> 1967</span> <span class="keyword">private</span>:</div> <div class="line"><a name="l01968"></a><span class="lineno"> 1968</span> </div> <div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>  <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> </div> <div class="line"><a name="l01971"></a><span class="lineno"> 1971</span> <span class="keyword">protected</span>:</div> <div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>  <a class="code" href="namespaceost.html#a33ac1051cb7ef5d55c254ff51054d2e7">SimpleTCPStream</a>();</div> <div class="line"><a name="l01977"></a><span class="lineno"> 1977</span> </div> <div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>  <span class="keywordtype">void</span> endStream(<span class="keywordtype">void</span>);</div> <div class="line"><a name="l01983"></a><span class="lineno"> 1983</span> </div> <div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>  <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> &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> </div> <div class="line"><a name="l01994"></a><span class="lineno"> 1994</span> </div> <div class="line"><a name="l01995"></a><span class="lineno"> 1995</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>  <a class="code" href="namespaceost.html#a33ac1051cb7ef5d55c254ff51054d2e7">SimpleTCPStream</a>(<a class="code" href="classost_1_1_t_c_p_socket.html">TCPSocket</a> &server, <span class="keywordtype">size_t</span> size = 512);</div> <div class="line"><a name="l02005"></a><span class="lineno"> 2005</span> </div> <div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>  <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> &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> </div> <div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>  <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> &source);</div> <div class="line"><a name="l02022"></a><span class="lineno"> 2022</span> </div> <div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>  <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> </div> <div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>  <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> </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>  <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> </div> <div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>  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> </div> <div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>  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> </div> <div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>  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> </div> <div class="line"><a name="l02085"></a><span class="lineno"> 2085</span> };</div> <div class="line"><a name="l02086"></a><span class="lineno"> 2086</span> </div> <div class="line"><a name="l02087"></a><span class="lineno"> 2087</span> <span class="preprocessor">#ifdef COMMON_STD_EXCEPTION</span></div> <div class="line"><a name="l02088"></a><span class="lineno"> 2088</span> <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> {</div> <div class="line"><a name="l02090"></a><span class="lineno"> 2090</span> <span class="keyword">private</span>:</div> <div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>  <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> </div> <div class="line"><a name="l02093"></a><span class="lineno"> 2093</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>  SockException(<span class="keyword">const</span> String &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>  IOException(str, systemError), _socketError(socketError) {};</div> <div class="line"><a name="l02096"></a><span class="lineno"> 2096</span> </div> <div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>  <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> <span class="keyword"> </span>{ <span class="keywordflow">return</span> _socketError; }</div> <div class="line"><a name="l02099"></a><span class="lineno"> 2099</span> };</div> <div class="line"><a name="l02100"></a><span class="lineno"> 2100</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l02101"></a><span class="lineno"> 2101</span> <span class="preprocessor"></span></div> <div class="line"><a name="l02102"></a><span class="lineno"> 2102</span> <span class="preprocessor">#ifdef CCXX_NAMESPACES</span></div> <div class="line"><a name="l02103"></a><span class="lineno"> 2103</span> <span class="preprocessor"></span>}</div> <div class="line"><a name="l02104"></a><span class="lineno"> 2104</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l02105"></a><span class="lineno"> 2105</span> <span class="preprocessor"></span></div> <div class="line"><a name="l02106"></a><span class="lineno"> 2106</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l02107"></a><span class="lineno"> 2107</span> <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&#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 &quot;catch&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 &quot;send&quot; to use &quot;connected&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 &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 &quot;throwing&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 &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 &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 &quot;send&quot; to use &quot;connected&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 &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 &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 &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 &quot;catch&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 & error(AppLog &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  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.5 </small></address> </body> </html>