1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> 3 <title>OsclSocketMethod class Reference</title> 4 <link href="doxygen.css" rel="stylesheet" type="text/css"> 5 </head><body> 6 <!-- Generated by Doxygen 1.2.18 --> 7 <center> 8 <a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="modules.html">Modules</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="annotated.html">Data Structures</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Data Fields</a> <a class="qindex" href="globals.html">Globals</a> </center> 9 <hr><h1>OsclSocketMethod Class Reference</h1><code>#include <<a class="el" href="oscl__socket__method_8h-source.html">oscl_socket_method.h</a>></code> 10 <p> 11 <p>Inheritance diagram for OsclSocketMethod: 12 <p><center><img src="classOsclSocketMethod.png" usemap="#OsclSocketMethod_map" border="0" alt=""></center> 13 <map name="OsclSocketMethod_map"> 14 <area href="classOsclTimerObject.html" alt="OsclTimerObject" shape="rect" coords="74,112,212,136"> 15 <area href="classHeapBase.html" alt="HeapBase" shape="rect" coords="0,56,138,80"> 16 <area href="classPVActiveBase.html" alt="PVActiveBase" shape="rect" coords="148,56,286,80"> 17 <area href="class__OsclHeapBase.html" alt="_OsclHeapBase" shape="rect" coords="0,0,138,24"> 18 <area href="classOsclAcceptMethod.html" alt="OsclAcceptMethod" shape="rect" coords="222,224,360,248"> 19 <area href="classOsclBindMethod.html" alt="OsclBindMethod" shape="rect" coords="222,280,360,304"> 20 <area href="classOsclConnectMethod.html" alt="OsclConnectMethod" shape="rect" coords="222,336,360,360"> 21 <area href="classOsclListenMethod.html" alt="OsclListenMethod" shape="rect" coords="222,392,360,416"> 22 <area href="classOsclRecvFromMethod.html" alt="OsclRecvFromMethod" shape="rect" coords="222,448,360,472"> 23 <area href="classOsclRecvMethod.html" alt="OsclRecvMethod" shape="rect" coords="222,504,360,528"> 24 <area href="classOsclSendMethod.html" alt="OsclSendMethod" shape="rect" coords="222,560,360,584"> 25 <area href="classOsclSendToMethod.html" alt="OsclSendToMethod" shape="rect" coords="222,616,360,640"> 26 <area href="classOsclShutdownMethod.html" alt="OsclShutdownMethod" shape="rect" coords="222,672,360,696"> 27 </map> 28 <table border=0 cellpadding=0 cellspacing=0> 29 <tr><td></td></tr> 30 <tr><td colspan=2><br><h2>Public Methods</h2></td></tr> 31 <tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classOsclSocketMethod.html#a0">OsclSocketMethod</a> (<a class="el" href="classOsclIPSocketI.html">OsclIPSocketI</a> &aContainer, const char *name, <a class="el" href="oscl__socket__types_8h.html#a19">TPVSocketFxn</a> fxn)</td></tr> 32 <tr><td nowrap align=right valign=top>virtual </td><td valign=bottom><a class="el" href="classOsclSocketMethod.html#a1">~OsclSocketMethod</a> ()</td></tr> 33 <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classOsclSocketMethod.html#a2">Abort</a> ()</td></tr> 34 <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classOsclSocketMethod.html#a3">AbortAll</a> ()</td></tr> 35 <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classOsclSocketMethod.html#a4">CancelMethod</a> ()</td></tr> 36 <tr><td nowrap align=right valign=top><a class="el" href="classOscl__DefAlloc.html">Oscl_DefAlloc</a> & </td><td valign=bottom><a class="el" href="classOsclSocketMethod.html#a5">Alloc</a> ()</td></tr> 37 <tr><td colspan=2><br><h2>Data Fields</h2></td></tr> 38 <tr><td nowrap align=right valign=top><a class="el" href="classOsclIPSocketI.html">OsclIPSocketI</a> & </td><td valign=bottom><a class="el" href="classOsclSocketMethod.html#m0">iContainer</a></td></tr> 39 <tr><td nowrap align=right valign=top><a class="el" href="oscl__socket__types_8h.html#a19">TPVSocketFxn</a> </td><td valign=bottom><a class="el" href="classOsclSocketMethod.html#m1">iSocketFxn</a></td></tr> 40 <tr><td colspan=2><br><h2>Protected Methods</h2></td></tr> 41 <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classOsclSocketMethod.html#b0">ConstructL</a> (<a class="el" href="classOsclSocketRequestAO.html">OsclSocketRequestAO</a> *aAO)</td></tr> 42 <tr><td nowrap align=right valign=top>bool </td><td valign=bottom><a class="el" href="classOsclSocketMethod.html#b1">StartMethod</a> (int32 aTimeoutMsec)</td></tr> 43 <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classOsclSocketMethod.html#b2">MethodDone</a> ()</td></tr> 44 <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classOsclSocketMethod.html#b3">Run</a> ()</td></tr> 45 <tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr> 46 <tr><td nowrap align=right valign=top><a class="el" href="classOsclSocketRequestAO.html">OsclSocketRequestAO</a> * </td><td valign=bottom><a class="el" href="classOsclSocketMethod.html#n0">iSocketRequestAO</a></td></tr> 47 </table> 48 <hr><a name="_details"></a><h2>Detailed Description</h2> 49 OsclSocketMethod is the base class for all socket methods. Two AOs are required for each socket operation-- one to provide a timeout, and one to detect request completion. The OsclSocketMethod class implements the timeout and contains the request completion AO. 50 <p> 51 <hr><h2>Constructor & Destructor Documentation</h2> 52 <a name="a0" doxytag="OsclSocketMethod::OsclSocketMethod"></a><p> 53 <table width="100%" cellpadding="2" cellspacing="0" border="0"> 54 <tr> 55 <td class="md"> 56 <table cellpadding="0" cellspacing="0" border="0"> 57 <tr> 58 <td class="md" nowrap valign="top"> OsclSocketMethod::OsclSocketMethod </td> 59 <td class="md" valign="top">( </td> 60 <td class="md" nowrap valign="top"><a class="el" href="classOsclIPSocketI.html">OsclIPSocketI</a> & </td> 61 <td class="mdname" nowrap> <em>aContainer</em>, </td> 62 </tr> 63 <tr> 64 <td></td> 65 <td></td> 66 <td class="md" nowrap>const char * </td> 67 <td class="mdname" nowrap> <em>name</em>, </td> 68 </tr> 69 <tr> 70 <td></td> 71 <td></td> 72 <td class="md" nowrap><a class="el" href="oscl__socket__types_8h.html#a19">TPVSocketFxn</a> </td> 73 <td class="mdname" nowrap> <em>fxn</em></td> 74 </tr> 75 <tr> 76 <td></td> 77 <td class="md">) </td> 78 <td class="md" colspan="2"><code> [inline]</code></td> 79 </tr> 80 81 </table> 82 </td> 83 </tr> 84 </table> 85 <table cellspacing=5 cellpadding=0 border=0> 86 <tr> 87 <td> 88 89 </td> 90 <td> 91 92 <p> 93 </td> 94 </tr> 95 </table> 96 <a name="a1" doxytag="OsclSocketMethod::~OsclSocketMethod"></a><p> 97 <table width="100%" cellpadding="2" cellspacing="0" border="0"> 98 <tr> 99 <td class="md"> 100 <table cellpadding="0" cellspacing="0" border="0"> 101 <tr> 102 <td class="md" nowrap valign="top"> virtual OsclSocketMethod::~OsclSocketMethod </td> 103 <td class="md" valign="top">( </td> 104 <td class="mdname1" valign="top" nowrap> </td> 105 <td class="md" valign="top">) </td> 106 <td class="md" nowrap><code> [inline, virtual]</code></td> 107 </tr> 108 109 </table> 110 </td> 111 </tr> 112 </table> 113 <table cellspacing=5 cellpadding=0 border=0> 114 <tr> 115 <td> 116 117 </td> 118 <td> 119 120 <p> 121 </td> 122 </tr> 123 </table> 124 <hr><h2>Member Function Documentation</h2> 125 <a name="a2" doxytag="OsclSocketMethod::Abort"></a><p> 126 <table width="100%" cellpadding="2" cellspacing="0" border="0"> 127 <tr> 128 <td class="md"> 129 <table cellpadding="0" cellspacing="0" border="0"> 130 <tr> 131 <td class="md" nowrap valign="top"> void OsclSocketMethod::Abort </td> 132 <td class="md" valign="top">( </td> 133 <td class="mdname1" valign="top" nowrap> </td> 134 <td class="md" valign="top">) </td> 135 <td class="md" nowrap><code> [inline]</code></td> 136 </tr> 137 138 </table> 139 </td> 140 </tr> 141 </table> 142 <table cellspacing=5 cellpadding=0 border=0> 143 <tr> 144 <td> 145 146 </td> 147 <td> 148 149 <p> 150 </td> 151 </tr> 152 </table> 153 <a name="a3" doxytag="OsclSocketMethod::AbortAll"></a><p> 154 <table width="100%" cellpadding="2" cellspacing="0" border="0"> 155 <tr> 156 <td class="md"> 157 <table cellpadding="0" cellspacing="0" border="0"> 158 <tr> 159 <td class="md" nowrap valign="top"> void OsclSocketMethod::AbortAll </td> 160 <td class="md" valign="top">( </td> 161 <td class="mdname1" valign="top" nowrap> </td> 162 <td class="md" valign="top">) </td> 163 <td class="md" nowrap><code> [inline]</code></td> 164 </tr> 165 166 </table> 167 </td> 168 </tr> 169 </table> 170 <table cellspacing=5 cellpadding=0 border=0> 171 <tr> 172 <td> 173 174 </td> 175 <td> 176 177 <p> 178 </td> 179 </tr> 180 </table> 181 <a name="a5" doxytag="OsclSocketMethod::Alloc"></a><p> 182 <table width="100%" cellpadding="2" cellspacing="0" border="0"> 183 <tr> 184 <td class="md"> 185 <table cellpadding="0" cellspacing="0" border="0"> 186 <tr> 187 <td class="md" nowrap valign="top"> <a class="el" href="classOscl__DefAlloc.html">Oscl_DefAlloc</a>& OsclSocketMethod::Alloc </td> 188 <td class="md" valign="top">( </td> 189 <td class="mdname1" valign="top" nowrap> </td> 190 <td class="md" valign="top">) </td> 191 <td class="md" nowrap><code> [inline]</code></td> 192 </tr> 193 194 </table> 195 </td> 196 </tr> 197 </table> 198 <table cellspacing=5 cellpadding=0 border=0> 199 <tr> 200 <td> 201 202 </td> 203 <td> 204 205 <p> 206 </td> 207 </tr> 208 </table> 209 <a name="a4" doxytag="OsclSocketMethod::CancelMethod"></a><p> 210 <table width="100%" cellpadding="2" cellspacing="0" border="0"> 211 <tr> 212 <td class="md"> 213 <table cellpadding="0" cellspacing="0" border="0"> 214 <tr> 215 <td class="md" nowrap valign="top"> void OsclSocketMethod::CancelMethod </td> 216 <td class="md" valign="top">( </td> 217 <td class="mdname1" valign="top" nowrap> </td> 218 <td class="md" valign="top">) </td> 219 <td class="md" nowrap><code> [inline]</code></td> 220 </tr> 221 222 </table> 223 </td> 224 </tr> 225 </table> 226 <table cellspacing=5 cellpadding=0 border=0> 227 <tr> 228 <td> 229 230 </td> 231 <td> 232 233 <p> 234 </td> 235 </tr> 236 </table> 237 <a name="b0" doxytag="OsclSocketMethod::ConstructL"></a><p> 238 <table width="100%" cellpadding="2" cellspacing="0" border="0"> 239 <tr> 240 <td class="md"> 241 <table cellpadding="0" cellspacing="0" border="0"> 242 <tr> 243 <td class="md" nowrap valign="top"> void OsclSocketMethod::ConstructL </td> 244 <td class="md" valign="top">( </td> 245 <td class="md" nowrap valign="top"><a class="el" href="classOsclSocketRequestAO.html">OsclSocketRequestAO</a> * </td> 246 <td class="mdname1" valign="top" nowrap> <em>aAO</em> </td> 247 <td class="md" valign="top">) </td> 248 <td class="md" nowrap><code> [inline, protected]</code></td> 249 </tr> 250 251 </table> 252 </td> 253 </tr> 254 </table> 255 <table cellspacing=5 cellpadding=0 border=0> 256 <tr> 257 <td> 258 259 </td> 260 <td> 261 262 <p> 263 </td> 264 </tr> 265 </table> 266 <a name="b2" doxytag="OsclSocketMethod::MethodDone"></a><p> 267 <table width="100%" cellpadding="2" cellspacing="0" border="0"> 268 <tr> 269 <td class="md"> 270 <table cellpadding="0" cellspacing="0" border="0"> 271 <tr> 272 <td class="md" nowrap valign="top"> void OsclSocketMethod::MethodDone </td> 273 <td class="md" valign="top">( </td> 274 <td class="mdname1" valign="top" nowrap> </td> 275 <td class="md" valign="top">) </td> 276 <td class="md" nowrap><code> [inline, protected]</code></td> 277 </tr> 278 279 </table> 280 </td> 281 </tr> 282 </table> 283 <table cellspacing=5 cellpadding=0 border=0> 284 <tr> 285 <td> 286 287 </td> 288 <td> 289 290 <p> 291 </td> 292 </tr> 293 </table> 294 <a name="b3" doxytag="OsclSocketMethod::Run"></a><p> 295 <table width="100%" cellpadding="2" cellspacing="0" border="0"> 296 <tr> 297 <td class="md"> 298 <table cellpadding="0" cellspacing="0" border="0"> 299 <tr> 300 <td class="md" nowrap valign="top"> void OsclSocketMethod::Run </td> 301 <td class="md" valign="top">( </td> 302 <td class="mdname1" valign="top" nowrap> </td> 303 <td class="md" valign="top">) </td> 304 <td class="md" nowrap><code> [protected, virtual]</code></td> 305 </tr> 306 307 </table> 308 </td> 309 </tr> 310 </table> 311 <table cellspacing=5 cellpadding=0 border=0> 312 <tr> 313 <td> 314 315 </td> 316 <td> 317 318 <p> 319 Handles an active object's request completion event. 320 <p> 321 A derived class must provide an implementation to handle the completed request. If appropriate, it may issue another request. 322 <p> 323 The function is called by the active scheduler when a request completion event occurs, i.e. after the active scheduler's WaitForAnyRequest() function completes. 324 <p> 325 Before calling this active object's <a class="el" href="classOsclSocketMethod.html#b3">Run()</a> function, the active scheduler has: 326 <p> 327 1. decided that this is the highest priority active object with a completed request 328 <p> 329 2. marked this active object's request as complete (i.e. the request is no longer outstanding) 330 <p> 331 <a class="el" href="classOsclSocketMethod.html#b3">Run()</a> runs under a trap harness in the active scheduler. If it leaves, then the active scheduler calls ExecError() to handle the leave. 332 <p> 333 Note that once the active scheduler's Start() function has been called, all user code is run under one of the program's active object's <a class="el" href="classOsclSocketMethod.html#b3">Run()</a> or <a class="el" href="classOsclTimerObject.html#b1">RunError()</a> functions. 334 <p> 335 Implements <a class="el" href="classPVActiveBase.html#a4">PVActiveBase</a>. </td> 336 </tr> 337 </table> 338 <a name="b1" doxytag="OsclSocketMethod::StartMethod"></a><p> 339 <table width="100%" cellpadding="2" cellspacing="0" border="0"> 340 <tr> 341 <td class="md"> 342 <table cellpadding="0" cellspacing="0" border="0"> 343 <tr> 344 <td class="md" nowrap valign="top"> bool OsclSocketMethod::StartMethod </td> 345 <td class="md" valign="top">( </td> 346 <td class="md" nowrap valign="top">int32 </td> 347 <td class="mdname1" valign="top" nowrap> <em>aTimeoutMsec</em> </td> 348 <td class="md" valign="top">) </td> 349 <td class="md" nowrap><code> [protected]</code></td> 350 </tr> 351 352 </table> 353 </td> 354 </tr> 355 </table> 356 <table cellspacing=5 cellpadding=0 border=0> 357 <tr> 358 <td> 359 360 </td> 361 <td> 362 363 <p> 364 </td> 365 </tr> 366 </table> 367 <hr><h2>Field Documentation</h2> 368 <a name="m0" doxytag="OsclSocketMethod::iContainer"></a><p> 369 <table width="100%" cellpadding="2" cellspacing="0" border="0"> 370 <tr> 371 <td class="md"> 372 <table cellpadding="0" cellspacing="0" border="0"> 373 <tr> 374 <td class="md" nowrap valign="top"> <a class="el" href="classOsclIPSocketI.html">OsclIPSocketI</a>& OsclSocketMethod::iContainer 375 </table> 376 </td> 377 </tr> 378 </table> 379 <table cellspacing=5 cellpadding=0 border=0> 380 <tr> 381 <td> 382 383 </td> 384 <td> 385 386 <p> 387 </td> 388 </tr> 389 </table> 390 <a name="m1" doxytag="OsclSocketMethod::iSocketFxn"></a><p> 391 <table width="100%" cellpadding="2" cellspacing="0" border="0"> 392 <tr> 393 <td class="md"> 394 <table cellpadding="0" cellspacing="0" border="0"> 395 <tr> 396 <td class="md" nowrap valign="top"> <a class="el" href="oscl__socket__types_8h.html#a19">TPVSocketFxn</a> OsclSocketMethod::iSocketFxn 397 </table> 398 </td> 399 </tr> 400 </table> 401 <table cellspacing=5 cellpadding=0 border=0> 402 <tr> 403 <td> 404 405 </td> 406 <td> 407 408 <p> 409 </td> 410 </tr> 411 </table> 412 <a name="n0" doxytag="OsclSocketMethod::iSocketRequestAO"></a><p> 413 <table width="100%" cellpadding="2" cellspacing="0" border="0"> 414 <tr> 415 <td class="md"> 416 <table cellpadding="0" cellspacing="0" border="0"> 417 <tr> 418 <td class="md" nowrap valign="top"> <a class="el" href="classOsclSocketRequestAO.html">OsclSocketRequestAO</a>* OsclSocketMethod::iSocketRequestAO<code> [protected]</code> 419 </table> 420 </td> 421 </tr> 422 </table> 423 <table cellspacing=5 cellpadding=0 border=0> 424 <tr> 425 <td> 426 427 </td> 428 <td> 429 430 <p> 431 </td> 432 </tr> 433 </table> 434 <hr>The documentation for this class was generated from the following file:<ul> 435 <li><a class="el" href="oscl__socket__method_8h-source.html">oscl_socket_method.h</a></ul> 436 <hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>OSCL API</small> 437 <address style="align: left;"><small>Posting Version: OPENCORE_20090310 </small> 438 </small></address> 439 </body> 440 </html> 441