<!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++: address.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">address.h</div> </div> </div><!--header--> <div class="contents"> <a href="address_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) 2006-2010 David Sugar, Tycho Softworks.</span></div> <div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">//</span></div> <div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// This program is free software; you can redistribute it and/or modify</span></div> <div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// it under the terms of the GNU General Public License as published by</span></div> <div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// the Free Software Foundation; either version 2 of the License, or</span></div> <div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// (at your option) any later version.</span></div> <div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div> <div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// This program is distributed in the hope that it will be useful,</span></div> <div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div> <div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div> <div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// GNU General Public License for more details.</span></div> <div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">//</span></div> <div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// You should have received a copy of the GNU General Public License</span></div> <div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// along with this program; if not, write to the Free Software</span></div> <div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.</span></div> <div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">//</span></div> <div class="line"><a name="l00018"></a><span class="lineno"> 18</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="l00019"></a><span class="lineno"> 19</span> <span class="comment">// library without restriction. Specifically, if other files instantiate</span></div> <div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">// templates or use macros or inline functions from this file, or you compile</span></div> <div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">// this file and link it with other files to produce an executable, this</span></div> <div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment">// file does not by itself cause the resulting executable to be covered by</span></div> <div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">// the GNU General Public License. This exception does not however</span></div> <div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment">// invalidate any other reasons why the executable file might be covered by</span></div> <div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment">// the GNU General Public License.</span></div> <div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment">//</span></div> <div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment">// This exception applies only to the code released under the name GNU</span></div> <div class="line"><a name="l00028"></a><span class="lineno"> 28</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="l00029"></a><span class="lineno"> 29</span> <span class="comment">// Common C++, as the General Public License permits, the exception does</span></div> <div class="line"><a name="l00030"></a><span class="lineno"> 30</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="l00031"></a><span class="lineno"> 31</span> <span class="comment">// anyone as to the status of such modified files, you must delete</span></div> <div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment">// this exception notice from them.</span></div> <div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">//</span></div> <div class="line"><a name="l00034"></a><span class="lineno"> 34</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="l00035"></a><span class="lineno"> 35</span> <span class="comment">// whether to permit this exception to apply to your modifications.</span></div> <div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment">// If you do not wish that, delete this exception notice.</span></div> <div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment">//</span></div> <div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div> <div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#ifndef CCXX_ADDRESS_H_</span></div> <div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor"></span><span class="preprocessor">#define CCXX_ADDRESS_H_</span></div> <div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#ifndef CCXX_CONFIG_H_</span></div> <div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"></span><span class="preprocessor">#include <<a class="code" href="config_8h.html">cc++/config.h</a>></span></div> <div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#ifndef CCXX_MISSING_H_</span></div> <div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor"></span><span class="preprocessor">#include <<a class="code" href="missing_8h.html">cc++/missing.h</a>></span></div> <div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor">#ifndef CCXX_THREAD_H_</span></div> <div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor"></span><span class="preprocessor">#include <<a class="code" href="thread_8h.html">cc++/thread.h</a>></span></div> <div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#ifndef CCXX_EXCEPTION_H_</span></div> <div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor"></span><span class="preprocessor">#include <<a class="code" href="exception_8h.html">cc++/exception.h</a>></span></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">#ifdef CCXX_NAMESPACES</span></div> <div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="namespaceost.html"> 64</a></span> <span class="preprocessor"></span><span class="keyword">namespace </span>ost {</div> <div class="line"><a name="l00065"></a><span class="lineno"> 65</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="comment">// future definition of ipv4 specific classes, now defines</span></div> <div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div> <div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="address_8h.html#afc03d179dfb05715ca434fc81f35ec08"> 69</a></span> <span class="preprocessor">#define INET_IPV4_ADDRESS_SIZE 16</span></div> <div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="address_8h.html#ac44efbe3cc45e830e926100723d4c553"> 70</a></span> <span class="preprocessor"></span><span class="preprocessor">#define CIDR_IPV4_ADDRESS_SIZE 32</span></div> <div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="address_8h.html#a682bc95f3048cc2949c8c9f63b9dbf09"> 71</a></span> <span class="preprocessor"></span><span class="preprocessor">#define INET_IPV6_ADDRESS_SIZE 40</span></div> <div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="address_8h.html#a630216a10be7946ba1f42a312fa22b5a"> 72</a></span> <span class="preprocessor"></span><span class="preprocessor">#define CIDR_IPV6_ADDRESS_SIZE 45</span></div> <div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="address_8h.html#a75876c1a31b853a81f761e155150a3b9"> 74</a></span> <span class="preprocessor">#define CIDR IPV4Cidr</span></div> <div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="address_8h.html#a029ebb5b43bb13b02c02f4de0a8f3c08"> 75</a></span> <span class="preprocessor"></span><span class="preprocessor">#define InetAddress IPV4Address</span></div> <div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="address_8h.html#a5eba36aa908d5a479c8ba7d0bc4512b1"> 76</a></span> <span class="preprocessor"></span><span class="preprocessor">#define InetHostAddress IPV4Host</span></div> <div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="address_8h.html#a217ddf13140d751663d287da38799aff"> 77</a></span> <span class="preprocessor"></span><span class="preprocessor">#define InetMaskAddress IPV4Mask</span></div> <div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="address_8h.html#a2bcb722163ed02e2d0d3621dd3f82da4"> 78</a></span> <span class="preprocessor"></span><span class="preprocessor">#define InetMcastAddress IPV4Multicast</span></div> <div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="address_8h.html#abcc76a9e9ae0be634631b4755ee6d0fc"> 79</a></span> <span class="preprocessor"></span><span class="preprocessor">#define InetMcastAddressValidator IPV4MulticastValidator</span></div> <div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="address_8h.html#ad4c483e6c7e2ae177b22e72f690cda72"> 80</a></span> <span class="preprocessor"></span><span class="preprocessor">#define InetAddrValidator IPV4Validator</span></div> <div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="address_8h.html#a9dc0c24e79c7b6f5768fe61548395273"> 81</a></span> <span class="preprocessor"></span><span class="preprocessor">#define BroadcastAddress IPV4Broadcast</span></div> <div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="namespaceost.html#a3c74a1a40c359fd349f3e3e1b96ebfc7"> 86</a></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="l00087"></a><span class="lineno"> 87</span> </div> <div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="namespaceost.html#a690ff5fe11ecacf1b08c88c6d042054c"> 88</a></span> <span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a>;</div> <div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div> <div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v4_validator.html"> 98</a></span> <span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_i_p_v4_validator.html">IPV4Validator</a></div> <div class="line"><a name="l00099"></a><span class="lineno"> 99</span> {</div> <div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v4_validator.html#a7e956f4f4119903b31019bd341fbf634"> 104</a></span>  <a class="code" href="classost_1_1_i_p_v4_validator.html#a7e956f4f4119903b31019bd341fbf634">IPV4Validator</a>() { };</div> <div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div> <div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v4_validator.html#a521d077f3f97da572ce32f354cfe61e6"> 109</a></span>  <span class="keyword">virtual</span> <a class="code" href="classost_1_1_i_p_v4_validator.html#a521d077f3f97da572ce32f354cfe61e6">~IPV4Validator</a>() {};</div> <div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div> <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span></div> <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  operator()(<span class="keyword">const</span> in_addr address) <span class="keyword">const</span> = 0;</div> <div class="line"><a name="l00117"></a><span class="lineno"> 117</span> };</div> <div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div> <div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v4_multicast_validator.html"> 127</a></span> <span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_i_p_v4_multicast_validator.html">IPV4MulticastValidator</a>: <span class="keyword">public</span> <a class="code" href="classost_1_1_i_p_v4_validator.html">IPV4Validator</a></div> <div class="line"><a name="l00128"></a><span class="lineno"> 128</span> {</div> <div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v4_multicast_validator.html#aa308381c9b61038baf145d03956bbe80"> 133</a></span>  <a class="code" href="classost_1_1_i_p_v4_multicast_validator.html#aa308381c9b61038baf145d03956bbe80">IPV4MulticastValidator</a>(){};</div> <div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div> <div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v4_multicast_validator.html#a26c914ca299df67b4c95ddc135470cde"> 138</a></span>  <span class="keyword">virtual</span> <a class="code" href="classost_1_1_i_p_v4_multicast_validator.html#a26c914ca299df67b4c95ddc135470cde">~IPV4MulticastValidator</a>(){};</div> <div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div> <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordtype">void</span> operator()(<span class="keyword">const</span> in_addr address) <span class="keyword">const</span>;</div> <div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="keyword">private</span>:</div> <div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="preprocessor">#if __BYTE_ORDER == __BIG_ENDIAN</span></div> <div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="preprocessor"></span> <span class="keyword">enum</span> {</div> <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  MCAST_VALID_MASK = 0xF0000000,</div> <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  MCAST_VALID_VALUE = 0xE0000000</div> <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  };</div> <div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="preprocessor">#else</span></div> <div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="preprocessor"></span> <span class="keyword">enum</span> {</div> <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  MCAST_VALID_MASK = 0x000000F0,</div> <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  MCAST_VALID_VALUE = 0x000000E0</div> <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  };</div> <div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="preprocessor"></span>};</div> <div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div> <div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v4_cidr.html"> 166</a></span> <span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_i_p_v4_cidr.html">IPV4Cidr</a></div> <div class="line"><a name="l00167"></a><span class="lineno"> 167</span> {</div> <div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="keyword">protected</span>:</div> <div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v4_cidr.html#a1e521394346937df3ea4b79d10c3cc49"> 169</a></span>  <span class="keyword">struct </span>in_addr netmask, network;</div> <div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div> <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordtype">unsigned</span> getMask(<span class="keyword">const</span> <span class="keywordtype">char</span> *cp) <span class="keyword">const</span>;</div> <div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v4_cidr.html#ae4990e1f58a6c871c22774944f8c5921"> 178</a></span>  <span class="keyword">inline</span> <span class="keyword">struct </span>in_addr getNetwork(void) const</div> <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  {<span class="keywordflow">return</span> network;};</div> <div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div> <div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v4_cidr.html#a36e0337c68d14d2c67be12ec6a9eefba"> 186</a></span>  <span class="keyword">inline</span> <span class="keyword">struct </span>in_addr getNetmask(void) const</div> <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  {<span class="keywordflow">return</span> netmask;};</div> <div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div> <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keyword">struct </span>in_addr getBroadcast(void) const;</div> <div class="line"><a name="l00195"></a><span class="lineno"> 195</span> </div> <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keywordtype">void</span> set(<span class="keyword">const</span> <span class="keywordtype">char</span> *cidr);</div> <div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div> <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <a class="code" href="classost_1_1_i_p_v4_cidr.html">IPV4Cidr</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *cidr);</div> <div class="line"><a name="l00210"></a><span class="lineno"> 210</span> </div> <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <a class="code" href="classost_1_1_i_p_v4_cidr.html">IPV4Cidr</a>();</div> <div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div> <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <a class="code" href="classost_1_1_i_p_v4_cidr.html">IPV4Cidr</a>(<a class="code" href="classost_1_1_i_p_v4_cidr.html">IPV4Cidr</a> &);</div> <div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div> <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="keywordtype">bool</span> isMember(<span class="keyword">const</span> <span class="keyword">struct</span> sockaddr *saddr) <span class="keyword">const</span>;</div> <div class="line"><a name="l00230"></a><span class="lineno"> 230</span> </div> <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keywordtype">bool</span> isMember(<span class="keyword">const</span> <span class="keyword">struct</span> in_addr &inaddr) <span class="keyword">const</span>;</div> <div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div> <div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v4_cidr.html#a119f377cfa2fba3b7b28cf0a71f03ad5"> 239</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classost_1_1_i_p_v4_cidr.html#a119f377cfa2fba3b7b28cf0a71f03ad5">operator==</a>(<span class="keyword">const</span> <span class="keyword">struct</span> sockaddr *a)<span class="keyword"> const</span></div> <div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="keyword"> </span>{<span class="keywordflow">return</span> isMember(a);};</div> <div class="line"><a name="l00241"></a><span class="lineno"> 241</span> </div> <div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v4_cidr.html#a23d8115b00be38c2f17a2b7b7a40860c"> 242</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classost_1_1_i_p_v4_cidr.html#a23d8115b00be38c2f17a2b7b7a40860c">operator==</a>(<span class="keyword">const</span> <span class="keyword">struct</span> in_addr &a)<span class="keyword"> const</span></div> <div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="keyword"> </span>{<span class="keywordflow">return</span> isMember(a);};</div> <div class="line"><a name="l00244"></a><span class="lineno"> 244</span> };</div> <div class="line"><a name="l00245"></a><span class="lineno"> 245</span> </div> <div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="preprocessor">#ifdef CCXX_IPV6</span></div> <div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v6_cidr.html"> 254</a></span> <span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_i_p_v6_cidr.html">IPV6Cidr</a></div> <div class="line"><a name="l00255"></a><span class="lineno"> 255</span> {</div> <div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="keyword">protected</span>:</div> <div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v6_cidr.html#afb73fd7948994b257dbce8b830bbf61a"> 257</a></span>  <span class="keyword">struct </span>in6_addr netmask, network;</div> <div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div> <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="keywordtype">unsigned</span> getMask(<span class="keyword">const</span> <span class="keywordtype">char</span> *cp) <span class="keyword">const</span>;</div> <div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v6_cidr.html#a9a3fc6c68055448d300ddee1719002d4"> 266</a></span>  <span class="keyword">inline</span> <span class="keyword">struct </span>in6_addr getNetwork(void) const</div> <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  {<span class="keywordflow">return</span> network;};</div> <div class="line"><a name="l00268"></a><span class="lineno"> 268</span> </div> <div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v6_cidr.html#aa5dd16ec9107894c8f07165cdecab88b"> 274</a></span>  <span class="keyword">inline</span> <span class="keyword">struct </span>in6_addr getNetmask(void) const</div> <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  {<span class="keywordflow">return</span> netmask;};</div> <div class="line"><a name="l00276"></a><span class="lineno"> 276</span> </div> <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keyword">struct </span>in6_addr getBroadcast(void) const;</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>  <span class="keywordtype">void</span> set(<span class="keyword">const</span> <span class="keywordtype">char</span> *cidr);</div> <div class="line"><a name="l00291"></a><span class="lineno"> 291</span> </div> <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <a class="code" href="classost_1_1_i_p_v6_cidr.html">IPV6Cidr</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *cidr);</div> <div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div> <div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <a class="code" href="classost_1_1_i_p_v6_cidr.html">IPV6Cidr</a>();</div> <div class="line"><a name="l00303"></a><span class="lineno"> 303</span> </div> <div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <a class="code" href="classost_1_1_i_p_v6_cidr.html">IPV6Cidr</a>(<a class="code" href="classost_1_1_i_p_v6_cidr.html">IPV6Cidr</a> &);</div> <div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div> <div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordtype">bool</span> isMember(<span class="keyword">const</span> <span class="keyword">struct</span> sockaddr *saddr) <span class="keyword">const</span>;</div> <div class="line"><a name="l00318"></a><span class="lineno"> 318</span> </div> <div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="keywordtype">bool</span> isMember(<span class="keyword">const</span> <span class="keyword">struct</span> in6_addr &inaddr) <span class="keyword">const</span>;</div> <div class="line"><a name="l00326"></a><span class="lineno"> 326</span> </div> <div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v6_cidr.html#a27dd5cd8d31f250836b0342dbfe01483"> 327</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classost_1_1_i_p_v6_cidr.html#a27dd5cd8d31f250836b0342dbfe01483">operator==</a>(<span class="keyword">const</span> <span class="keyword">struct</span> sockaddr *sa)<span class="keyword"> const</span></div> <div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="keyword"> </span>{<span class="keywordflow">return</span> isMember(sa);};</div> <div class="line"><a name="l00329"></a><span class="lineno"> 329</span> </div> <div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v6_cidr.html#a4a1185ddd0accee067006c12f8266569"> 330</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classost_1_1_i_p_v6_cidr.html#a4a1185ddd0accee067006c12f8266569">operator==</a>(<span class="keyword">const</span> <span class="keyword">struct</span> in6_addr &a)<span class="keyword"> const</span></div> <div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="keyword"> </span>{<span class="keywordflow">return</span> isMember(a);};</div> <div class="line"><a name="l00332"></a><span class="lineno"> 332</span> };</div> <div class="line"><a name="l00333"></a><span class="lineno"> 333</span> </div> <div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v4_address.html"> 350</a></span> <span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_i_p_v4_address.html">IPV4Address</a></div> <div class="line"><a name="l00351"></a><span class="lineno"> 351</span> {</div> <div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="keyword">private</span>:</div> <div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="comment">// The validator given to an IPV4Address object must not be a</span></div> <div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="comment">// transient object, but that must exist at least until the</span></div> <div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="comment">// last address object of its kind is deleted. This is an</span></div> <div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="comment">// artifact to be able to do specific checks for derived</span></div> <div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <span class="comment">// classes inside constructors.</span></div> <div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="keyword">const</span> <a class="code" href="address_8h.html#ad4c483e6c7e2ae177b22e72f690cda72">InetAddrValidator</a> *validator;</div> <div class="line"><a name="l00359"></a><span class="lineno"> 359</span> </div> <div class="line"><a name="l00360"></a><span class="lineno"> 360</span> <span class="keyword">protected</span>:</div> <div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v4_address.html#a4437ba1e6bde3e8252df8a1a591ecfe5"> 361</a></span>  <span class="keyword">struct </span>in_addr * <a class="code" href="classost_1_1_i_p_v4_address.html#a4437ba1e6bde3e8252df8a1a591ecfe5">ipaddr</a>;</div> <div class="line"><a name="l00362"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v4_address.html#a3128cf0e2832071593f940717b484e88"> 362</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="classost_1_1_i_p_v4_address.html#a3128cf0e2832071593f940717b484e88">addr_count</a>;</div> <div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v4_address.html#a9c3cc2812bf79827298211ed4ca4550b"> 363</a></span>  <span class="keyword">mutable</span> <span class="keywordtype">char</span>* <a class="code" href="classost_1_1_i_p_v4_address.html#a9c3cc2812bf79827298211ed4ca4550b">hostname</a>; <span class="comment">// hostname for ipaddr[0]. Used by getHostname</span></div> <div class="line"><a name="l00364"></a><span class="lineno"> 364</span> <span class="preprocessor">#if defined(WIN32)</span></div> <div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="preprocessor"></span> <span class="keyword">static</span> <a class="code" href="classost_1_1_mutex_counter.html">MutexCounter</a> counter;</div> <div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="preprocessor">#else</span></div> <div class="line"><a name="l00367"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v4_address.html#a5bbe8d3806115e2c4882efb728ba039d"> 367</a></span> <span class="preprocessor"></span> <span class="keyword">static</span> <a class="code" href="classost_1_1_mutex.html">Mutex</a> <a class="code" href="classost_1_1_i_p_v4_address.html#a5bbe8d3806115e2c4882efb728ba039d">mutex</a>;</div> <div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00369"></a><span class="lineno"> 369</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keywordtype">bool</span> setIPAddress(<span class="keyword">const</span> <span class="keywordtype">char</span> *host);</div> <div class="line"><a name="l00377"></a><span class="lineno"> 377</span> </div> <div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <span class="keywordtype">void</span> setAddress(<span class="keyword">const</span> <span class="keywordtype">char</span> *host);</div> <div class="line"><a name="l00385"></a><span class="lineno"> 385</span> </div> <div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <a class="code" href="classost_1_1_i_p_v4_address.html">IPV4Address</a>(<span class="keyword">const</span> <a class="code" href="address_8h.html#ad4c483e6c7e2ae177b22e72f690cda72">InetAddrValidator</a> *validator = NULL);</div> <div class="line"><a name="l00395"></a><span class="lineno"> 395</span> </div> <div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <a class="code" href="classost_1_1_i_p_v4_address.html">IPV4Address</a>(<span class="keyword">struct</span> in_addr addr, <span class="keyword">const</span> <a class="code" href="address_8h.html#ad4c483e6c7e2ae177b22e72f690cda72">InetAddrValidator</a> *validator = NULL);</div> <div class="line"><a name="l00405"></a><span class="lineno"> 405</span> </div> <div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <a class="code" href="classost_1_1_i_p_v4_address.html">IPV4Address</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *address, <span class="keyword">const</span> <a class="code" href="address_8h.html#ad4c483e6c7e2ae177b22e72f690cda72">InetAddrValidator</a> *validator = NULL);</div> <div class="line"><a name="l00417"></a><span class="lineno"> 417</span> </div> <div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <a class="code" href="classost_1_1_i_p_v4_address.html">IPV4Address</a>(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_address.html">IPV4Address</a> &rhs);</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>  <span class="keyword">virtual</span> ~<a class="code" href="classost_1_1_i_p_v4_address.html">IPV4Address</a>();</div> <div class="line"><a name="l00427"></a><span class="lineno"> 427</span> </div> <div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *getHostname(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div> <div class="line"><a name="l00435"></a><span class="lineno"> 435</span> </div> <div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="keywordtype">bool</span> isInetAddress(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div> <div class="line"><a name="l00444"></a><span class="lineno"> 444</span> </div> <div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <span class="keyword">struct </span>in_addr getAddress(void) const;</div> <div class="line"><a name="l00453"></a><span class="lineno"> 453</span> </div> <div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <span class="keyword">struct </span>in_addr getAddress(size_t i) const;</div> <div class="line"><a name="l00466"></a><span class="lineno"> 466</span> </div> <div class="line"><a name="l00472"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v4_address.html#a90c4bc29684968f09d5cf61f3d7d7524"> 472</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="classost_1_1_i_p_v4_address.html#a90c4bc29684968f09d5cf61f3d7d7524">getAddressCount</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> addr_count; }</div> <div class="line"><a name="l00473"></a><span class="lineno"> 473</span> </div> <div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <a class="code" href="classost_1_1_i_p_v4_address.html">IPV4Address</a> &operator=(<span class="keyword">const</span> <span class="keywordtype">char</span> *str);</div> <div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <a class="code" href="classost_1_1_i_p_v4_address.html">IPV4Address</a> &operator=(<span class="keyword">struct</span> in_addr addr);</div> <div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <a class="code" href="classost_1_1_i_p_v4_address.html">IPV4Address</a> &operator=(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_address.html">IPV4Address</a> &rhs);</div> <div class="line"><a name="l00477"></a><span class="lineno"> 477</span> </div> <div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <a class="code" href="classost_1_1_i_p_v4_address.html">IPV4Address</a> &operator=(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> addr);</div> <div class="line"><a name="l00483"></a><span class="lineno"> 483</span> </div> <div class="line"><a name="l00484"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v4_address.html#a8198f8d8f9fae2de78194fc26c3b44c6"> 484</a></span>  <span class="keyword">inline</span> <a class="code" href="classost_1_1_i_p_v4_address.html">IPV4Address</a> &<a class="code" href="classost_1_1_i_p_v4_address.html#a8198f8d8f9fae2de78194fc26c3b44c6">operator=</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> addr)</div> <div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  {<span class="keywordflow">return</span> *<span class="keyword">this</span> = (<span class="keywordtype">unsigned</span> long) addr; }</div> <div class="line"><a name="l00486"></a><span class="lineno"> 486</span> </div> <div class="line"><a name="l00487"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v4_address.html#a028f090c2d60034c3cbc4a23efafd356"> 487</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classost_1_1_i_p_v4_address.html#a028f090c2d60034c3cbc4a23efafd356">operator!</a>()<span class="keyword"> const</span></div> <div class="line"><a name="l00488"></a><span class="lineno"> 488</span> <span class="keyword"> </span>{<span class="keywordflow">return</span> !isInetAddress();};</div> <div class="line"><a name="l00489"></a><span class="lineno"> 489</span> </div> <div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_address.html">IPV4Address</a> &a) <span class="keyword">const</span>;</div> <div class="line"><a name="l00499"></a><span class="lineno"> 499</span> </div> <div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_address.html">IPV4Address</a> &a) <span class="keyword">const</span>;</div> <div class="line"><a name="l00508"></a><span class="lineno"> 508</span> };</div> <div class="line"><a name="l00509"></a><span class="lineno"> 509</span> </div> <div class="line"><a name="l00522"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v4_mask.html"> 522</a></span> <span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_i_p_v4_mask.html">IPV4Mask</a> : <span class="keyword">public</span> <a class="code" href="classost_1_1_i_p_v4_address.html">IPV4Address</a></div> <div class="line"><a name="l00523"></a><span class="lineno"> 523</span> {</div> <div class="line"><a name="l00524"></a><span class="lineno"> 524</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  <a class="code" href="classost_1_1_i_p_v4_mask.html">IPV4Mask</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *mask);</div> <div class="line"><a name="l00532"></a><span class="lineno"> 532</span> </div> <div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <span class="keyword">friend</span> <a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> operator&(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> &addr,</div> <div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  <span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_mask.html">IPV4Mask</a> &mask);</div> <div class="line"><a name="l00545"></a><span class="lineno"> 545</span> </div> <div class="line"><a name="l00550"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v4_mask.html#a49ec7fe09dfcc3b9a963e2dc6f1186d4"> 550</a></span>  <a class="code" href="classost_1_1_i_p_v4_address.html">IPV4Address</a> &<a class="code" href="classost_1_1_i_p_v4_mask.html#a49ec7fe09dfcc3b9a963e2dc6f1186d4">operator=</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> addr)</div> <div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  { <span class="keywordflow">return</span> <a class="code" href="classost_1_1_i_p_v4_address.html#aaeab0179a7fa73673815e1cc623ab709">IPV4Address::operator =</a>(addr); }</div> <div class="line"><a name="l00552"></a><span class="lineno"> 552</span> };</div> <div class="line"><a name="l00553"></a><span class="lineno"> 553</span> </div> <div class="line"><a name="l00561"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v4_host.html"> 561</a></span> <span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> : <span class="keyword">public</span> <a class="code" href="classost_1_1_i_p_v4_address.html">IPV4Address</a></div> <div class="line"><a name="l00562"></a><span class="lineno"> 562</span> {</div> <div class="line"><a name="l00563"></a><span class="lineno"> 563</span> <span class="keyword">private</span>:</div> <div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <span class="keyword">static</span> <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> _host_;</div> <div class="line"><a name="l00565"></a><span class="lineno"> 565</span> </div> <div class="line"><a name="l00566"></a><span class="lineno"> 566</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <a class="code" href="namespaceost.html#a690ff5fe11ecacf1b08c88c6d042054c">IPV4Host</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *host = NULL);</div> <div class="line"><a name="l00580"></a><span class="lineno"> 580</span> </div> <div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <a class="code" href="namespaceost.html#a690ff5fe11ecacf1b08c88c6d042054c">IPV4Host</a>(<span class="keyword">struct</span> in_addr addr);</div> <div class="line"><a name="l00589"></a><span class="lineno"> 589</span> </div> <div class="line"><a name="l00594"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v4_host.html#a28be54aa5dd6c5ed9feeeb6c76ab0b27"> 594</a></span>  <a class="code" href="classost_1_1_i_p_v4_address.html">IPV4Address</a> &<a class="code" href="classost_1_1_i_p_v4_host.html#a28be54aa5dd6c5ed9feeeb6c76ab0b27">operator=</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> addr)</div> <div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  { <span class="keywordflow">return</span> <a class="code" href="classost_1_1_i_p_v4_address.html#aaeab0179a7fa73673815e1cc623ab709">IPV4Address::operator =</a>(addr); }</div> <div class="line"><a name="l00596"></a><span class="lineno"> 596</span> </div> <div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> &operator&=(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_mask.html">IPV4Mask</a> &mask);</div> <div class="line"><a name="l00602"></a><span class="lineno"> 602</span> </div> <div class="line"><a name="l00603"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v4_host.html#aee7ea6b9d5d5f4bf3de8db73fa8e1f94"> 603</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_i_p_v4_mask.html">IPV4Mask</a>;</div> <div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  <span class="keyword">friend</span> <a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> operator&(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_host.html">IPV4Host</a> &addr,</div> <div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  <span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_mask.html">IPV4Mask</a> &mask);</div> <div class="line"><a name="l00606"></a><span class="lineno"> 606</span> };</div> <div class="line"><a name="l00607"></a><span class="lineno"> 607</span> </div> <div class="line"><a name="l00612"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v4_broadcast.html"> 612</a></span> <span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_i_p_v4_broadcast.html">IPV4Broadcast</a> : <span class="keyword">public</span> <a class="code" href="classost_1_1_i_p_v4_address.html">IPV4Address</a></div> <div class="line"><a name="l00613"></a><span class="lineno"> 613</span> {</div> <div class="line"><a name="l00614"></a><span class="lineno"> 614</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  <a class="code" href="classost_1_1_i_p_v4_broadcast.html">IPV4Broadcast</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *net = <span class="stringliteral">"255.255.255.255"</span>);</div> <div class="line"><a name="l00623"></a><span class="lineno"> 623</span> };</div> <div class="line"><a name="l00624"></a><span class="lineno"> 624</span> </div> <div class="line"><a name="l00634"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v4_multicast.html"> 634</a></span> <span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_i_p_v4_multicast.html">IPV4Multicast</a>: <span class="keyword">public</span> <a class="code" href="classost_1_1_i_p_v4_address.html">IPV4Address</a></div> <div class="line"><a name="l00635"></a><span class="lineno"> 635</span> {</div> <div class="line"><a name="l00636"></a><span class="lineno"> 636</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  <a class="code" href="classost_1_1_i_p_v4_multicast.html">IPV4Multicast</a>();</div> <div class="line"><a name="l00642"></a><span class="lineno"> 642</span> </div> <div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  <a class="code" href="classost_1_1_i_p_v4_multicast.html">IPV4Multicast</a>(<span class="keyword">const</span> <span class="keyword">struct</span> in_addr address);</div> <div class="line"><a name="l00650"></a><span class="lineno"> 650</span> </div> <div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  <a class="code" href="classost_1_1_i_p_v4_multicast.html">IPV4Multicast</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *address);</div> <div class="line"><a name="l00661"></a><span class="lineno"> 661</span> </div> <div class="line"><a name="l00662"></a><span class="lineno"> 662</span> <span class="keyword">private</span>:</div> <div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_multicast_validator.html">IPV4MulticastValidator</a> validator;</div> <div class="line"><a name="l00671"></a><span class="lineno"> 671</span> };</div> <div class="line"><a name="l00672"></a><span class="lineno"> 672</span> </div> <div class="line"><a name="l00673"></a><span class="lineno"> 673</span> <span class="keyword">extern</span> <a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> std::ostream& <a class="code" href="namespaceost.html#a43b65f3c2266eb63ba22c1ff73a6e20b">operator<<</a>(std::ostream &os, <span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v4_address.html">IPV4Address</a> &ia);</div> <div class="line"><a name="l00674"></a><span class="lineno"> 674</span> </div> <div class="line"><a name="l00675"></a><span class="lineno"><a class="line" href="namespaceost.html#a2814c59547dbc1ac351e7813b8034654"> 675</a></span> <span class="keyword">inline</span> <span class="keyword">struct </span>in_addr <a class="code" href="namespaceost.html#a2814c59547dbc1ac351e7813b8034654">getaddress</a>(const <a class="code" href="classost_1_1_i_p_v4_address.html">IPV4Address</a> &ia)</div> <div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  {<span class="keywordflow">return</span> ia.getAddress();}</div> <div class="line"><a name="l00677"></a><span class="lineno"> 677</span> </div> <div class="line"><a name="l00678"></a><span class="lineno"> 678</span> </div> <div class="line"><a name="l00679"></a><span class="lineno"> 679</span> <span class="preprocessor">#ifdef CCXX_IPV6</span></div> <div class="line"><a name="l00680"></a><span class="lineno"> 680</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00681"></a><span class="lineno"><a class="line" href="namespaceost.html#a0ef77c2689f8442b3b0d3a0f4d2151e0"> 681</a></span> <span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_i_p_v6_host.html">IPV6Host</a>;</div> <div class="line"><a name="l00682"></a><span class="lineno"> 682</span> </div> <div class="line"><a name="l00691"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v6_validator.html"> 691</a></span> <span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_i_p_v6_validator.html">IPV6Validator</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> <span class="keyword">public</span>:</div> <div class="line"><a name="l00697"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v6_validator.html#a4a1e7908325409ac55854d76fca64eff"> 697</a></span>  <a class="code" href="classost_1_1_i_p_v6_validator.html#a4a1e7908325409ac55854d76fca64eff">IPV6Validator</a>() { };</div> <div class="line"><a name="l00698"></a><span class="lineno"> 698</span> </div> <div class="line"><a name="l00702"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v6_validator.html#a1731f4d2473e306125c477782119e4b6"> 702</a></span>  <span class="keyword">virtual</span> <a class="code" href="classost_1_1_i_p_v6_validator.html#a1731f4d2473e306125c477782119e4b6">~IPV6Validator</a>() {};</div> <div class="line"><a name="l00703"></a><span class="lineno"> 703</span> </div> <div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> operator()(<span class="keyword">const</span> in6_addr address) <span class="keyword">const</span> = 0;</div> <div class="line"><a name="l00709"></a><span class="lineno"> 709</span> };</div> <div class="line"><a name="l00710"></a><span class="lineno"> 710</span> </div> <div class="line"><a name="l00719"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v6_multicast_validator.html"> 719</a></span> <span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_i_p_v6_multicast_validator.html">IPV6MulticastValidator</a>: <span class="keyword">public</span> <a class="code" href="classost_1_1_i_p_v6_validator.html">IPV6Validator</a></div> <div class="line"><a name="l00720"></a><span class="lineno"> 720</span> {</div> <div class="line"><a name="l00721"></a><span class="lineno"> 721</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l00725"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v6_multicast_validator.html#a96b9828408dc0b9748ebe09069eb4c66"> 725</a></span>  <a class="code" href="classost_1_1_i_p_v6_multicast_validator.html#a96b9828408dc0b9748ebe09069eb4c66">IPV6MulticastValidator</a>(){};</div> <div class="line"><a name="l00726"></a><span class="lineno"> 726</span> </div> <div class="line"><a name="l00730"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v6_multicast_validator.html#a434f490cad411088f8fa59fb3d4e145e"> 730</a></span>  <span class="keyword">virtual</span> <a class="code" href="classost_1_1_i_p_v6_multicast_validator.html#a434f490cad411088f8fa59fb3d4e145e">~IPV6MulticastValidator</a>(){};</div> <div class="line"><a name="l00731"></a><span class="lineno"> 731</span> </div> <div class="line"><a name="l00736"></a><span class="lineno"> 736</span>  <span class="keywordtype">void</span> operator()(<span class="keyword">const</span> in6_addr address) <span class="keyword">const</span>;</div> <div class="line"><a name="l00737"></a><span class="lineno"> 737</span> };</div> <div class="line"><a name="l00738"></a><span class="lineno"> 738</span> </div> <div class="line"><a name="l00753"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v6_address.html"> 753</a></span> <span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_i_p_v6_address.html">IPV6Address</a></div> <div class="line"><a name="l00754"></a><span class="lineno"> 754</span> {</div> <div class="line"><a name="l00755"></a><span class="lineno"> 755</span> <span class="keyword">private</span>:</div> <div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  <span class="comment">// The validator given to an IPV4Address object must not be a</span></div> <div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  <span class="comment">// transient object, but that must exist at least until the</span></div> <div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  <span class="comment">// last address object of its kind is deleted. This is an</span></div> <div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  <span class="comment">// artifact to be able to do specific checks for derived</span></div> <div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  <span class="comment">// classes inside constructors.</span></div> <div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  <span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_validator.html">IPV6Validator</a> *validator;</div> <div class="line"><a name="l00762"></a><span class="lineno"> 762</span> </div> <div class="line"><a name="l00763"></a><span class="lineno"> 763</span> <span class="keyword">protected</span>:</div> <div class="line"><a name="l00764"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v6_address.html#a8d8a4ce0d30251e42ddfc793369fc37d"> 764</a></span>  <span class="keyword">struct </span>in6_addr * <a class="code" href="classost_1_1_i_p_v6_address.html#a8d8a4ce0d30251e42ddfc793369fc37d">ipaddr</a>;</div> <div class="line"><a name="l00765"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v6_address.html#ab34b66044b90b5b045ae924858f2bf2a"> 765</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="classost_1_1_i_p_v6_address.html#ab34b66044b90b5b045ae924858f2bf2a">addr_count</a>;</div> <div class="line"><a name="l00766"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v6_address.html#a469e52373818fea081b0f1df6f57e14c"> 766</a></span>  <span class="keyword">mutable</span> <span class="keywordtype">char</span>* <a class="code" href="classost_1_1_i_p_v6_address.html#a469e52373818fea081b0f1df6f57e14c">hostname</a>; <span class="comment">// hostname for ipaddr[0]. Used by getHostname</span></div> <div class="line"><a name="l00767"></a><span class="lineno"> 767</span> <span class="preprocessor">#if defined(WIN32)</span></div> <div class="line"><a name="l00768"></a><span class="lineno"> 768</span> <span class="preprocessor"></span> <span class="keyword">static</span> <a class="code" href="classost_1_1_mutex_counter.html">MutexCounter</a> counter;</div> <div class="line"><a name="l00769"></a><span class="lineno"> 769</span> <span class="preprocessor">#else</span></div> <div class="line"><a name="l00770"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v6_address.html#af43882cd7c34125d097c90ed9e50490b"> 770</a></span> <span class="preprocessor"></span> <span class="keyword">static</span> <a class="code" href="classost_1_1_mutex.html">Mutex</a> <a class="code" href="classost_1_1_i_p_v6_address.html#af43882cd7c34125d097c90ed9e50490b">mutex</a>;</div> <div class="line"><a name="l00771"></a><span class="lineno"> 771</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00772"></a><span class="lineno"> 772</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  <span class="keywordtype">bool</span> setIPAddress(<span class="keyword">const</span> <span class="keywordtype">char</span> *host);</div> <div class="line"><a name="l00780"></a><span class="lineno"> 780</span> </div> <div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  <span class="keywordtype">void</span> setAddress(<span class="keyword">const</span> <span class="keywordtype">char</span> *host);</div> <div class="line"><a name="l00788"></a><span class="lineno"> 788</span> </div> <div class="line"><a name="l00789"></a><span class="lineno"> 789</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  <a class="code" href="classost_1_1_i_p_v6_address.html">IPV6Address</a>(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_validator.html">IPV6Validator</a> *validator = NULL);</div> <div class="line"><a name="l00798"></a><span class="lineno"> 798</span> </div> <div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  <a class="code" href="classost_1_1_i_p_v6_address.html">IPV6Address</a>(<span class="keyword">struct</span> in6_addr addr, <span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_validator.html">IPV6Validator</a> *validator = NULL);</div> <div class="line"><a name="l00808"></a><span class="lineno"> 808</span> </div> <div class="line"><a name="l00819"></a><span class="lineno"> 819</span>  <a class="code" href="classost_1_1_i_p_v6_address.html">IPV6Address</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *address, <span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_validator.html">IPV6Validator</a> *validator = NULL);</div> <div class="line"><a name="l00820"></a><span class="lineno"> 820</span> </div> <div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  <a class="code" href="classost_1_1_i_p_v6_address.html">IPV6Address</a>(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_address.html">IPV6Address</a> &rhs);</div> <div class="line"><a name="l00825"></a><span class="lineno"> 825</span> </div> <div class="line"><a name="l00829"></a><span class="lineno"> 829</span>  <span class="keyword">virtual</span> ~<a class="code" href="classost_1_1_i_p_v6_address.html">IPV6Address</a>();</div> <div class="line"><a name="l00830"></a><span class="lineno"> 830</span> </div> <div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *getHostname(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div> <div class="line"><a name="l00838"></a><span class="lineno"> 838</span> </div> <div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  <span class="keywordtype">bool</span> isInetAddress(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div> <div class="line"><a name="l00847"></a><span class="lineno"> 847</span> </div> <div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  <span class="keyword">struct </span>in6_addr getAddress(void) const;</div> <div class="line"><a name="l00856"></a><span class="lineno"> 856</span> </div> <div class="line"><a name="l00868"></a><span class="lineno"> 868</span>  <span class="keyword">struct </span>in6_addr getAddress(size_t i) const;</div> <div class="line"><a name="l00869"></a><span class="lineno"> 869</span> </div> <div class="line"><a name="l00875"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v6_address.html#ac8cda66da211bec64ea6de14c3ad65c8"> 875</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="classost_1_1_i_p_v6_address.html#ac8cda66da211bec64ea6de14c3ad65c8">getAddressCount</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> addr_count; }</div> <div class="line"><a name="l00876"></a><span class="lineno"> 876</span> </div> <div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  <a class="code" href="classost_1_1_i_p_v6_address.html">IPV6Address</a> &operator=(<span class="keyword">const</span> <span class="keywordtype">char</span> *str);</div> <div class="line"><a name="l00878"></a><span class="lineno"> 878</span>  <a class="code" href="classost_1_1_i_p_v6_address.html">IPV6Address</a> &operator=(<span class="keyword">struct</span> in6_addr addr);</div> <div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  <a class="code" href="classost_1_1_i_p_v6_address.html">IPV6Address</a> &operator=(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_address.html">IPV6Address</a> &rhs);</div> <div class="line"><a name="l00880"></a><span class="lineno"> 880</span> </div> <div class="line"><a name="l00881"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v6_address.html#a80df5c80fa1675223d74161278b18649"> 881</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classost_1_1_i_p_v6_address.html#a80df5c80fa1675223d74161278b18649">operator!</a>()<span class="keyword"> const</span></div> <div class="line"><a name="l00882"></a><span class="lineno"> 882</span> <span class="keyword"> </span>{<span class="keywordflow">return</span> !isInetAddress();};</div> <div class="line"><a name="l00883"></a><span class="lineno"> 883</span> </div> <div class="line"><a name="l00892"></a><span class="lineno"> 892</span>  <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_address.html">IPV6Address</a> &a) <span class="keyword">const</span>;</div> <div class="line"><a name="l00893"></a><span class="lineno"> 893</span> </div> <div class="line"><a name="l00901"></a><span class="lineno"> 901</span>  <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_address.html">IPV6Address</a> &a) <span class="keyword">const</span>;</div> <div class="line"><a name="l00902"></a><span class="lineno"> 902</span> };</div> <div class="line"><a name="l00903"></a><span class="lineno"> 903</span> </div> <div class="line"><a name="l00916"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v6_mask.html"> 916</a></span> <span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_i_p_v6_mask.html">IPV6Mask</a> : <span class="keyword">public</span> <a class="code" href="classost_1_1_i_p_v6_address.html">IPV6Address</a></div> <div class="line"><a name="l00917"></a><span class="lineno"> 917</span> {</div> <div class="line"><a name="l00918"></a><span class="lineno"> 918</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  <a class="code" href="classost_1_1_i_p_v6_mask.html">IPV6Mask</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *mask);</div> <div class="line"><a name="l00926"></a><span class="lineno"> 926</span> </div> <div class="line"><a name="l00937"></a><span class="lineno"> 937</span>  <span class="keyword">friend</span> <a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_i_p_v6_host.html">IPV6Host</a> operator&(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_host.html">IPV6Host</a> &addr,</div> <div class="line"><a name="l00938"></a><span class="lineno"> 938</span>  <span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_mask.html">IPV6Mask</a> &mask);</div> <div class="line"><a name="l00939"></a><span class="lineno"> 939</span> };</div> <div class="line"><a name="l00940"></a><span class="lineno"> 940</span> </div> <div class="line"><a name="l00948"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v6_host.html"> 948</a></span> <span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_i_p_v6_host.html">IPV6Host</a> : <span class="keyword">public</span> <a class="code" href="classost_1_1_i_p_v6_address.html">IPV6Address</a></div> <div class="line"><a name="l00949"></a><span class="lineno"> 949</span> {</div> <div class="line"><a name="l00950"></a><span class="lineno"> 950</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l00963"></a><span class="lineno"> 963</span>  <a class="code" href="namespaceost.html#a0ef77c2689f8442b3b0d3a0f4d2151e0">IPV6Host</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *host = NULL);</div> <div class="line"><a name="l00964"></a><span class="lineno"> 964</span> </div> <div class="line"><a name="l00972"></a><span class="lineno"> 972</span>  <a class="code" href="namespaceost.html#a0ef77c2689f8442b3b0d3a0f4d2151e0">IPV6Host</a>(<span class="keyword">struct</span> in6_addr addr);</div> <div class="line"><a name="l00973"></a><span class="lineno"> 973</span> </div> <div class="line"><a name="l00978"></a><span class="lineno"> 978</span>  <a class="code" href="classost_1_1_i_p_v6_host.html">IPV6Host</a> &operator&=(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_mask.html">IPV6Mask</a> &mask);</div> <div class="line"><a name="l00979"></a><span class="lineno"> 979</span> </div> <div class="line"><a name="l00980"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v6_host.html#a49496345b8abbec276f6c25a0fbdffe5"> 980</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_i_p_v6_mask.html">IPV6Mask</a>;</div> <div class="line"><a name="l00981"></a><span class="lineno"> 981</span>  <span class="keyword">friend</span> <a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_i_p_v6_host.html">IPV6Host</a> operator&(<span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_host.html">IPV6Host</a> &addr, <span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_mask.html">IPV6Mask</a> &mask);</div> <div class="line"><a name="l00982"></a><span class="lineno"> 982</span> };</div> <div class="line"><a name="l00983"></a><span class="lineno"> 983</span> </div> <div class="line"><a name="l00988"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v6_broadcast.html"> 988</a></span> <span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_i_p_v6_broadcast.html">IPV6Broadcast</a> : <span class="keyword">public</span> <a class="code" href="classost_1_1_i_p_v6_address.html">IPV6Address</a></div> <div class="line"><a name="l00989"></a><span class="lineno"> 989</span> {</div> <div class="line"><a name="l00990"></a><span class="lineno"> 990</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  <a class="code" href="classost_1_1_i_p_v6_broadcast.html">IPV6Broadcast</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *net = <span class="stringliteral">"255.255.255.255"</span>);</div> <div class="line"><a name="l00999"></a><span class="lineno"> 999</span> };</div> <div class="line"><a name="l01000"></a><span class="lineno"> 1000</span> </div> <div class="line"><a name="l01010"></a><span class="lineno"><a class="line" href="classost_1_1_i_p_v6_multicast.html"> 1010</a></span> <span class="keyword">class </span><a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> <a class="code" href="classost_1_1_i_p_v6_multicast.html">IPV6Multicast</a>: <span class="keyword">public</span> <a class="code" href="classost_1_1_i_p_v6_address.html">IPV6Address</a></div> <div class="line"><a name="l01011"></a><span class="lineno"> 1011</span> {</div> <div class="line"><a name="l01012"></a><span class="lineno"> 1012</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>  <a class="code" href="classost_1_1_i_p_v6_multicast.html">IPV6Multicast</a>();</div> <div class="line"><a name="l01018"></a><span class="lineno"> 1018</span> </div> <div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>  <a class="code" href="classost_1_1_i_p_v6_multicast.html">IPV6Multicast</a>(<span class="keyword">const</span> <span class="keyword">struct</span> in6_addr address);</div> <div class="line"><a name="l01026"></a><span class="lineno"> 1026</span> </div> <div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>  <a class="code" href="classost_1_1_i_p_v6_multicast.html">IPV6Multicast</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *address);</div> <div class="line"><a name="l01037"></a><span class="lineno"> 1037</span> </div> <div class="line"><a name="l01038"></a><span class="lineno"> 1038</span> <span class="keyword">private</span>:</div> <div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>  <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_multicast_validator.html">IPV6MulticastValidator</a> validator;</div> <div class="line"><a name="l01047"></a><span class="lineno"> 1047</span> };</div> <div class="line"><a name="l01048"></a><span class="lineno"> 1048</span> </div> <div class="line"><a name="l01049"></a><span class="lineno"> 1049</span> <span class="keyword">extern</span> <a class="code" href="config_8h.html#ad10ef148ba8327bd530fc6c32c1e181c">__EXPORT</a> std::ostream& <a class="code" href="namespaceost.html#a43b65f3c2266eb63ba22c1ff73a6e20b">operator<<</a>(std::ostream &os, <span class="keyword">const</span> <a class="code" href="classost_1_1_i_p_v6_address.html">IPV6Address</a> &ia);</div> <div class="line"><a name="l01050"></a><span class="lineno"> 1050</span> </div> <div class="line"><a name="l01051"></a><span class="lineno"><a class="line" href="namespaceost.html#ad50c9b5311667f2b1796374ea6e06dc4"> 1051</a></span> <span class="keyword">inline</span> <span class="keyword">struct </span>in6_addr <a class="code" href="namespaceost.html#a2814c59547dbc1ac351e7813b8034654">getaddress</a>(const <a class="code" href="classost_1_1_i_p_v6_address.html">IPV6Address</a> &ia)</div> <div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>  {<span class="keywordflow">return</span> ia.getAddress();}</div> <div class="line"><a name="l01053"></a><span class="lineno"> 1053</span> </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="preprocessor">#endif</span></div> <div class="line"><a name="l01056"></a><span class="lineno"> 1056</span> <span class="preprocessor"></span></div> <div class="line"><a name="l01057"></a><span class="lineno"> 1057</span> <span class="preprocessor">#ifdef CCXX_NAMESPACES</span></div> <div class="line"><a name="l01058"></a><span class="lineno"> 1058</span> <span class="preprocessor"></span>}</div> <div class="line"><a name="l01059"></a><span class="lineno"> 1059</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l01060"></a><span class="lineno"> 1060</span> <span class="preprocessor"></span></div> <div class="line"><a name="l01061"></a><span class="lineno"> 1061</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> <span class="preprocessor"></span></div> <div class="ttc" id="classost_1_1_i_p_v4_address_html_a90c4bc29684968f09d5cf61f3d7d7524"><div class="ttname"><a href="classost_1_1_i_p_v4_address.html#a90c4bc29684968f09d5cf61f3d7d7524">ost::IPV4Address::getAddressCount</a></div><div class="ttdeci">size_t getAddressCount() const </div><div class="ttdoc">Returns the number of internet addresses that an IPV4Address object contains. </div><div class="ttdef"><b>Definition:</b> address.h:472</div></div> <div class="ttc" id="classost_1_1_i_p_v6_cidr_html_a27dd5cd8d31f250836b0342dbfe01483"><div class="ttname"><a href="classost_1_1_i_p_v6_cidr.html#a27dd5cd8d31f250836b0342dbfe01483">ost::IPV6Cidr::operator==</a></div><div class="ttdeci">bool operator==(const struct sockaddr *sa) const </div><div class="ttdef"><b>Definition:</b> address.h:327</div></div> <div class="ttc" id="classost_1_1_i_p_v4_validator_html"><div class="ttname"><a href="classost_1_1_i_p_v4_validator.html">ost::IPV4Validator</a></div><div class="ttdoc">Classes derived from IPV4Address would require an specific validator to pass to the IPV4Address const...</div><div class="ttdef"><b>Definition:</b> address.h:98</div></div> <div class="ttc" id="classost_1_1_i_p_v6_mask_html"><div class="ttname"><a href="classost_1_1_i_p_v6_mask.html">ost::IPV6Mask</a></div><div class="ttdoc">Internet addresses used specifically as masking addresses (such as &quot; 255.255.255.0&quot;) are held in the ...</div><div class="ttdef"><b>Definition:</b> address.h:916</div></div> <div class="ttc" id="classost_1_1_i_p_v6_address_html_a8d8a4ce0d30251e42ddfc793369fc37d"><div class="ttname"><a href="classost_1_1_i_p_v6_address.html#a8d8a4ce0d30251e42ddfc793369fc37d">ost::IPV6Address::ipaddr</a></div><div class="ttdeci">struct in6_addr * ipaddr</div><div class="ttdef"><b>Definition:</b> address.h:764</div></div> <div class="ttc" id="classost_1_1_i_p_v4_cidr_html"><div class="ttname"><a href="classost_1_1_i_p_v4_cidr.html">ost::IPV4Cidr</a></div><div class="ttdoc">The CIDR class is used to support routing tables and validate address policies. </div><div class="ttdef"><b>Definition:</b> address.h:166</div></div> <div class="ttc" id="classost_1_1_i_p_v4_multicast_validator_html_aa308381c9b61038baf145d03956bbe80"><div class="ttname"><a href="classost_1_1_i_p_v4_multicast_validator.html#aa308381c9b61038baf145d03956bbe80">ost::IPV4MulticastValidator::IPV4MulticastValidator</a></div><div class="ttdeci">IPV4MulticastValidator()</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> address.h:133</div></div> <div class="ttc" id="classost_1_1_i_p_v4_cidr_html_a23d8115b00be38c2f17a2b7b7a40860c"><div class="ttname"><a href="classost_1_1_i_p_v4_cidr.html#a23d8115b00be38c2f17a2b7b7a40860c">ost::IPV4Cidr::operator==</a></div><div class="ttdeci">bool operator==(const struct in_addr &a) const </div><div class="ttdef"><b>Definition:</b> address.h:242</div></div> <div class="ttc" id="namespaceost_html_a2814c59547dbc1ac351e7813b8034654"><div class="ttname"><a href="namespaceost.html#a2814c59547dbc1ac351e7813b8034654">ost::getaddress</a></div><div class="ttdeci">struct in_addr getaddress(const IPV4Address &ia)</div><div class="ttdef"><b>Definition:</b> address.h:675</div></div> <div class="ttc" id="classost_1_1_i_p_v4_address_html_a5bbe8d3806115e2c4882efb728ba039d"><div class="ttname"><a href="classost_1_1_i_p_v4_address.html#a5bbe8d3806115e2c4882efb728ba039d">ost::IPV4Address::mutex</a></div><div class="ttdeci">static Mutex mutex</div><div class="ttdef"><b>Definition:</b> address.h:367</div></div> <div class="ttc" id="classost_1_1_i_p_v6_cidr_html"><div class="ttname"><a href="classost_1_1_i_p_v6_cidr.html">ost::IPV6Cidr</a></div><div class="ttdoc">The CIDR class is used to support routing tables and validate address policies. </div><div class="ttdef"><b>Definition:</b> address.h:254</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_i_p_v4_address_html_aaeab0179a7fa73673815e1cc623ab709"><div class="ttname"><a href="classost_1_1_i_p_v4_address.html#aaeab0179a7fa73673815e1cc623ab709">ost::IPV4Address::operator=</a></div><div class="ttdeci">IPV4Address & operator=(const char *str)</div></div> <div class="ttc" id="missing_8h_html"><div class="ttname"><a href="missing_8h.html">missing.h</a></div><div class="ttdoc">substitute functions which may be missing in target platform libc. </div></div> <div class="ttc" id="classost_1_1_i_p_v6_address_html_af43882cd7c34125d097c90ed9e50490b"><div class="ttname"><a href="classost_1_1_i_p_v6_address.html#af43882cd7c34125d097c90ed9e50490b">ost::IPV6Address::mutex</a></div><div class="ttdeci">static Mutex mutex</div><div class="ttdef"><b>Definition:</b> address.h:770</div></div> <div class="ttc" id="config_8h_html"><div class="ttname"><a href="config_8h.html">config.h</a></div></div> <div class="ttc" id="classost_1_1_i_p_v4_validator_html_a7e956f4f4119903b31019bd341fbf634"><div class="ttname"><a href="classost_1_1_i_p_v4_validator.html#a7e956f4f4119903b31019bd341fbf634">ost::IPV4Validator::IPV4Validator</a></div><div class="ttdeci">IPV4Validator()</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> address.h:104</div></div> <div class="ttc" id="classost_1_1_i_p_v4_address_html_a9c3cc2812bf79827298211ed4ca4550b"><div class="ttname"><a href="classost_1_1_i_p_v4_address.html#a9c3cc2812bf79827298211ed4ca4550b">ost::IPV4Address::hostname</a></div><div class="ttdeci">char * hostname</div><div class="ttdef"><b>Definition:</b> address.h:363</div></div> <div class="ttc" id="classost_1_1_i_p_v4_host_html_a28be54aa5dd6c5ed9feeeb6c76ab0b27"><div class="ttname"><a href="classost_1_1_i_p_v4_host.html#a28be54aa5dd6c5ed9feeeb6c76ab0b27">ost::IPV4Host::operator=</a></div><div class="ttdeci">IPV4Address & operator=(unsigned long addr)</div><div class="ttdoc">Allows assignment from the return of functions like inet_addr() or htonl() </div><div class="ttdef"><b>Definition:</b> address.h:594</div></div> <div class="ttc" id="classost_1_1_i_p_v6_validator_html_a1731f4d2473e306125c477782119e4b6"><div class="ttname"><a href="classost_1_1_i_p_v6_validator.html#a1731f4d2473e306125c477782119e4b6">ost::IPV6Validator::~IPV6Validator</a></div><div class="ttdeci">virtual ~IPV6Validator()</div><div class="ttdoc">Keeps compilers happy. </div><div class="ttdef"><b>Definition:</b> address.h:702</div></div> <div class="ttc" id="classost_1_1_i_p_v6_multicast_validator_html_a434f490cad411088f8fa59fb3d4e145e"><div class="ttname"><a href="classost_1_1_i_p_v6_multicast_validator.html#a434f490cad411088f8fa59fb3d4e145e">ost::IPV6MulticastValidator::~IPV6MulticastValidator</a></div><div class="ttdeci">virtual ~IPV6MulticastValidator()</div><div class="ttdoc">Keeps compilers happy... </div><div class="ttdef"><b>Definition:</b> address.h:730</div></div> <div class="ttc" id="classost_1_1_i_p_v6_cidr_html_a4a1185ddd0accee067006c12f8266569"><div class="ttname"><a href="classost_1_1_i_p_v6_cidr.html#a4a1185ddd0accee067006c12f8266569">ost::IPV6Cidr::operator==</a></div><div class="ttdeci">bool operator==(const struct in6_addr &a) const </div><div class="ttdef"><b>Definition:</b> address.h:330</div></div> <div class="ttc" id="namespaceost_html_a0ef77c2689f8442b3b0d3a0f4d2151e0"><div class="ttname"><a href="namespaceost.html#a0ef77c2689f8442b3b0d3a0f4d2151e0">ost::IPV6Host</a></div><div class="ttdeci">class __EXPORT IPV6Host</div><div class="ttdef"><b>Definition:</b> address.h:681</div></div> <div class="ttc" id="exception_8h_html"><div class="ttname"><a href="exception_8h.html">exception.h</a></div><div class="ttdoc">GNU Common C++ exception model base classes. </div></div> <div class="ttc" id="thread_8h_html"><div class="ttname"><a href="thread_8h.html">thread.h</a></div><div class="ttdoc">Synchronization and threading services. </div></div> <div class="ttc" id="classost_1_1_i_p_v6_address_html_a80df5c80fa1675223d74161278b18649"><div class="ttname"><a href="classost_1_1_i_p_v6_address.html#a80df5c80fa1675223d74161278b18649">ost::IPV6Address::operator!</a></div><div class="ttdeci">bool operator!() const </div><div class="ttdef"><b>Definition:</b> address.h:881</div></div> <div class="ttc" id="classost_1_1_i_p_v6_multicast_validator_html_a96b9828408dc0b9748ebe09069eb4c66"><div class="ttname"><a href="classost_1_1_i_p_v6_multicast_validator.html#a96b9828408dc0b9748ebe09069eb4c66">ost::IPV6MulticastValidator::IPV6MulticastValidator</a></div><div class="ttdeci">IPV6MulticastValidator()</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> address.h:725</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_i_p_v6_address_html_ab34b66044b90b5b045ae924858f2bf2a"><div class="ttname"><a href="classost_1_1_i_p_v6_address.html#ab34b66044b90b5b045ae924858f2bf2a">ost::IPV6Address::addr_count</a></div><div class="ttdeci">size_t addr_count</div><div class="ttdef"><b>Definition:</b> address.h:765</div></div> <div class="ttc" id="namespaceost_html_a690ff5fe11ecacf1b08c88c6d042054c"><div class="ttname"><a href="namespaceost.html#a690ff5fe11ecacf1b08c88c6d042054c">ost::IPV4Host</a></div><div class="ttdeci">class __EXPORT IPV4Host</div><div class="ttdef"><b>Definition:</b> address.h:88</div></div> <div class="ttc" id="classost_1_1_i_p_v4_mask_html_a49ec7fe09dfcc3b9a963e2dc6f1186d4"><div class="ttname"><a href="classost_1_1_i_p_v4_mask.html#a49ec7fe09dfcc3b9a963e2dc6f1186d4">ost::IPV4Mask::operator=</a></div><div class="ttdeci">IPV4Address & operator=(unsigned long addr)</div><div class="ttdoc">Allows assignment from the return of functions like inet_addr() or htonl() </div><div class="ttdef"><b>Definition:</b> address.h:550</div></div> <div class="ttc" id="classost_1_1_i_p_v6_address_html_a469e52373818fea081b0f1df6f57e14c"><div class="ttname"><a href="classost_1_1_i_p_v6_address.html#a469e52373818fea081b0f1df6f57e14c">ost::IPV6Address::hostname</a></div><div class="ttdeci">char * hostname</div><div class="ttdef"><b>Definition:</b> address.h:766</div></div> <div class="ttc" id="classost_1_1_i_p_v6_broadcast_html"><div class="ttname"><a href="classost_1_1_i_p_v6_broadcast.html">ost::IPV6Broadcast</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:988</div></div> <div class="ttc" id="classost_1_1_i_p_v4_address_html_a028f090c2d60034c3cbc4a23efafd356"><div class="ttname"><a href="classost_1_1_i_p_v4_address.html#a028f090c2d60034c3cbc4a23efafd356">ost::IPV4Address::operator!</a></div><div class="ttdeci">bool operator!() const </div><div class="ttdef"><b>Definition:</b> address.h:487</div></div> <div class="ttc" id="classost_1_1_i_p_v6_validator_html_a4a1e7908325409ac55854d76fca64eff"><div class="ttname"><a href="classost_1_1_i_p_v6_validator.html#a4a1e7908325409ac55854d76fca64eff">ost::IPV6Validator::IPV6Validator</a></div><div class="ttdeci">IPV6Validator()</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> address.h:697</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_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_i_p_v4_address_html_a8198f8d8f9fae2de78194fc26c3b44c6"><div class="ttname"><a href="classost_1_1_i_p_v4_address.html#a8198f8d8f9fae2de78194fc26c3b44c6">ost::IPV4Address::operator=</a></div><div class="ttdeci">IPV4Address & operator=(unsigned int addr)</div><div class="ttdef"><b>Definition:</b> address.h:484</div></div> <div class="ttc" id="classost_1_1_i_p_v4_address_html_a3128cf0e2832071593f940717b484e88"><div class="ttname"><a href="classost_1_1_i_p_v4_address.html#a3128cf0e2832071593f940717b484e88">ost::IPV4Address::addr_count</a></div><div class="ttdeci">size_t addr_count</div><div class="ttdef"><b>Definition:</b> address.h:362</div></div> <div class="ttc" id="classost_1_1_i_p_v6_address_html_ac8cda66da211bec64ea6de14c3ad65c8"><div class="ttname"><a href="classost_1_1_i_p_v6_address.html#ac8cda66da211bec64ea6de14c3ad65c8">ost::IPV6Address::getAddressCount</a></div><div class="ttdeci">size_t getAddressCount() const </div><div class="ttdoc">Returns the number of internet addresses that an IPV6Address object contains. </div><div class="ttdef"><b>Definition:</b> address.h:875</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_i_p_v4_cidr_html_a119f377cfa2fba3b7b28cf0a71f03ad5"><div class="ttname"><a href="classost_1_1_i_p_v4_cidr.html#a119f377cfa2fba3b7b28cf0a71f03ad5">ost::IPV4Cidr::operator==</a></div><div class="ttdeci">bool operator==(const struct sockaddr *a) const </div><div class="ttdef"><b>Definition:</b> address.h:239</div></div> <div class="ttc" id="namespaceost_html_a43b65f3c2266eb63ba22c1ff73a6e20b"><div class="ttname"><a href="namespaceost.html#a43b65f3c2266eb63ba22c1ff73a6e20b">ost::operator<<</a></div><div class="ttdeci">__EXPORT std::ostream & operator<<(std::ostream &os, const IPV4Address &ia)</div></div> <div class="ttc" id="classost_1_1_mutex_counter_html"><div class="ttname"><a href="classost_1_1_mutex_counter.html">ost::MutexCounter</a></div><div class="ttdoc">The Mutex Counter is a counter variable which can safely be incremented or decremented by multiple th...</div><div class="ttdef"><b>Definition:</b> thread.h:499</div></div> <div class="ttc" id="classost_1_1_i_p_v4_address_html_a4437ba1e6bde3e8252df8a1a591ecfe5"><div class="ttname"><a href="classost_1_1_i_p_v4_address.html#a4437ba1e6bde3e8252df8a1a591ecfe5">ost::IPV4Address::ipaddr</a></div><div class="ttdeci">struct in_addr * ipaddr</div><div class="ttdef"><b>Definition:</b> address.h:361</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_i_p_v6_validator_html"><div class="ttname"><a href="classost_1_1_i_p_v6_validator.html">ost::IPV6Validator</a></div><div class="ttdoc">Classes derived from IPV6Address would require an specific validator to pass to the IPV6Address const...</div><div class="ttdef"><b>Definition:</b> address.h:691</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="address_8h_html_ad4c483e6c7e2ae177b22e72f690cda72"><div class="ttname"><a href="address_8h.html#ad4c483e6c7e2ae177b22e72f690cda72">InetAddrValidator</a></div><div class="ttdeci">#define InetAddrValidator</div><div class="ttdef"><b>Definition:</b> address.h:80</div></div> <div class="ttc" id="classost_1_1_i_p_v4_validator_html_a521d077f3f97da572ce32f354cfe61e6"><div class="ttname"><a href="classost_1_1_i_p_v4_validator.html#a521d077f3f97da572ce32f354cfe61e6">ost::IPV4Validator::~IPV4Validator</a></div><div class="ttdeci">virtual ~IPV4Validator()</div><div class="ttdoc">keeps compilers happy. </div><div class="ttdef"><b>Definition:</b> address.h:109</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_i_p_v4_multicast_validator_html_a26c914ca299df67b4c95ddc135470cde"><div class="ttname"><a href="classost_1_1_i_p_v4_multicast_validator.html#a26c914ca299df67b4c95ddc135470cde">ost::IPV4MulticastValidator::~IPV4MulticastValidator</a></div><div class="ttdeci">virtual ~IPV4MulticastValidator()</div><div class="ttdoc">Keeps compilers happy. </div><div class="ttdef"><b>Definition:</b> address.h:138</div></div> <div class="ttc" id="classost_1_1_i_p_v6_multicast_validator_html"><div class="ttname"><a href="classost_1_1_i_p_v6_multicast_validator.html">ost::IPV6MulticastValidator</a></div><div class="ttdoc">Class for the function object that validates multicast addresses. </div><div class="ttdef"><b>Definition:</b> address.h:719</div></div> <div class="ttc" id="classost_1_1_i_p_v4_multicast_validator_html"><div class="ttname"><a href="classost_1_1_i_p_v4_multicast_validator.html">ost::IPV4MulticastValidator</a></div><div class="ttdoc">Class for the function object that validates multicast addresses. </div><div class="ttdef"><b>Definition:</b> address.h:127</div></div> <div class="ttc" id="classost_1_1_i_p_v4_mask_html"><div class="ttname"><a href="classost_1_1_i_p_v4_mask.html">ost::IPV4Mask</a></div><div class="ttdoc">Internet addresses used specifically as masking addresses (such as &quot; 255.255.255.0&quot;) are held in the ...</div><div class="ttdef"><b>Definition:</b> address.h:522</div></div> </div><!-- fragment --></div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Thu Oct 17 2013 23:24:56 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>