Home | History | Annotate | Download | only in oscl_html
      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> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
      9 <hr><h1>OsclSocketMethod Class Reference</h1><code>#include &lt;<a class="el" href="oscl__socket__method_8h-source.html">oscl_socket_method.h</a>&gt;</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>&nbsp;</td><td valign=bottom><a class="el" href="classOsclSocketMethod.html#a0">OsclSocketMethod</a> (<a class="el" href="classOsclIPSocketI.html">OsclIPSocketI</a> &amp;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&nbsp;</td><td valign=bottom><a class="el" href="classOsclSocketMethod.html#a1">~OsclSocketMethod</a> ()</td></tr>
     33 <tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classOsclSocketMethod.html#a2">Abort</a> ()</td></tr>
     34 <tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classOsclSocketMethod.html#a3">AbortAll</a> ()</td></tr>
     35 <tr><td nowrap align=right valign=top>void&nbsp;</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> &amp;&nbsp;</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> &amp;&nbsp;</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>&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</td><td valign=bottom><a class="el" href="classOsclSocketMethod.html#b2">MethodDone</a> ()</td></tr>
     44 <tr><td nowrap align=right valign=top>void&nbsp;</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> *&nbsp;</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 &amp; 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">(&nbsp;</td>
     60           <td class="md" nowrap valign="top"><a class="el" href="classOsclIPSocketI.html">OsclIPSocketI</a> &amp;&nbsp;</td>
     61           <td class="mdname" nowrap>&nbsp; <em>aContainer</em>, </td>
     62         </tr>
     63         <tr>
     64           <td></td>
     65           <td></td>
     66           <td class="md" nowrap>const char *&nbsp;</td>
     67           <td class="mdname" nowrap>&nbsp; <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>&nbsp;</td>
     73           <td class="mdname" nowrap>&nbsp; <em>fxn</em></td>
     74         </tr>
     75         <tr>
     76           <td></td>
     77           <td class="md">)&nbsp;</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       &nbsp;
     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">(&nbsp;</td>
    104           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    105           <td class="md" valign="top">)&nbsp;</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       &nbsp;
    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">(&nbsp;</td>
    133           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    134           <td class="md" valign="top">)&nbsp;</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       &nbsp;
    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">(&nbsp;</td>
    161           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    162           <td class="md" valign="top">)&nbsp;</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       &nbsp;
    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>&amp; OsclSocketMethod::Alloc </td>
    188           <td class="md" valign="top">(&nbsp;</td>
    189           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    190           <td class="md" valign="top">)&nbsp;</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       &nbsp;
    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">(&nbsp;</td>
    217           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    218           <td class="md" valign="top">)&nbsp;</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       &nbsp;
    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">(&nbsp;</td>
    245           <td class="md" nowrap valign="top"><a class="el" href="classOsclSocketRequestAO.html">OsclSocketRequestAO</a> *&nbsp;</td>
    246           <td class="mdname1" valign="top" nowrap>&nbsp; <em>aAO</em>          </td>
    247           <td class="md" valign="top">)&nbsp;</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       &nbsp;
    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">(&nbsp;</td>
    274           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    275           <td class="md" valign="top">)&nbsp;</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       &nbsp;
    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">(&nbsp;</td>
    302           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    303           <td class="md" valign="top">)&nbsp;</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       &nbsp;
    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">(&nbsp;</td>
    346           <td class="md" nowrap valign="top">int32&nbsp;</td>
    347           <td class="mdname1" valign="top" nowrap>&nbsp; <em>aTimeoutMsec</em>          </td>
    348           <td class="md" valign="top">)&nbsp;</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       &nbsp;
    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>&amp; OsclSocketMethod::iContainer
    375       </table>
    376     </td>
    377   </tr>
    378 </table>
    379 <table cellspacing=5 cellpadding=0 border=0>
    380   <tr>
    381     <td>
    382       &nbsp;
    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       &nbsp;
    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       &nbsp;
    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