]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - docs/module-doc/classInspSocket.html
Added new module docs
[user/henk/code/inspircd.git] / docs / module-doc / classInspSocket.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3 <title>InspIRCd: InspSocket Class Reference</title>
4 <link href="inspircd.doxygen.css" rel="stylesheet" type="text/css">
5 </head><body>
6 <!-- Generated by Doxygen 1.4.4-20050815 -->
7 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
8 <h1>InspSocket Class Reference</h1><!-- doxytag: class="InspSocket" --><code>#include &lt;<a class="el" href="socket_8h-source.html">socket.h</a>&gt;</code>
9 <p>
10 Collaboration diagram for InspSocket:<p><center><img src="classInspSocket__coll__graph.gif" border="0" usemap="#InspSocket__coll__map" alt="Collaboration graph"></center>
11 <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center><a href="classInspSocket-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
12 <tr><td></td></tr>
13 <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
14 <tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#InspSocket_28_29">InspSocket</a> ()</td></tr>
15
16 <tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#InspSocket_28int_20newfd_2C_20char_20_2Aip_29">InspSocket</a> (int newfd, char *ip)</td></tr>
17
18 <tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#InspSocket_28std_3A_3Astring_20host_2C_20int_20port_2C_20bool_20listening_2C_20unsigned_20long_20maxtime_29">InspSocket</a> (<a class="el" href="namespaceirc.html#string">std::string</a> <a class="el" href="classInspSocket.html#host">host</a>, int <a class="el" href="classInspSocket.html#port">port</a>, bool listening, unsigned long maxtime)</td></tr>
19
20 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#OnConnected_28_29">OnConnected</a> ()</td></tr>
21
22 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#OnError_28InspSocketError_20e_29">OnError</a> (<a class="el" href="socket_8h.html#InspSocketError">InspSocketError</a> e)</td></tr>
23
24 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#OnDisconnect_28_29">OnDisconnect</a> ()</td></tr>
25
26 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#OnDataReady_28_29">OnDataReady</a> ()</td></tr>
27
28 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#OnTimeout_28_29">OnTimeout</a> ()</td></tr>
29
30 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#OnClose_28_29">OnClose</a> ()</td></tr>
31
32 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#Read_28_29">Read</a> ()</td></tr>
33
34 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="namespaceirc.html#string">std::string</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#GetIP_28_29">GetIP</a> ()</td></tr>
35
36 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#Write_28std_3A_3Astring_20data_29">Write</a> (<a class="el" href="namespaceirc.html#string">std::string</a> data)</td></tr>
37
38 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#OnIncomingConnection_28int_20newfd_2C_20char_20_2Aip_29">OnIncomingConnection</a> (int newfd, char *ip)</td></tr>
39
40 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#SetState_28InspSocketState_20s_29">SetState</a> (<a class="el" href="socket_8h.html#InspSocketState">InspSocketState</a> s)</td></tr>
41
42 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="socket_8h.html#InspSocketState">InspSocketState</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#GetState_28_29">GetState</a> ()</td></tr>
43
44 <tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#Poll_28_29">Poll</a> ()</td></tr>
45
46 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#Close_28_29">Close</a> ()</td></tr>
47
48 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#_7EInspSocket_28_29">~InspSocket</a> ()</td></tr>
49
50 <tr><td colspan="2"><br><h2>Private Attributes</h2></td></tr>
51 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#fd">fd</a></td></tr>
52
53 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="namespaceirc.html#string">std::string</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#host">host</a></td></tr>
54
55 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#port">port</a></td></tr>
56
57 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="socket_8h.html#InspSocketState">InspSocketState</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#state">state</a></td></tr>
58
59 <tr><td class="memItemLeft" nowrap align="right" valign="top">sockaddr_in&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#addr">addr</a></td></tr>
60
61 <tr><td class="memItemLeft" nowrap align="right" valign="top">in_addr&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#addy">addy</a></td></tr>
62
63 <tr><td class="memItemLeft" nowrap align="right" valign="top">time_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#timeout_5Fend">timeout_end</a></td></tr>
64
65 <tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#timeout">timeout</a></td></tr>
66
67 <tr><td class="memItemLeft" nowrap align="right" valign="top">pollfd&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#polls">polls</a></td></tr>
68
69 <tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#ibuf_5B_31_36_33_38_34_5D">ibuf</a> [16384]</td></tr>
70
71 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="namespaceirc.html#string">std::string</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#IP">IP</a></td></tr>
72
73 <tr><td class="memItemLeft" nowrap align="right" valign="top">sockaddr_in&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#client">client</a></td></tr>
74
75 <tr><td class="memItemLeft" nowrap align="right" valign="top">sockaddr_in&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#server">server</a></td></tr>
76
77 <tr><td class="memItemLeft" nowrap align="right" valign="top">socklen_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#length">length</a></td></tr>
78
79 </table>
80 <hr><a name="_details"></a><h2>Detailed Description</h2>
81
82 <p>
83
84 <p>
85 Definition at line <a class="el" href="socket_8h-source.html#l00030">30</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
86 <a class="anchor" name="InspSocket_28_29"></a><!-- doxytag: member="InspSocket::InspSocket" ref="InspSocket_28_29" args="()" --><p>
87 <table class="mdTable" cellpadding="2" cellspacing="0">
88   <tr>
89     <td class="mdRow">
90       <table cellpadding="0" cellspacing="0" border="0">
91         <tr>
92           <td class="md" nowrap valign="top">InspSocket::InspSocket           </td>
93           <td class="md" valign="top">(&nbsp;</td>
94           <td class="mdname1" valign="top" nowrap>          </td>
95           <td class="md" valign="top">&nbsp;)&nbsp;</td>
96           <td class="md" nowrap></td>
97         </tr>
98       </table>
99     </td>
100   </tr>
101 </table>
102 <table cellspacing="5" cellpadding="0" border="0">
103   <tr>
104     <td>
105       &nbsp;
106     </td>
107     <td>
108
109 <p>
110
111 <p>
112 Definition at line <a class="el" href="socket_8cpp-source.html#l00046">46</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
113 <p>
114 References <a class="el" href="socket_8h.html#InspSocketStateI_5FDISCONNECTED">I_DISCONNECTED</a>, and <a class="el" href="socket_8h-source.html#l00036">state</a>.<div class="fragment"><pre class="fragment"><a name="l00047"></a>00047 {
115 <a name="l00048"></a>00048         this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FDISCONNECTED">I_DISCONNECTED</a>;
116 <a name="l00049"></a>00049 }
117 </pre></div>
118 <p>
119     </td>
120   </tr>
121 </table>
122 <a class="anchor" name="InspSocket_28int_20newfd_2C_20char_20_2Aip_29"></a><!-- doxytag: member="InspSocket::InspSocket" ref="InspSocket_28int_20newfd_2C_20char_20_2Aip_29" args="(int newfd, char *ip)" --><p>
123 <table class="mdTable" cellpadding="2" cellspacing="0">
124   <tr>
125     <td class="mdRow">
126       <table cellpadding="0" cellspacing="0" border="0">
127         <tr>
128           <td class="md" nowrap valign="top">InspSocket::InspSocket           </td>
129           <td class="md" valign="top">(&nbsp;</td>
130           <td class="md" nowrap valign="top">int&nbsp;</td>
131           <td class="mdname" nowrap> <em>newfd</em>, </td>
132         </tr>
133         <tr>
134           <td class="md" nowrap align="right"></td>
135           <td class="md"></td>
136           <td class="md" nowrap>char *&nbsp;</td>
137           <td class="mdname" nowrap> <em>ip</em></td>
138         </tr>
139         <tr>
140           <td class="md"></td>
141           <td class="md">)&nbsp;</td>
142           <td class="md" colspan="2"></td>
143         </tr>
144       </table>
145     </td>
146   </tr>
147 </table>
148 <table cellspacing="5" cellpadding="0" border="0">
149   <tr>
150     <td>
151       &nbsp;
152     </td>
153     <td>
154
155 <p>
156
157 <p>
158 Definition at line <a class="el" href="socket_8cpp-source.html#l00051">51</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
159 <p>
160 References <a class="el" href="socket_8h-source.html#l00033">fd</a>, <a class="el" href="socket_8h.html#InspSocketStateI_5FCONNECTED">I_CONNECTED</a>, <a class="el" href="socket_8h-source.html#l00043">IP</a>, and <a class="el" href="socket_8h-source.html#l00036">state</a>.<div class="fragment"><pre class="fragment"><a name="l00052"></a>00052 {
161 <a name="l00053"></a>00053         this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a> = newfd;
162 <a name="l00054"></a>00054         this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FCONNECTED">I_CONNECTED</a>;
163 <a name="l00055"></a>00055         this-&gt;<a class="code" href="classInspSocket.html#IP">IP</a> = ip;
164 <a name="l00056"></a>00056 }
165 </pre></div>
166 <p>
167     </td>
168   </tr>
169 </table>
170 <a class="anchor" name="InspSocket_28std_3A_3Astring_20host_2C_20int_20port_2C_20bool_20listening_2C_20unsigned_20long_20maxtime_29"></a><!-- doxytag: member="InspSocket::InspSocket" ref="InspSocket_28std_3A_3Astring_20host_2C_20int_20port_2C_20bool_20listening_2C_20unsigned_20long_20maxtime_29" args="(std::string host, int port, bool listening, unsigned long maxtime)" --><p>
171 <table class="mdTable" cellpadding="2" cellspacing="0">
172   <tr>
173     <td class="mdRow">
174       <table cellpadding="0" cellspacing="0" border="0">
175         <tr>
176           <td class="md" nowrap valign="top">InspSocket::InspSocket           </td>
177           <td class="md" valign="top">(&nbsp;</td>
178           <td class="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">std::string</a>&nbsp;</td>
179           <td class="mdname" nowrap> <em>host</em>, </td>
180         </tr>
181         <tr>
182           <td class="md" nowrap align="right"></td>
183           <td class="md"></td>
184           <td class="md" nowrap>int&nbsp;</td>
185           <td class="mdname" nowrap> <em>port</em>, </td>
186         </tr>
187         <tr>
188           <td class="md" nowrap align="right"></td>
189           <td class="md"></td>
190           <td class="md" nowrap>bool&nbsp;</td>
191           <td class="mdname" nowrap> <em>listening</em>, </td>
192         </tr>
193         <tr>
194           <td class="md" nowrap align="right"></td>
195           <td class="md"></td>
196           <td class="md" nowrap>unsigned long&nbsp;</td>
197           <td class="mdname" nowrap> <em>maxtime</em></td>
198         </tr>
199         <tr>
200           <td class="md"></td>
201           <td class="md">)&nbsp;</td>
202           <td class="md" colspan="2"></td>
203         </tr>
204       </table>
205     </td>
206   </tr>
207 </table>
208 <table cellspacing="5" cellpadding="0" border="0">
209   <tr>
210     <td>
211       &nbsp;
212     </td>
213     <td>
214
215 <p>
216
217 <p>
218 Definition at line <a class="el" href="socket_8cpp-source.html#l00058">58</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
219 <p>
220 References <a class="el" href="socket_8h-source.html#l00037">addr</a>, <a class="el" href="socket_8h-source.html#l00038">addy</a>, <a class="el" href="socket_8cpp-source.html#l00133">Close()</a>, <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>, <a class="el" href="socket_8h-source.html#l00033">fd</a>, <a class="el" href="socket_8h.html#InspSocketStateI_5FCONNECTING">I_CONNECTING</a>, <a class="el" href="socket_8h.html#InspSocketErrorI_5FERR_5FBIND">I_ERR_BIND</a>, <a class="el" href="socket_8h.html#InspSocketErrorI_5FERR_5FCONNECT">I_ERR_CONNECT</a>, <a class="el" href="socket_8h.html#InspSocketErrorI_5FERR_5FSOCKET">I_ERR_SOCKET</a>, <a class="el" href="socket_8h.html#InspSocketStateI_5FERROR">I_ERROR</a>, <a class="el" href="socket_8h.html#InspSocketStateI_5FLISTENING">I_LISTENING</a>, <a class="el" href="socket_8h-source.html#l00043">IP</a>, <a class="el" href="socket_8cpp-source.html#l00247">OnError()</a>, <a class="el" href="socket_8h-source.html#l00036">state</a>, <a class="el" href="socket_8h-source.html#l00040">timeout</a>, and <a class="el" href="socket_8h-source.html#l00039">timeout_end</a>.<div class="fragment"><pre class="fragment"><a name="l00059"></a>00059 {
221 <a name="l00060"></a>00060         <span class="keywordflow">if</span> (listening) {
222 <a name="l00061"></a>00061                 <span class="keywordflow">if</span> ((this-&gt;fd = OpenTCPSocket()) == ERROR)
223 <a name="l00062"></a>00062                 {
224 <a name="l00063"></a>00063                         this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a> = -1;
225 <a name="l00064"></a>00064                         this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FERROR">I_ERROR</a>;
226 <a name="l00065"></a>00065                         this-&gt;<a class="code" href="classInspSocket.html#OnError_28InspSocketError_20e_29">OnError</a>(<a class="code" href="socket_8h.html#InspSocketErrorI_5FERR_5FSOCKET">I_ERR_SOCKET</a>);
227 <a name="l00066"></a>00066                         log(<a class="code" href="modules_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"OpenTCPSocket() error"</span>);
228 <a name="l00067"></a>00067                         <span class="keywordflow">return</span>;
229 <a name="l00068"></a>00068                 }
230 <a name="l00069"></a>00069                 <span class="keywordflow">else</span>
231 <a name="l00070"></a>00070                 {
232 <a name="l00071"></a>00071                         <span class="keywordflow">if</span> (BindSocket(this-&gt;fd,this-&gt;client,this-&gt;server,<a class="code" href="classInspSocket.html#port">port</a>,(<span class="keywordtype">char</span>*)<a class="code" href="classInspSocket.html#host">host</a>.c_str()) == ERROR)
233 <a name="l00072"></a>00072                         {
234 <a name="l00073"></a>00073                                 this-&gt;<a class="code" href="classInspSocket.html#Close_28_29">Close</a>();
235 <a name="l00074"></a>00074                                 this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a> = -1;
236 <a name="l00075"></a>00075                                 this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FERROR">I_ERROR</a>;
237 <a name="l00076"></a>00076                                 this-&gt;<a class="code" href="classInspSocket.html#OnError_28InspSocketError_20e_29">OnError</a>(<a class="code" href="socket_8h.html#InspSocketErrorI_5FERR_5FBIND">I_ERR_BIND</a>);
238 <a name="l00077"></a>00077                                 log(<a class="code" href="modules_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"BindSocket() error %s"</span>,strerror(errno));
239 <a name="l00078"></a>00078                                 <span class="keywordflow">return</span>;
240 <a name="l00079"></a>00079                         }
241 <a name="l00080"></a>00080                         <span class="keywordflow">else</span>
242 <a name="l00081"></a>00081                         {
243 <a name="l00082"></a>00082                                 this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FLISTENING">I_LISTENING</a>;
244 <a name="l00083"></a>00083                                 log(<a class="code" href="modules_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"New socket now in I_LISTENING state"</span>);
245 <a name="l00084"></a>00084                                 <span class="keywordflow">return</span>;
246 <a name="l00085"></a>00085                         }
247 <a name="l00086"></a>00086                 }                       
248 <a name="l00087"></a>00087         } <span class="keywordflow">else</span> {
249 <a name="l00088"></a>00088                 <span class="keywordtype">char</span>* ip;
250 <a name="l00089"></a>00089                 this-&gt;<a class="code" href="classInspSocket.html#host">host</a> = <a class="code" href="classInspSocket.html#host">host</a>;
251 <a name="l00090"></a>00090                 hostent* hoste = gethostbyname(<a class="code" href="classInspSocket.html#host">host</a>.c_str());
252 <a name="l00091"></a>00091                 <span class="keywordflow">if</span> (!hoste) {
253 <a name="l00092"></a>00092                         ip = (<span class="keywordtype">char</span>*)<a class="code" href="classInspSocket.html#host">host</a>.c_str();
254 <a name="l00093"></a>00093                 } <span class="keywordflow">else</span> {
255 <a name="l00094"></a>00094                         <span class="keyword">struct </span>in_addr* ia = (in_addr*)hoste-&gt;h_addr;
256 <a name="l00095"></a>00095                         ip = inet_ntoa(*ia);
257 <a name="l00096"></a>00096                 }
258 <a name="l00097"></a>00097 
259 <a name="l00098"></a>00098                 this-&gt;<a class="code" href="classInspSocket.html#IP">IP</a> = ip;
260 <a name="l00099"></a>00099 
261 <a name="l00100"></a>00100                 <a class="code" href="classInspSocket.html#timeout_5Fend">timeout_end</a> = time(NULL)+maxtime;
262 <a name="l00101"></a>00101                 <a class="code" href="classInspSocket.html#timeout">timeout</a> = <span class="keyword">false</span>;
263 <a name="l00102"></a>00102                 <span class="keywordflow">if</span> ((this-&gt;fd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
264 <a name="l00103"></a>00103                 {
265 <a name="l00104"></a>00104                         this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FERROR">I_ERROR</a>;
266 <a name="l00105"></a>00105                         this-&gt;<a class="code" href="classInspSocket.html#OnError_28InspSocketError_20e_29">OnError</a>(<a class="code" href="socket_8h.html#InspSocketErrorI_5FERR_5FSOCKET">I_ERR_SOCKET</a>);
267 <a name="l00106"></a>00106                         <span class="keywordflow">return</span>;
268 <a name="l00107"></a>00107                 }
269 <a name="l00108"></a>00108                 this-&gt;<a class="code" href="classInspSocket.html#port">port</a> = <a class="code" href="classInspSocket.html#port">port</a>;
270 <a name="l00109"></a>00109                 inet_aton(ip,&amp;<a class="code" href="classInspSocket.html#addy">addy</a>);
271 <a name="l00110"></a>00110                 <a class="code" href="classInspSocket.html#addr">addr</a>.sin_family = AF_INET;
272 <a name="l00111"></a>00111                 <a class="code" href="classInspSocket.html#addr">addr</a>.sin_addr = <a class="code" href="classInspSocket.html#addy">addy</a>;
273 <a name="l00112"></a>00112                 <a class="code" href="classInspSocket.html#addr">addr</a>.sin_port = htons(this-&gt;port);
274 <a name="l00113"></a>00113 
275 <a name="l00114"></a>00114                 <span class="keywordtype">int</span> flags;
276 <a name="l00115"></a>00115                 flags = fcntl(this-&gt;fd, F_GETFL, 0);
277 <a name="l00116"></a>00116                 fcntl(this-&gt;fd, F_SETFL, flags | O_NONBLOCK);
278 <a name="l00117"></a>00117 
279 <a name="l00118"></a>00118                 <span class="keywordflow">if</span>(connect(this-&gt;fd, (sockaddr*)&amp;this-&gt;addr,<span class="keyword">sizeof</span>(this-&gt;addr)) == -1)
280 <a name="l00119"></a>00119                 {
281 <a name="l00120"></a>00120                         <span class="keywordflow">if</span> (errno != EINPROGRESS)
282 <a name="l00121"></a>00121                         {
283 <a name="l00122"></a>00122                                 this-&gt;<a class="code" href="classInspSocket.html#Close_28_29">Close</a>();
284 <a name="l00123"></a>00123                                 this-&gt;<a class="code" href="classInspSocket.html#OnError_28InspSocketError_20e_29">OnError</a>(<a class="code" href="socket_8h.html#InspSocketErrorI_5FERR_5FCONNECT">I_ERR_CONNECT</a>);
285 <a name="l00124"></a>00124                                 this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FERROR">I_ERROR</a>;
286 <a name="l00125"></a>00125                                 <span class="keywordflow">return</span>;
287 <a name="l00126"></a>00126                         }
288 <a name="l00127"></a>00127                 }
289 <a name="l00128"></a>00128                 this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FCONNECTING">I_CONNECTING</a>;
290 <a name="l00129"></a>00129                 <span class="keywordflow">return</span>;
291 <a name="l00130"></a>00130         }
292 <a name="l00131"></a>00131 }
293 </pre></div>
294 <p>
295     </td>
296   </tr>
297 </table>
298 <a class="anchor" name="_7EInspSocket_28_29"></a><!-- doxytag: member="InspSocket::~InspSocket" ref="_7EInspSocket_28_29" args="()" --><p>
299 <table class="mdTable" cellpadding="2" cellspacing="0">
300   <tr>
301     <td class="mdRow">
302       <table cellpadding="0" cellspacing="0" border="0">
303         <tr>
304           <td class="md" nowrap valign="top">InspSocket::~InspSocket           </td>
305           <td class="md" valign="top">(&nbsp;</td>
306           <td class="mdname1" valign="top" nowrap>          </td>
307           <td class="md" valign="top">&nbsp;)&nbsp;</td>
308           <td class="md" nowrap><code> [virtual]</code></td>
309         </tr>
310       </table>
311     </td>
312   </tr>
313 </table>
314 <table cellspacing="5" cellpadding="0" border="0">
315   <tr>
316     <td>
317       &nbsp;
318     </td>
319     <td>
320
321 <p>
322
323 <p>
324 Definition at line <a class="el" href="socket_8cpp-source.html#l00254">254</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
325 <p>
326 References <a class="el" href="socket_8cpp-source.html#l00133">Close()</a>.<div class="fragment"><pre class="fragment"><a name="l00255"></a>00255 {
327 <a name="l00256"></a>00256         this-&gt;<a class="code" href="classInspSocket.html#Close_28_29">Close</a>();
328 <a name="l00257"></a>00257 }
329 </pre></div>
330 <p>
331     </td>
332   </tr>
333 </table>
334 <hr><h2>Member Function Documentation</h2>
335 <a class="anchor" name="Close_28_29"></a><!-- doxytag: member="InspSocket::Close" ref="Close_28_29" args="()" --><p>
336 <table class="mdTable" cellpadding="2" cellspacing="0">
337   <tr>
338     <td class="mdRow">
339       <table cellpadding="0" cellspacing="0" border="0">
340         <tr>
341           <td class="md" nowrap valign="top">void InspSocket::Close           </td>
342           <td class="md" valign="top">(&nbsp;</td>
343           <td class="mdname1" valign="top" nowrap>          </td>
344           <td class="md" valign="top">&nbsp;)&nbsp;</td>
345           <td class="md" nowrap><code> [virtual]</code></td>
346         </tr>
347       </table>
348     </td>
349   </tr>
350 </table>
351 <table cellspacing="5" cellpadding="0" border="0">
352   <tr>
353     <td>
354       &nbsp;
355     </td>
356     <td>
357
358 <p>
359
360 <p>
361 Definition at line <a class="el" href="socket_8cpp-source.html#l00133">133</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
362 <p>
363 References <a class="el" href="socket_8h-source.html#l00033">fd</a>, and <a class="el" href="socket_8cpp-source.html#l00252">OnClose()</a>.
364 <p>
365 Referenced by <a class="el" href="socket_8cpp-source.html#l00058">InspSocket()</a>, and <a class="el" href="socket_8cpp-source.html#l00254">~InspSocket()</a>.<div class="fragment"><pre class="fragment"><a name="l00134"></a>00134 {
366 <a name="l00135"></a>00135         <span class="keywordflow">if</span> (this-&gt;fd != -1)
367 <a name="l00136"></a>00136         {
368 <a name="l00137"></a>00137                 this-&gt;<a class="code" href="classInspSocket.html#OnClose_28_29">OnClose</a>();
369 <a name="l00138"></a>00138                 shutdown(this-&gt;fd,2);
370 <a name="l00139"></a>00139                 close(this-&gt;fd);
371 <a name="l00140"></a>00140                 this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a> = -1;
372 <a name="l00141"></a>00141         }
373 <a name="l00142"></a>00142 }
374 </pre></div>
375 <p>
376     </td>
377   </tr>
378 </table>
379 <a class="anchor" name="GetIP_28_29"></a><!-- doxytag: member="InspSocket::GetIP" ref="GetIP_28_29" args="()" --><p>
380 <table class="mdTable" cellpadding="2" cellspacing="0">
381   <tr>
382     <td class="mdRow">
383       <table cellpadding="0" cellspacing="0" border="0">
384         <tr>
385           <td class="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">std::string</a> InspSocket::GetIP           </td>
386           <td class="md" valign="top">(&nbsp;</td>
387           <td class="mdname1" valign="top" nowrap>          </td>
388           <td class="md" valign="top">&nbsp;)&nbsp;</td>
389           <td class="md" nowrap></td>
390         </tr>
391       </table>
392     </td>
393   </tr>
394 </table>
395 <table cellspacing="5" cellpadding="0" border="0">
396   <tr>
397     <td>
398       &nbsp;
399     </td>
400     <td>
401
402 <p>
403
404 <p>
405 Definition at line <a class="el" href="socket_8cpp-source.html#l00144">144</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
406 <p>
407 References <a class="el" href="socket_8h-source.html#l00043">IP</a>.<div class="fragment"><pre class="fragment"><a name="l00145"></a>00145 {
408 <a name="l00146"></a>00146         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classInspSocket.html#IP">IP</a>;
409 <a name="l00147"></a>00147 }
410 </pre></div>
411 <p>
412     </td>
413   </tr>
414 </table>
415 <a class="anchor" name="GetState_28_29"></a><!-- doxytag: member="InspSocket::GetState" ref="GetState_28_29" args="()" --><p>
416 <table class="mdTable" cellpadding="2" cellspacing="0">
417   <tr>
418     <td class="mdRow">
419       <table cellpadding="0" cellspacing="0" border="0">
420         <tr>
421           <td class="md" nowrap valign="top"><a class="el" href="socket_8h.html#InspSocketState">InspSocketState</a> InspSocket::GetState           </td>
422           <td class="md" valign="top">(&nbsp;</td>
423           <td class="mdname1" valign="top" nowrap>          </td>
424           <td class="md" valign="top">&nbsp;)&nbsp;</td>
425           <td class="md" nowrap></td>
426         </tr>
427       </table>
428     </td>
429   </tr>
430 </table>
431 <table cellspacing="5" cellpadding="0" border="0">
432   <tr>
433     <td>
434       &nbsp;
435     </td>
436     <td>
437
438 <p>
439
440 <p>
441 Definition at line <a class="el" href="socket_8cpp-source.html#l00241">241</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
442 <p>
443 References <a class="el" href="socket_8h-source.html#l00036">state</a>.<div class="fragment"><pre class="fragment"><a name="l00242"></a>00242 {
444 <a name="l00243"></a>00243         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classInspSocket.html#state">state</a>;
445 <a name="l00244"></a>00244 }
446 </pre></div>
447 <p>
448     </td>
449   </tr>
450 </table>
451 <a class="anchor" name="OnClose_28_29"></a><!-- doxytag: member="InspSocket::OnClose" ref="OnClose_28_29" args="()" --><p>
452 <table class="mdTable" cellpadding="2" cellspacing="0">
453   <tr>
454     <td class="mdRow">
455       <table cellpadding="0" cellspacing="0" border="0">
456         <tr>
457           <td class="md" nowrap valign="top">void InspSocket::OnClose           </td>
458           <td class="md" valign="top">(&nbsp;</td>
459           <td class="mdname1" valign="top" nowrap>          </td>
460           <td class="md" valign="top">&nbsp;)&nbsp;</td>
461           <td class="md" nowrap><code> [virtual]</code></td>
462         </tr>
463       </table>
464     </td>
465   </tr>
466 </table>
467 <table cellspacing="5" cellpadding="0" border="0">
468   <tr>
469     <td>
470       &nbsp;
471     </td>
472     <td>
473
474 <p>
475
476 <p>
477 Definition at line <a class="el" href="socket_8cpp-source.html#l00252">252</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
478 <p>
479 Referenced by <a class="el" href="socket_8cpp-source.html#l00133">Close()</a>.<div class="fragment"><pre class="fragment"><a name="l00252"></a>00252 { <span class="keywordflow">return</span>; }
480 </pre></div>
481 <p>
482     </td>
483   </tr>
484 </table>
485 <a class="anchor" name="OnConnected_28_29"></a><!-- doxytag: member="InspSocket::OnConnected" ref="OnConnected_28_29" args="()" --><p>
486 <table class="mdTable" cellpadding="2" cellspacing="0">
487   <tr>
488     <td class="mdRow">
489       <table cellpadding="0" cellspacing="0" border="0">
490         <tr>
491           <td class="md" nowrap valign="top">bool InspSocket::OnConnected           </td>
492           <td class="md" valign="top">(&nbsp;</td>
493           <td class="mdname1" valign="top" nowrap>          </td>
494           <td class="md" valign="top">&nbsp;)&nbsp;</td>
495           <td class="md" nowrap><code> [virtual]</code></td>
496         </tr>
497       </table>
498     </td>
499   </tr>
500 </table>
501 <table cellspacing="5" cellpadding="0" border="0">
502   <tr>
503     <td>
504       &nbsp;
505     </td>
506     <td>
507
508 <p>
509
510 <p>
511 Definition at line <a class="el" href="socket_8cpp-source.html#l00246">246</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
512 <p>
513 Referenced by <a class="el" href="socket_8cpp-source.html#l00191">Poll()</a>.<div class="fragment"><pre class="fragment"><a name="l00246"></a>00246 { <span class="keywordflow">return</span> <span class="keyword">true</span>; }
514 </pre></div>
515 <p>
516     </td>
517   </tr>
518 </table>
519 <a class="anchor" name="OnDataReady_28_29"></a><!-- doxytag: member="InspSocket::OnDataReady" ref="OnDataReady_28_29" args="()" --><p>
520 <table class="mdTable" cellpadding="2" cellspacing="0">
521   <tr>
522     <td class="mdRow">
523       <table cellpadding="0" cellspacing="0" border="0">
524         <tr>
525           <td class="md" nowrap valign="top">bool InspSocket::OnDataReady           </td>
526           <td class="md" valign="top">(&nbsp;</td>
527           <td class="mdname1" valign="top" nowrap>          </td>
528           <td class="md" valign="top">&nbsp;)&nbsp;</td>
529           <td class="md" nowrap><code> [virtual]</code></td>
530         </tr>
531       </table>
532     </td>
533   </tr>
534 </table>
535 <table cellspacing="5" cellpadding="0" border="0">
536   <tr>
537     <td>
538       &nbsp;
539     </td>
540     <td>
541
542 <p>
543
544 <p>
545 Definition at line <a class="el" href="socket_8cpp-source.html#l00250">250</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
546 <p>
547 Referenced by <a class="el" href="socket_8cpp-source.html#l00191">Poll()</a>.<div class="fragment"><pre class="fragment"><a name="l00250"></a>00250 { <span class="keywordflow">return</span> <span class="keyword">true</span>; }
548 </pre></div>
549 <p>
550     </td>
551   </tr>
552 </table>
553 <a class="anchor" name="OnDisconnect_28_29"></a><!-- doxytag: member="InspSocket::OnDisconnect" ref="OnDisconnect_28_29" args="()" --><p>
554 <table class="mdTable" cellpadding="2" cellspacing="0">
555   <tr>
556     <td class="mdRow">
557       <table cellpadding="0" cellspacing="0" border="0">
558         <tr>
559           <td class="md" nowrap valign="top">int InspSocket::OnDisconnect           </td>
560           <td class="md" valign="top">(&nbsp;</td>
561           <td class="mdname1" valign="top" nowrap>          </td>
562           <td class="md" valign="top">&nbsp;)&nbsp;</td>
563           <td class="md" nowrap><code> [virtual]</code></td>
564         </tr>
565       </table>
566     </td>
567   </tr>
568 </table>
569 <table cellspacing="5" cellpadding="0" border="0">
570   <tr>
571     <td>
572       &nbsp;
573     </td>
574     <td>
575
576 <p>
577
578 <p>
579 Definition at line <a class="el" href="socket_8cpp-source.html#l00248">248</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00248"></a>00248 { <span class="keywordflow">return</span> 0; }
580 </pre></div>
581 <p>
582     </td>
583   </tr>
584 </table>
585 <a class="anchor" name="OnError_28InspSocketError_20e_29"></a><!-- doxytag: member="InspSocket::OnError" ref="OnError_28InspSocketError_20e_29" args="(InspSocketError e)" --><p>
586 <table class="mdTable" cellpadding="2" cellspacing="0">
587   <tr>
588     <td class="mdRow">
589       <table cellpadding="0" cellspacing="0" border="0">
590         <tr>
591           <td class="md" nowrap valign="top">void InspSocket::OnError           </td>
592           <td class="md" valign="top">(&nbsp;</td>
593           <td class="md" nowrap valign="top"><a class="el" href="socket_8h.html#InspSocketError">InspSocketError</a>&nbsp;</td>
594           <td class="mdname1" valign="top" nowrap> <em>e</em>          </td>
595           <td class="md" valign="top">&nbsp;)&nbsp;</td>
596           <td class="md" nowrap><code> [virtual]</code></td>
597         </tr>
598       </table>
599     </td>
600   </tr>
601 </table>
602 <table cellspacing="5" cellpadding="0" border="0">
603   <tr>
604     <td>
605       &nbsp;
606     </td>
607     <td>
608
609 <p>
610
611 <p>
612 Definition at line <a class="el" href="socket_8cpp-source.html#l00247">247</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
613 <p>
614 Referenced by <a class="el" href="socket_8cpp-source.html#l00058">InspSocket()</a>, and <a class="el" href="socket_8cpp-source.html#l00191">Poll()</a>.<div class="fragment"><pre class="fragment"><a name="l00247"></a>00247 { <span class="keywordflow">return</span>; }
615 </pre></div>
616 <p>
617     </td>
618   </tr>
619 </table>
620 <a class="anchor" name="OnIncomingConnection_28int_20newfd_2C_20char_20_2Aip_29"></a><!-- doxytag: member="InspSocket::OnIncomingConnection" ref="OnIncomingConnection_28int_20newfd_2C_20char_20_2Aip_29" args="(int newfd, char *ip)" --><p>
621 <table class="mdTable" cellpadding="2" cellspacing="0">
622   <tr>
623     <td class="mdRow">
624       <table cellpadding="0" cellspacing="0" border="0">
625         <tr>
626           <td class="md" nowrap valign="top">int InspSocket::OnIncomingConnection           </td>
627           <td class="md" valign="top">(&nbsp;</td>
628           <td class="md" nowrap valign="top">int&nbsp;</td>
629           <td class="mdname" nowrap> <em>newfd</em>, </td>
630         </tr>
631         <tr>
632           <td class="md" nowrap align="right"></td>
633           <td class="md"></td>
634           <td class="md" nowrap>char *&nbsp;</td>
635           <td class="mdname" nowrap> <em>ip</em></td>
636         </tr>
637         <tr>
638           <td class="md"></td>
639           <td class="md">)&nbsp;</td>
640           <td class="md" colspan="2"><code> [virtual]</code></td>
641         </tr>
642       </table>
643     </td>
644   </tr>
645 </table>
646 <table cellspacing="5" cellpadding="0" border="0">
647   <tr>
648     <td>
649       &nbsp;
650     </td>
651     <td>
652
653 <p>
654
655 <p>
656 Definition at line <a class="el" href="socket_8cpp-source.html#l00249">249</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
657 <p>
658 Referenced by <a class="el" href="socket_8cpp-source.html#l00191">Poll()</a>.<div class="fragment"><pre class="fragment"><a name="l00249"></a>00249 { <span class="keywordflow">return</span> 0; }
659 </pre></div>
660 <p>
661     </td>
662   </tr>
663 </table>
664 <a class="anchor" name="OnTimeout_28_29"></a><!-- doxytag: member="InspSocket::OnTimeout" ref="OnTimeout_28_29" args="()" --><p>
665 <table class="mdTable" cellpadding="2" cellspacing="0">
666   <tr>
667     <td class="mdRow">
668       <table cellpadding="0" cellspacing="0" border="0">
669         <tr>
670           <td class="md" nowrap valign="top">void InspSocket::OnTimeout           </td>
671           <td class="md" valign="top">(&nbsp;</td>
672           <td class="mdname1" valign="top" nowrap>          </td>
673           <td class="md" valign="top">&nbsp;)&nbsp;</td>
674           <td class="md" nowrap><code> [virtual]</code></td>
675         </tr>
676       </table>
677     </td>
678   </tr>
679 </table>
680 <table cellspacing="5" cellpadding="0" border="0">
681   <tr>
682     <td>
683       &nbsp;
684     </td>
685     <td>
686
687 <p>
688
689 <p>
690 Definition at line <a class="el" href="socket_8cpp-source.html#l00251">251</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
691 <p>
692 Referenced by <a class="el" href="socket_8cpp-source.html#l00191">Poll()</a>.<div class="fragment"><pre class="fragment"><a name="l00251"></a>00251 { <span class="keywordflow">return</span>; }
693 </pre></div>
694 <p>
695     </td>
696   </tr>
697 </table>
698 <a class="anchor" name="Poll_28_29"></a><!-- doxytag: member="InspSocket::Poll" ref="Poll_28_29" args="()" --><p>
699 <table class="mdTable" cellpadding="2" cellspacing="0">
700   <tr>
701     <td class="mdRow">
702       <table cellpadding="0" cellspacing="0" border="0">
703         <tr>
704           <td class="md" nowrap valign="top">bool InspSocket::Poll           </td>
705           <td class="md" valign="top">(&nbsp;</td>
706           <td class="mdname1" valign="top" nowrap>          </td>
707           <td class="md" valign="top">&nbsp;)&nbsp;</td>
708           <td class="md" nowrap></td>
709         </tr>
710       </table>
711     </td>
712   </tr>
713 </table>
714 <table cellspacing="5" cellpadding="0" border="0">
715   <tr>
716     <td>
717       &nbsp;
718     </td>
719     <td>
720
721 <p>
722
723 <p>
724 Definition at line <a class="el" href="socket_8cpp-source.html#l00191">191</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
725 <p>
726 References <a class="el" href="socket_8h-source.html#l00044">client</a>, <a class="el" href="socket_8h-source.html#l00033">fd</a>, <a class="el" href="socket_8h.html#InspSocketStateI_5FCONNECTED">I_CONNECTED</a>, <a class="el" href="socket_8h.html#InspSocketStateI_5FCONNECTING">I_CONNECTING</a>, <a class="el" href="socket_8h.html#InspSocketErrorI_5FERR_5FTIMEOUT">I_ERR_TIMEOUT</a>, <a class="el" href="socket_8h.html#InspSocketStateI_5FERROR">I_ERROR</a>, <a class="el" href="socket_8h.html#InspSocketStateI_5FLISTENING">I_LISTENING</a>, <a class="el" href="socket_8h-source.html#l00046">length</a>, <a class="el" href="socket_8cpp-source.html#l00246">OnConnected()</a>, <a class="el" href="socket_8cpp-source.html#l00250">OnDataReady()</a>, <a class="el" href="socket_8cpp-source.html#l00247">OnError()</a>, <a class="el" href="socket_8cpp-source.html#l00249">OnIncomingConnection()</a>, <a class="el" href="socket_8cpp-source.html#l00251">OnTimeout()</a>, <a class="el" href="socket_8h-source.html#l00041">polls</a>, <a class="el" href="socket_8cpp-source.html#l00235">SetState()</a>, <a class="el" href="socket_8h-source.html#l00036">state</a>, <a class="el" href="socket_8h-source.html#l00040">timeout</a>, and <a class="el" href="socket_8h-source.html#l00039">timeout_end</a>.<div class="fragment"><pre class="fragment"><a name="l00192"></a>00192 {
727 <a name="l00193"></a>00193         <span class="keywordflow">if</span> ((time(NULL) &gt; <a class="code" href="classInspSocket.html#timeout_5Fend">timeout_end</a>) &amp;&amp; (this-&gt;state == <a class="code" href="socket_8h.html#InspSocketStateI_5FCONNECTING">I_CONNECTING</a>))
728 <a name="l00194"></a>00194         {
729 <a name="l00195"></a>00195                 <span class="comment">// for non-listening sockets, the timeout can occur</span>
730 <a name="l00196"></a>00196                 <span class="comment">// which causes termination of the connection after</span>
731 <a name="l00197"></a>00197                 <span class="comment">// the given number of seconds without a successful</span>
732 <a name="l00198"></a>00198                 <span class="comment">// connection.</span>
733 <a name="l00199"></a>00199                 this-&gt;<a class="code" href="classInspSocket.html#OnTimeout_28_29">OnTimeout</a>();
734 <a name="l00200"></a>00200                 this-&gt;<a class="code" href="classInspSocket.html#OnError_28InspSocketError_20e_29">OnError</a>(<a class="code" href="socket_8h.html#InspSocketErrorI_5FERR_5FTIMEOUT">I_ERR_TIMEOUT</a>);
735 <a name="l00201"></a>00201                 <a class="code" href="classInspSocket.html#timeout">timeout</a> = <span class="keyword">true</span>;
736 <a name="l00202"></a>00202                 this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FERROR">I_ERROR</a>;
737 <a name="l00203"></a>00203                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
738 <a name="l00204"></a>00204         }
739 <a name="l00205"></a>00205         <a class="code" href="classInspSocket.html#polls">polls</a>.fd = this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a>;
740 <a name="l00206"></a>00206         <a class="code" href="classInspSocket.html#state">state</a> == <a class="code" href="socket_8h.html#InspSocketStateI_5FCONNECTING">I_CONNECTING</a> ? <a class="code" href="classInspSocket.html#polls">polls</a>.events = POLLOUT : <a class="code" href="classInspSocket.html#polls">polls</a>.events = POLLIN;
741 <a name="l00207"></a>00207         <span class="keywordtype">int</span> ret = poll(&amp;<a class="code" href="classInspSocket.html#polls">polls</a>,1,1);
742 <a name="l00208"></a>00208 
743 <a name="l00209"></a>00209         <span class="keywordflow">if</span> (ret &gt; 0)
744 <a name="l00210"></a>00210         {
745 <a name="l00211"></a>00211                 <span class="keywordtype">int</span> incoming = -1;
746 <a name="l00212"></a>00212                 
747 <a name="l00213"></a>00213                 <span class="keywordflow">switch</span> (this-&gt;state)
748 <a name="l00214"></a>00214                 {
749 <a name="l00215"></a>00215                         <span class="keywordflow">case</span> <a class="code" href="socket_8h.html#InspSocketStateI_5FCONNECTING">I_CONNECTING</a>:
750 <a name="l00216"></a>00216                                 this-&gt;<a class="code" href="classInspSocket.html#SetState_28InspSocketState_20s_29">SetState</a>(<a class="code" href="socket_8h.html#InspSocketStateI_5FCONNECTED">I_CONNECTED</a>);
751 <a name="l00217"></a>00217                                 <span class="keywordflow">return</span> this-&gt;<a class="code" href="classInspSocket.html#OnConnected_28_29">OnConnected</a>();
752 <a name="l00218"></a>00218                         <span class="keywordflow">break</span>;
753 <a name="l00219"></a>00219                         <span class="keywordflow">case</span> <a class="code" href="socket_8h.html#InspSocketStateI_5FLISTENING">I_LISTENING</a>:
754 <a name="l00220"></a>00220                                 <a class="code" href="classInspSocket.html#length">length</a> = <span class="keyword">sizeof</span> (<a class="code" href="classInspSocket.html#client">client</a>);
755 <a name="l00221"></a>00221                                 incoming = accept (this-&gt;fd, (sockaddr*)&amp;<a class="code" href="classInspSocket.html#client">client</a>,&amp;<a class="code" href="classInspSocket.html#length">length</a>);
756 <a name="l00222"></a>00222                                 this-&gt;<a class="code" href="classInspSocket.html#OnIncomingConnection_28int_20newfd_2C_20char_20_2Aip_29">OnIncomingConnection</a>(incoming,inet_ntoa(<a class="code" href="classInspSocket.html#client">client</a>.sin_addr));
757 <a name="l00223"></a>00223                                 <span class="keywordflow">return</span> <span class="keyword">true</span>;
758 <a name="l00224"></a>00224                         <span class="keywordflow">break</span>;
759 <a name="l00225"></a>00225                         <span class="keywordflow">case</span> <a class="code" href="socket_8h.html#InspSocketStateI_5FCONNECTED">I_CONNECTED</a>:
760 <a name="l00226"></a>00226                                 <span class="keywordflow">return</span> this-&gt;<a class="code" href="classInspSocket.html#OnDataReady_28_29">OnDataReady</a>();
761 <a name="l00227"></a>00227                         <span class="keywordflow">break</span>;
762 <a name="l00228"></a>00228                         <span class="keywordflow">default</span>:
763 <a name="l00229"></a>00229                         <span class="keywordflow">break</span>;
764 <a name="l00230"></a>00230                 }
765 <a name="l00231"></a>00231         }
766 <a name="l00232"></a>00232         <span class="keywordflow">return</span> <span class="keyword">true</span>;
767 <a name="l00233"></a>00233 }
768 </pre></div>
769 <p>
770     </td>
771   </tr>
772 </table>
773 <a class="anchor" name="Read_28_29"></a><!-- doxytag: member="InspSocket::Read" ref="Read_28_29" args="()" --><p>
774 <table class="mdTable" cellpadding="2" cellspacing="0">
775   <tr>
776     <td class="mdRow">
777       <table cellpadding="0" cellspacing="0" border="0">
778         <tr>
779           <td class="md" nowrap valign="top">char * InspSocket::Read           </td>
780           <td class="md" valign="top">(&nbsp;</td>
781           <td class="mdname1" valign="top" nowrap>          </td>
782           <td class="md" valign="top">&nbsp;)&nbsp;</td>
783           <td class="md" nowrap><code> [virtual]</code></td>
784         </tr>
785       </table>
786     </td>
787   </tr>
788 </table>
789 <table cellspacing="5" cellpadding="0" border="0">
790   <tr>
791     <td>
792       &nbsp;
793     </td>
794     <td>
795
796 <p>
797
798 <p>
799 Definition at line <a class="el" href="socket_8cpp-source.html#l00149">149</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
800 <p>
801 References <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>, and <a class="el" href="socket_8h-source.html#l00042">ibuf</a>.<div class="fragment"><pre class="fragment"><a name="l00150"></a>00150 {
802 <a name="l00151"></a>00151         <span class="keywordtype">int</span> n = recv(this-&gt;fd,this-&gt;ibuf,<span class="keyword">sizeof</span>(this-&gt;ibuf),0);
803 <a name="l00152"></a>00152         <span class="keywordflow">if</span> (n &gt; 0)
804 <a name="l00153"></a>00153         {
805 <a name="l00154"></a>00154                 <a class="code" href="classInspSocket.html#ibuf_5B_31_36_33_38_34_5D">ibuf</a>[n] = 0;
806 <a name="l00155"></a>00155                 <span class="keywordflow">return</span> <a class="code" href="classInspSocket.html#ibuf_5B_31_36_33_38_34_5D">ibuf</a>;
807 <a name="l00156"></a>00156         }
808 <a name="l00157"></a>00157         <span class="keywordflow">else</span>
809 <a name="l00158"></a>00158         {
810 <a name="l00159"></a>00159                 log(<a class="code" href="modules_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"EOF or error on socket"</span>);
811 <a name="l00160"></a>00160                 <span class="keywordflow">return</span> NULL;
812 <a name="l00161"></a>00161         }
813 <a name="l00162"></a>00162 }
814 </pre></div>
815 <p>
816     </td>
817   </tr>
818 </table>
819 <a class="anchor" name="SetState_28InspSocketState_20s_29"></a><!-- doxytag: member="InspSocket::SetState" ref="SetState_28InspSocketState_20s_29" args="(InspSocketState s)" --><p>
820 <table class="mdTable" cellpadding="2" cellspacing="0">
821   <tr>
822     <td class="mdRow">
823       <table cellpadding="0" cellspacing="0" border="0">
824         <tr>
825           <td class="md" nowrap valign="top">void InspSocket::SetState           </td>
826           <td class="md" valign="top">(&nbsp;</td>
827           <td class="md" nowrap valign="top"><a class="el" href="socket_8h.html#InspSocketState">InspSocketState</a>&nbsp;</td>
828           <td class="mdname1" valign="top" nowrap> <em>s</em>          </td>
829           <td class="md" valign="top">&nbsp;)&nbsp;</td>
830           <td class="md" nowrap></td>
831         </tr>
832       </table>
833     </td>
834   </tr>
835 </table>
836 <table cellspacing="5" cellpadding="0" border="0">
837   <tr>
838     <td>
839       &nbsp;
840     </td>
841     <td>
842
843 <p>
844
845 <p>
846 Definition at line <a class="el" href="socket_8cpp-source.html#l00235">235</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
847 <p>
848 References <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>, and <a class="el" href="socket_8h-source.html#l00036">state</a>.
849 <p>
850 Referenced by <a class="el" href="socket_8cpp-source.html#l00191">Poll()</a>.<div class="fragment"><pre class="fragment"><a name="l00236"></a>00236 {
851 <a name="l00237"></a>00237         log(<a class="code" href="modules_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Socket state change"</span>);
852 <a name="l00238"></a>00238         this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = s;
853 <a name="l00239"></a>00239 }
854 </pre></div>
855 <p>
856     </td>
857   </tr>
858 </table>
859 <a class="anchor" name="Write_28std_3A_3Astring_20data_29"></a><!-- doxytag: member="InspSocket::Write" ref="Write_28std_3A_3Astring_20data_29" args="(std::string data)" --><p>
860 <table class="mdTable" cellpadding="2" cellspacing="0">
861   <tr>
862     <td class="mdRow">
863       <table cellpadding="0" cellspacing="0" border="0">
864         <tr>
865           <td class="md" nowrap valign="top">int InspSocket::Write           </td>
866           <td class="md" valign="top">(&nbsp;</td>
867           <td class="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">std::string</a>&nbsp;</td>
868           <td class="mdname1" valign="top" nowrap> <em>data</em>          </td>
869           <td class="md" valign="top">&nbsp;)&nbsp;</td>
870           <td class="md" nowrap><code> [virtual]</code></td>
871         </tr>
872       </table>
873     </td>
874   </tr>
875 </table>
876 <table cellspacing="5" cellpadding="0" border="0">
877   <tr>
878     <td>
879       &nbsp;
880     </td>
881     <td>
882
883 <p>
884
885 <p>
886 Definition at line <a class="el" href="socket_8cpp-source.html#l00168">168</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00169"></a>00169 {
887 <a name="l00170"></a>00170         <span class="keywordtype">char</span>* d = (<span class="keywordtype">char</span>*)data.c_str();
888 <a name="l00171"></a>00171         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> written = 0;
889 <a name="l00172"></a>00172         <span class="keywordtype">int</span> n = 0;
890 <a name="l00173"></a>00173         <span class="keywordtype">int</span> s = data.length();
891 <a name="l00174"></a>00174         <span class="keywordflow">while</span> ((written &lt; data.length()) &amp;&amp; (n &gt;= 0))
892 <a name="l00175"></a>00175         {
893 <a name="l00176"></a>00176                 n = send(this-&gt;fd,d,s,0);
894 <a name="l00177"></a>00177                 <span class="keywordflow">if</span> (n &gt; 0)
895 <a name="l00178"></a>00178                 {
896 <a name="l00179"></a>00179                         <span class="comment">// If we didnt write everything, advance</span>
897 <a name="l00180"></a>00180                         <span class="comment">// the pointers so that when we retry</span>
898 <a name="l00181"></a>00181                         <span class="comment">// the next time around the loop, we try</span>
899 <a name="l00182"></a>00182                         <span class="comment">// to write what we failed to write before.</span>
900 <a name="l00183"></a>00183                         written += n;
901 <a name="l00184"></a>00184                         s -= n;
902 <a name="l00185"></a>00185                         d += n;
903 <a name="l00186"></a>00186                 }
904 <a name="l00187"></a>00187         }
905 <a name="l00188"></a>00188         <span class="keywordflow">return</span> written;
906 <a name="l00189"></a>00189 }
907 </pre></div>
908 <p>
909     </td>
910   </tr>
911 </table>
912 <hr><h2>Member Data Documentation</h2>
913 <a class="anchor" name="addr"></a><!-- doxytag: member="InspSocket::addr" ref="addr" args="" --><p>
914 <table class="mdTable" cellpadding="2" cellspacing="0">
915   <tr>
916     <td class="mdRow">
917       <table cellpadding="0" cellspacing="0" border="0">
918         <tr>
919           <td class="md" nowrap valign="top">sockaddr_in <a class="el" href="classInspSocket.html#addr">InspSocket::addr</a><code> [private]</code>          </td>
920         </tr>
921       </table>
922     </td>
923   </tr>
924 </table>
925 <table cellspacing="5" cellpadding="0" border="0">
926   <tr>
927     <td>
928       &nbsp;
929     </td>
930     <td>
931
932 <p>
933
934 <p>
935 Definition at line <a class="el" href="socket_8h-source.html#l00037">37</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.
936 <p>
937 Referenced by <a class="el" href="socket_8cpp-source.html#l00058">InspSocket()</a>.    </td>
938   </tr>
939 </table>
940 <a class="anchor" name="addy"></a><!-- doxytag: member="InspSocket::addy" ref="addy" args="" --><p>
941 <table class="mdTable" cellpadding="2" cellspacing="0">
942   <tr>
943     <td class="mdRow">
944       <table cellpadding="0" cellspacing="0" border="0">
945         <tr>
946           <td class="md" nowrap valign="top">in_addr <a class="el" href="classInspSocket.html#addy">InspSocket::addy</a><code> [private]</code>          </td>
947         </tr>
948       </table>
949     </td>
950   </tr>
951 </table>
952 <table cellspacing="5" cellpadding="0" border="0">
953   <tr>
954     <td>
955       &nbsp;
956     </td>
957     <td>
958
959 <p>
960
961 <p>
962 Definition at line <a class="el" href="socket_8h-source.html#l00038">38</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.
963 <p>
964 Referenced by <a class="el" href="socket_8cpp-source.html#l00058">InspSocket()</a>.    </td>
965   </tr>
966 </table>
967 <a class="anchor" name="client"></a><!-- doxytag: member="InspSocket::client" ref="client" args="" --><p>
968 <table class="mdTable" cellpadding="2" cellspacing="0">
969   <tr>
970     <td class="mdRow">
971       <table cellpadding="0" cellspacing="0" border="0">
972         <tr>
973           <td class="md" nowrap valign="top">sockaddr_in <a class="el" href="classInspSocket.html#client">InspSocket::client</a><code> [private]</code>          </td>
974         </tr>
975       </table>
976     </td>
977   </tr>
978 </table>
979 <table cellspacing="5" cellpadding="0" border="0">
980   <tr>
981     <td>
982       &nbsp;
983     </td>
984     <td>
985
986 <p>
987
988 <p>
989 Definition at line <a class="el" href="socket_8h-source.html#l00044">44</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.
990 <p>
991 Referenced by <a class="el" href="socket_8cpp-source.html#l00191">Poll()</a>.    </td>
992   </tr>
993 </table>
994 <a class="anchor" name="fd"></a><!-- doxytag: member="InspSocket::fd" ref="fd" args="" --><p>
995 <table class="mdTable" cellpadding="2" cellspacing="0">
996   <tr>
997     <td class="mdRow">
998       <table cellpadding="0" cellspacing="0" border="0">
999         <tr>
1000           <td class="md" nowrap valign="top">int <a class="el" href="classInspSocket.html#fd">InspSocket::fd</a><code> [private]</code>          </td>
1001         </tr>
1002       </table>
1003     </td>
1004   </tr>
1005 </table>
1006 <table cellspacing="5" cellpadding="0" border="0">
1007   <tr>
1008     <td>
1009       &nbsp;
1010     </td>
1011     <td>
1012
1013 <p>
1014
1015 <p>
1016 Definition at line <a class="el" href="socket_8h-source.html#l00033">33</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.
1017 <p>
1018 Referenced by <a class="el" href="socket_8cpp-source.html#l00133">Close()</a>, <a class="el" href="socket_8cpp-source.html#l00051">InspSocket()</a>, and <a class="el" href="socket_8cpp-source.html#l00191">Poll()</a>.    </td>
1019   </tr>
1020 </table>
1021 <a class="anchor" name="host"></a><!-- doxytag: member="InspSocket::host" ref="host" args="" --><p>
1022 <table class="mdTable" cellpadding="2" cellspacing="0">
1023   <tr>
1024     <td class="mdRow">
1025       <table cellpadding="0" cellspacing="0" border="0">
1026         <tr>
1027           <td class="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">std::string</a> <a class="el" href="classInspSocket.html#host">InspSocket::host</a><code> [private]</code>          </td>
1028         </tr>
1029       </table>
1030     </td>
1031   </tr>
1032 </table>
1033 <table cellspacing="5" cellpadding="0" border="0">
1034   <tr>
1035     <td>
1036       &nbsp;
1037     </td>
1038     <td>
1039
1040 <p>
1041
1042 <p>
1043 Definition at line <a class="el" href="socket_8h-source.html#l00034">34</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.    </td>
1044   </tr>
1045 </table>
1046 <a class="anchor" name="ibuf_5B_31_36_33_38_34_5D"></a><!-- doxytag: member="InspSocket::ibuf" ref="ibuf_5B_31_36_33_38_34_5D" args="[16384]" --><p>
1047 <table class="mdTable" cellpadding="2" cellspacing="0">
1048   <tr>
1049     <td class="mdRow">
1050       <table cellpadding="0" cellspacing="0" border="0">
1051         <tr>
1052           <td class="md" nowrap valign="top">char <a class="el" href="classInspSocket.html#ibuf_5B_31_36_33_38_34_5D">InspSocket::ibuf</a>[16384]<code> [private]</code>          </td>
1053         </tr>
1054       </table>
1055     </td>
1056   </tr>
1057 </table>
1058 <table cellspacing="5" cellpadding="0" border="0">
1059   <tr>
1060     <td>
1061       &nbsp;
1062     </td>
1063     <td>
1064
1065 <p>
1066
1067 <p>
1068 Definition at line <a class="el" href="socket_8h-source.html#l00042">42</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.
1069 <p>
1070 Referenced by <a class="el" href="socket_8cpp-source.html#l00149">Read()</a>.    </td>
1071   </tr>
1072 </table>
1073 <a class="anchor" name="IP"></a><!-- doxytag: member="InspSocket::IP" ref="IP" args="" --><p>
1074 <table class="mdTable" cellpadding="2" cellspacing="0">
1075   <tr>
1076     <td class="mdRow">
1077       <table cellpadding="0" cellspacing="0" border="0">
1078         <tr>
1079           <td class="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">std::string</a> <a class="el" href="classInspSocket.html#IP">InspSocket::IP</a><code> [private]</code>          </td>
1080         </tr>
1081       </table>
1082     </td>
1083   </tr>
1084 </table>
1085 <table cellspacing="5" cellpadding="0" border="0">
1086   <tr>
1087     <td>
1088       &nbsp;
1089     </td>
1090     <td>
1091
1092 <p>
1093
1094 <p>
1095 Definition at line <a class="el" href="socket_8h-source.html#l00043">43</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.
1096 <p>
1097 Referenced by <a class="el" href="socket_8cpp-source.html#l00144">GetIP()</a>, and <a class="el" href="socket_8cpp-source.html#l00051">InspSocket()</a>.    </td>
1098   </tr>
1099 </table>
1100 <a class="anchor" name="length"></a><!-- doxytag: member="InspSocket::length" ref="length" args="" --><p>
1101 <table class="mdTable" cellpadding="2" cellspacing="0">
1102   <tr>
1103     <td class="mdRow">
1104       <table cellpadding="0" cellspacing="0" border="0">
1105         <tr>
1106           <td class="md" nowrap valign="top">socklen_t <a class="el" href="classInspSocket.html#length">InspSocket::length</a><code> [private]</code>          </td>
1107         </tr>
1108       </table>
1109     </td>
1110   </tr>
1111 </table>
1112 <table cellspacing="5" cellpadding="0" border="0">
1113   <tr>
1114     <td>
1115       &nbsp;
1116     </td>
1117     <td>
1118
1119 <p>
1120
1121 <p>
1122 Definition at line <a class="el" href="socket_8h-source.html#l00046">46</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.
1123 <p>
1124 Referenced by <a class="el" href="socket_8cpp-source.html#l00191">Poll()</a>.    </td>
1125   </tr>
1126 </table>
1127 <a class="anchor" name="polls"></a><!-- doxytag: member="InspSocket::polls" ref="polls" args="" --><p>
1128 <table class="mdTable" cellpadding="2" cellspacing="0">
1129   <tr>
1130     <td class="mdRow">
1131       <table cellpadding="0" cellspacing="0" border="0">
1132         <tr>
1133           <td class="md" nowrap valign="top">pollfd <a class="el" href="classInspSocket.html#polls">InspSocket::polls</a><code> [private]</code>          </td>
1134         </tr>
1135       </table>
1136     </td>
1137   </tr>
1138 </table>
1139 <table cellspacing="5" cellpadding="0" border="0">
1140   <tr>
1141     <td>
1142       &nbsp;
1143     </td>
1144     <td>
1145
1146 <p>
1147
1148 <p>
1149 Definition at line <a class="el" href="socket_8h-source.html#l00041">41</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.
1150 <p>
1151 Referenced by <a class="el" href="socket_8cpp-source.html#l00191">Poll()</a>.    </td>
1152   </tr>
1153 </table>
1154 <a class="anchor" name="port"></a><!-- doxytag: member="InspSocket::port" ref="port" args="" --><p>
1155 <table class="mdTable" cellpadding="2" cellspacing="0">
1156   <tr>
1157     <td class="mdRow">
1158       <table cellpadding="0" cellspacing="0" border="0">
1159         <tr>
1160           <td class="md" nowrap valign="top">int <a class="el" href="classInspSocket.html#port">InspSocket::port</a><code> [private]</code>          </td>
1161         </tr>
1162       </table>
1163     </td>
1164   </tr>
1165 </table>
1166 <table cellspacing="5" cellpadding="0" border="0">
1167   <tr>
1168     <td>
1169       &nbsp;
1170     </td>
1171     <td>
1172
1173 <p>
1174
1175 <p>
1176 Definition at line <a class="el" href="socket_8h-source.html#l00035">35</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.    </td>
1177   </tr>
1178 </table>
1179 <a class="anchor" name="server"></a><!-- doxytag: member="InspSocket::server" ref="server" args="" --><p>
1180 <table class="mdTable" cellpadding="2" cellspacing="0">
1181   <tr>
1182     <td class="mdRow">
1183       <table cellpadding="0" cellspacing="0" border="0">
1184         <tr>
1185           <td class="md" nowrap valign="top">sockaddr_in <a class="el" href="classInspSocket.html#server">InspSocket::server</a><code> [private]</code>          </td>
1186         </tr>
1187       </table>
1188     </td>
1189   </tr>
1190 </table>
1191 <table cellspacing="5" cellpadding="0" border="0">
1192   <tr>
1193     <td>
1194       &nbsp;
1195     </td>
1196     <td>
1197
1198 <p>
1199
1200 <p>
1201 Definition at line <a class="el" href="socket_8h-source.html#l00045">45</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.    </td>
1202   </tr>
1203 </table>
1204 <a class="anchor" name="state"></a><!-- doxytag: member="InspSocket::state" ref="state" args="" --><p>
1205 <table class="mdTable" cellpadding="2" cellspacing="0">
1206   <tr>
1207     <td class="mdRow">
1208       <table cellpadding="0" cellspacing="0" border="0">
1209         <tr>
1210           <td class="md" nowrap valign="top"><a class="el" href="socket_8h.html#InspSocketState">InspSocketState</a> <a class="el" href="classInspSocket.html#state">InspSocket::state</a><code> [private]</code>          </td>
1211         </tr>
1212       </table>
1213     </td>
1214   </tr>
1215 </table>
1216 <table cellspacing="5" cellpadding="0" border="0">
1217   <tr>
1218     <td>
1219       &nbsp;
1220     </td>
1221     <td>
1222
1223 <p>
1224
1225 <p>
1226 Definition at line <a class="el" href="socket_8h-source.html#l00036">36</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.
1227 <p>
1228 Referenced by <a class="el" href="socket_8cpp-source.html#l00241">GetState()</a>, <a class="el" href="socket_8cpp-source.html#l00046">InspSocket()</a>, <a class="el" href="socket_8cpp-source.html#l00191">Poll()</a>, and <a class="el" href="socket_8cpp-source.html#l00235">SetState()</a>.    </td>
1229   </tr>
1230 </table>
1231 <a class="anchor" name="timeout"></a><!-- doxytag: member="InspSocket::timeout" ref="timeout" args="" --><p>
1232 <table class="mdTable" cellpadding="2" cellspacing="0">
1233   <tr>
1234     <td class="mdRow">
1235       <table cellpadding="0" cellspacing="0" border="0">
1236         <tr>
1237           <td class="md" nowrap valign="top">bool <a class="el" href="classInspSocket.html#timeout">InspSocket::timeout</a><code> [private]</code>          </td>
1238         </tr>
1239       </table>
1240     </td>
1241   </tr>
1242 </table>
1243 <table cellspacing="5" cellpadding="0" border="0">
1244   <tr>
1245     <td>
1246       &nbsp;
1247     </td>
1248     <td>
1249
1250 <p>
1251
1252 <p>
1253 Definition at line <a class="el" href="socket_8h-source.html#l00040">40</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.
1254 <p>
1255 Referenced by <a class="el" href="socket_8cpp-source.html#l00058">InspSocket()</a>, and <a class="el" href="socket_8cpp-source.html#l00191">Poll()</a>.    </td>
1256   </tr>
1257 </table>
1258 <a class="anchor" name="timeout_5Fend"></a><!-- doxytag: member="InspSocket::timeout_end" ref="timeout_5Fend" args="" --><p>
1259 <table class="mdTable" cellpadding="2" cellspacing="0">
1260   <tr>
1261     <td class="mdRow">
1262       <table cellpadding="0" cellspacing="0" border="0">
1263         <tr>
1264           <td class="md" nowrap valign="top">time_t <a class="el" href="classInspSocket.html#timeout_5Fend">InspSocket::timeout_end</a><code> [private]</code>          </td>
1265         </tr>
1266       </table>
1267     </td>
1268   </tr>
1269 </table>
1270 <table cellspacing="5" cellpadding="0" border="0">
1271   <tr>
1272     <td>
1273       &nbsp;
1274     </td>
1275     <td>
1276
1277 <p>
1278
1279 <p>
1280 Definition at line <a class="el" href="socket_8h-source.html#l00039">39</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.
1281 <p>
1282 Referenced by <a class="el" href="socket_8cpp-source.html#l00058">InspSocket()</a>, and <a class="el" href="socket_8cpp-source.html#l00191">Poll()</a>.    </td>
1283   </tr>
1284 </table>
1285 <hr>The documentation for this class was generated from the following files:<ul>
1286 <li><a class="el" href="socket_8h-source.html">socket.h</a><li><a class="el" href="socket_8cpp-source.html">socket.cpp</a></ul>
1287 <hr size="1"><address style="align: right;"><small>Generated on Fri Dec 9 20:20:12 2005 for InspIRCd by&nbsp;
1288 <a href="http://www.doxygen.org/index.html">
1289 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
1290 </body>
1291 </html>