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>OsclActiveObject 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>OsclActiveObject Class Reference<br>
     10 <small>
     11 [<a class="el" href="group__osclproc.html">OSCL Proc</a>]</small>
     12 </h1><code>#include &lt;<a class="el" href="oscl__scheduler__ao_8h-source.html">oscl_scheduler_ao.h</a>&gt;</code>
     13 <p>
     14 <p>Inheritance diagram for OsclActiveObject:
     15 <p><center><img src="classOsclActiveObject.png" usemap="#OsclActiveObject_map" border="0" alt=""></center>
     16 <map name="OsclActiveObject_map">
     17 <area href="classHeapBase.html" alt="HeapBase" shape="rect" coords="183,56,356,80">
     18 <area href="classPVActiveBase.html" alt="PVActiveBase" shape="rect" coords="366,56,539,80">
     19 <area href="class__OsclHeapBase.html" alt="_OsclHeapBase" shape="rect" coords="183,0,356,24">
     20 <area href="classOsclAsyncFile.html" alt="OsclAsyncFile" shape="rect" coords="0,168,173,192">
     21 <area href="classOsclDNSRequestAO.html" alt="OsclDNSRequestAO" shape="rect" coords="183,168,356,192">
     22 <area href="classOsclSocketRequestAO.html" alt="OsclSocketRequestAO" shape="rect" coords="366,168,539,192">
     23 <area href="classPVSchedulerStopper.html" alt="PVSchedulerStopper" shape="rect" coords="549,168,722,192">
     24 <area href="classOsclGetHostByNameRequest.html" alt="OsclGetHostByNameRequest" shape="rect" coords="183,224,356,248">
     25 <area href="classOsclAcceptRequest.html" alt="OsclAcceptRequest" shape="rect" coords="549,224,722,248">
     26 <area href="classOsclBindRequest.html" alt="OsclBindRequest" shape="rect" coords="549,280,722,304">
     27 <area href="classOsclConnectRequest.html" alt="OsclConnectRequest" shape="rect" coords="549,336,722,360">
     28 <area href="classOsclListenRequest.html" alt="OsclListenRequest" shape="rect" coords="549,392,722,416">
     29 <area href="classOsclRecvFromRequest.html" alt="OsclRecvFromRequest" shape="rect" coords="549,448,722,472">
     30 <area href="classOsclRecvRequest.html" alt="OsclRecvRequest" shape="rect" coords="549,504,722,528">
     31 <area href="classOsclSendRequest.html" alt="OsclSendRequest" shape="rect" coords="549,560,722,584">
     32 <area href="classOsclSendToRequest.html" alt="OsclSendToRequest" shape="rect" coords="549,616,722,640">
     33 <area href="classOsclShutdownRequest.html" alt="OsclShutdownRequest" shape="rect" coords="549,672,722,696">
     34 </map>
     35 <table border=0 cellpadding=0 cellspacing=0>
     36 <tr><td></td></tr>
     37 <tr><td colspan=2><br><h2>Public Types</h2></td></tr>
     38 <tr><td nowrap align=right valign=top>enum &nbsp;</td><td valign=bottom><a class="el" href="classOsclActiveObject.html#s5">OsclActivePriority</a> { <br>
     39 &nbsp;&nbsp;<a class="el" href="classOsclActiveObject.html#s5s0">EPriorityIdle</a> =  -100, 
     40 <a class="el" href="classOsclActiveObject.html#s5s1">EPriorityLow</a> =  -20, 
     41 <a class="el" href="classOsclActiveObject.html#s5s2">EPriorityNominal</a> =  0, 
     42 <a class="el" href="classOsclActiveObject.html#s5s3">EPriorityHigh</a> =  10, 
     43 <br>
     44 &nbsp;&nbsp;<a class="el" href="classOsclActiveObject.html#s5s4">EPriorityHighest</a> =  20
     45 <br>
     46  }</td></tr>
     47 <tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
     48 <tr><td nowrap align=right valign=top>OSCL_IMPORT_REF&nbsp;</td><td valign=bottom><a class="el" href="classOsclActiveObject.html#a0">OsclActiveObject</a> (int32 aPriority, const char name[])</td></tr>
     49 <tr><td nowrap align=right valign=top>virtual OSCL_IMPORT_REF&nbsp;</td><td valign=bottom><a class="el" href="classOsclActiveObject.html#a1">~OsclActiveObject</a> ()</td></tr>
     50 <tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classOsclActiveObject.html#a2">SetBusy</a> ()</td></tr>
     51 <tr><td nowrap align=right valign=top>OSCL_IMPORT_REF bool&nbsp;</td><td valign=bottom><a class="el" href="classOsclActiveObject.html#a3">IsBusy</a> () const</td></tr>
     52 <tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classOsclActiveObject.html#a4">PendForExec</a> ()</td></tr>
     53 <tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classOsclActiveObject.html#a5">PendComplete</a> (int32 aStatus)</td></tr>
     54 <tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classOsclActiveObject.html#a6">AddToScheduler</a> ()</td></tr>
     55 <tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classOsclActiveObject.html#a7">RemoveFromScheduler</a> ()</td></tr>
     56 <tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classOsclActiveObject.html#a8">RunIfNotReady</a> ()</td></tr>
     57 <tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classOsclActiveObject.html#a9">Cancel</a> ()</td></tr>
     58 <tr><td nowrap align=right valign=top>OSCL_IMPORT_REF int32&nbsp;</td><td valign=bottom><a class="el" href="classOsclActiveObject.html#a10">Priority</a> () const</td></tr>
     59 <tr><td nowrap align=right valign=top>OSCL_IMPORT_REF int32&nbsp;</td><td valign=bottom><a class="el" href="classOsclActiveObject.html#a11">Status</a> () const</td></tr>
     60 <tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classOsclActiveObject.html#a12">SetStatus</a> (int32)</td></tr>
     61 <tr><td nowrap align=right valign=top>OSCL_IMPORT_REF <a class="el" href="classOsclAOStatus.html">OsclAOStatus</a> &amp;&nbsp;</td><td valign=bottom><a class="el" href="classOsclActiveObject.html#a13">StatusRef</a> ()</td></tr>
     62 <tr><td colspan=2><br><h2>Protected Methods</h2></td></tr>
     63 <tr><td nowrap align=right valign=top>virtual OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classOsclActiveObject.html#b0">DoCancel</a> ()</td></tr>
     64 <tr><td nowrap align=right valign=top>virtual OSCL_IMPORT_REF int32&nbsp;</td><td valign=bottom><a class="el" href="classOsclActiveObject.html#b1">RunError</a> (int32 aError)</td></tr>
     65 </table>
     66 <hr><a name="_details"></a><h2>Detailed Description</h2>
     67 User base class for execution objects. OsclActiveObject defines an execution object without any timer. This AO can be used across threads, i.e. the request can be activated in one thread and completed in another. 
     68 <p>
     69 <hr><h2>Member Enumeration Documentation</h2>
     70 <a name="s5" doxytag="OsclActiveObject::OsclActivePriority"></a><p>
     71 <table width="100%" cellpadding="2" cellspacing="0" border="0">
     72   <tr>
     73     <td class="md">
     74       <table cellpadding="0" cellspacing="0" border="0">
     75         <tr>
     76           <td class="md" nowrap valign="top"> enum OsclActiveObject::OsclActivePriority
     77       </table>
     78     </td>
     79   </tr>
     80 </table>
     81 <table cellspacing=5 cellpadding=0 border=0>
     82   <tr>
     83     <td>
     84       &nbsp;
     85     </td>
     86     <td>
     87 
     88 <p>
     89 Scheduling priorities. <dl compact><dt><b>Enumeration values: </b></dt><dd>
     90 <table border=0 cellspacing=2 cellpadding=0>
     91 <tr><td valign=top><em><a name="s5s0" doxytag="EPriorityIdle"></a><em>EPriorityIdle</em></em>&nbsp;</td><td>
     92 A low priority, useful for execution objects representing background processing. </td></tr>
     93 <tr><td valign=top><em><a name="s5s1" doxytag="EPriorityLow"></a><em>EPriorityLow</em></em>&nbsp;</td><td>
     94 A priority higher than EPriorityIdle but lower than EPriorityNominal. </td></tr>
     95 <tr><td valign=top><em><a name="s5s2" doxytag="EPriorityNominal"></a><em>EPriorityNominal</em></em>&nbsp;</td><td>
     96 Most exec objects will have this priority. </td></tr>
     97 <tr><td valign=top><em><a name="s5s3" doxytag="EPriorityHigh"></a><em>EPriorityHigh</em></em>&nbsp;</td><td>
     98 A priority higher than EPriorityNominal; useful for execution objects handling user input. </td></tr>
     99 <tr><td valign=top><em><a name="s5s4" doxytag="EPriorityHighest"></a><em>EPriorityHighest</em></em>&nbsp;</td><td>
    100 A priority higher than EPriorityHighest. </td></tr>
    101 </table>
    102 </dl>
    103     </td>
    104   </tr>
    105 </table>
    106 <hr><h2>Constructor &amp; Destructor Documentation</h2>
    107 <a name="a0" doxytag="OsclActiveObject::OsclActiveObject"></a><p>
    108 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    109   <tr>
    110     <td class="md">
    111       <table cellpadding="0" cellspacing="0" border="0">
    112         <tr>
    113           <td class="md" nowrap valign="top"> OSCL_IMPORT_REF OsclActiveObject::OsclActiveObject </td>
    114           <td class="md" valign="top">(&nbsp;</td>
    115           <td class="md" nowrap valign="top">int32&nbsp;</td>
    116           <td class="mdname" nowrap>&nbsp; <em>aPriority</em>, </td>
    117         </tr>
    118         <tr>
    119           <td></td>
    120           <td></td>
    121           <td class="md" nowrap>const char&nbsp;</td>
    122           <td class="mdname" nowrap>&nbsp; <em>name</em>[]</td>
    123         </tr>
    124         <tr>
    125           <td></td>
    126           <td class="md">)&nbsp;</td>
    127           <td class="md" colspan="2"></td>
    128         </tr>
    129 
    130       </table>
    131     </td>
    132   </tr>
    133 </table>
    134 <table cellspacing=5 cellpadding=0 border=0>
    135   <tr>
    136     <td>
    137       &nbsp;
    138     </td>
    139     <td>
    140 
    141 <p>
    142 Constructor. <dl compact><dt><b>Parameters: </b></dt><dd>
    143 <table border=0 cellspacing=2 cellpadding=0>
    144 <tr><td valign=top><em>aPriority</em>&nbsp;</td><td>
    145 (input param): scheduling priority </td></tr>
    146 <tr><td valign=top><em>name</em>&nbsp;</td><td>
    147 (inpup param): optional name for this AO. </td></tr>
    148 </table>
    149 </dl>    </td>
    150   </tr>
    151 </table>
    152 <a name="a1" doxytag="OsclActiveObject::~OsclActiveObject"></a><p>
    153 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    154   <tr>
    155     <td class="md">
    156       <table cellpadding="0" cellspacing="0" border="0">
    157         <tr>
    158           <td class="md" nowrap valign="top"> virtual OSCL_IMPORT_REF OsclActiveObject::~OsclActiveObject </td>
    159           <td class="md" valign="top">(&nbsp;</td>
    160           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    161           <td class="md" valign="top">)&nbsp;</td>
    162           <td class="md" nowrap><code> [virtual]</code></td>
    163         </tr>
    164 
    165       </table>
    166     </td>
    167   </tr>
    168 </table>
    169 <table cellspacing=5 cellpadding=0 border=0>
    170   <tr>
    171     <td>
    172       &nbsp;
    173     </td>
    174     <td>
    175 
    176 <p>
    177 Destructor.     </td>
    178   </tr>
    179 </table>
    180 <hr><h2>Member Function Documentation</h2>
    181 <a name="a6" doxytag="OsclActiveObject::AddToScheduler"></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"> OSCL_IMPORT_REF void OsclActiveObject::AddToScheduler </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></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 Add this exec object to the current thread's scheduler. 
    207 <p>
    208 Reimplemented from <a class="el" href="classPVActiveBase.html#a6">PVActiveBase</a>.    </td>
    209   </tr>
    210 </table>
    211 <a name="a9" doxytag="OsclActiveObject::Cancel"></a><p>
    212 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    213   <tr>
    214     <td class="md">
    215       <table cellpadding="0" cellspacing="0" border="0">
    216         <tr>
    217           <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void OsclActiveObject::Cancel </td>
    218           <td class="md" valign="top">(&nbsp;</td>
    219           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    220           <td class="md" valign="top">)&nbsp;</td>
    221           <td class="md" nowrap></td>
    222         </tr>
    223 
    224       </table>
    225     </td>
    226   </tr>
    227 </table>
    228 <table cellspacing=5 cellpadding=0 border=0>
    229   <tr>
    230     <td>
    231       &nbsp;
    232     </td>
    233     <td>
    234 
    235 <p>
    236 Cancel any pending request. If the request is readied, this will call the DoCancel routine, wait for the request to cancel, then set the request idle. The AO will not run. If the request is not readied, it does nothing. Request must be canceled from the same thread in which it is scheduled. 
    237 <p>
    238 Reimplemented from <a class="el" href="classPVActiveBase.html#a11">PVActiveBase</a>.    </td>
    239   </tr>
    240 </table>
    241 <a name="b0" doxytag="OsclActiveObject::DoCancel"></a><p>
    242 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    243   <tr>
    244     <td class="md">
    245       <table cellpadding="0" cellspacing="0" border="0">
    246         <tr>
    247           <td class="md" nowrap valign="top"> virtual OSCL_IMPORT_REF void OsclActiveObject::DoCancel </td>
    248           <td class="md" valign="top">(&nbsp;</td>
    249           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    250           <td class="md" valign="top">)&nbsp;</td>
    251           <td class="md" nowrap><code> [protected, virtual]</code></td>
    252         </tr>
    253 
    254       </table>
    255     </td>
    256   </tr>
    257 </table>
    258 <table cellspacing=5 cellpadding=0 border=0>
    259   <tr>
    260     <td>
    261       &nbsp;
    262     </td>
    263     <td>
    264 
    265 <p>
    266 Cancel request handler. This gets called by scheduler when the request is cancelled. The default routine will complete the request. If any additional action is needed, the derived class may override this. If the derived class does override DoCancel, it must complete the request. 
    267 <p>
    268 Implements <a class="el" href="classPVActiveBase.html#a5">PVActiveBase</a>.
    269 <p>
    270 Reimplemented in <a class="el" href="classOsclDNSRequestAO.html#b7">OsclDNSRequestAO</a>, and <a class="el" href="classOsclSocketRequestAO.html#b7">OsclSocketRequestAO</a>.    </td>
    271   </tr>
    272 </table>
    273 <a name="a3" doxytag="OsclActiveObject::IsBusy"></a><p>
    274 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    275   <tr>
    276     <td class="md">
    277       <table cellpadding="0" cellspacing="0" border="0">
    278         <tr>
    279           <td class="md" nowrap valign="top"> OSCL_IMPORT_REF bool OsclActiveObject::IsBusy </td>
    280           <td class="md" valign="top">(&nbsp;</td>
    281           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    282           <td class="md" valign="top">)&nbsp;</td>
    283           <td class="md" nowrap></td>
    284         </tr>
    285 
    286       </table>
    287     </td>
    288   </tr>
    289 </table>
    290 <table cellspacing=5 cellpadding=0 border=0>
    291   <tr>
    292     <td>
    293       &nbsp;
    294     </td>
    295     <td>
    296 
    297 <p>
    298 Return true if this AO is pending, false otherwise.     </td>
    299   </tr>
    300 </table>
    301 <a name="a5" doxytag="OsclActiveObject::PendComplete"></a><p>
    302 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    303   <tr>
    304     <td class="md">
    305       <table cellpadding="0" cellspacing="0" border="0">
    306         <tr>
    307           <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void OsclActiveObject::PendComplete </td>
    308           <td class="md" valign="top">(&nbsp;</td>
    309           <td class="md" nowrap valign="top">int32&nbsp;</td>
    310           <td class="mdname1" valign="top" nowrap>&nbsp; <em>aStatus</em>          </td>
    311           <td class="md" valign="top">)&nbsp;</td>
    312           <td class="md" nowrap></td>
    313         </tr>
    314 
    315       </table>
    316     </td>
    317   </tr>
    318 </table>
    319 <table cellspacing=5 cellpadding=0 border=0>
    320   <tr>
    321     <td>
    322       &nbsp;
    323     </td>
    324     <td>
    325 
    326 <p>
    327 Complete the active request for the AO. This API is thread-safe. If the request is not pending, this call will leave. <dl compact><dt><b>Parameters: </b></dt><dd>
    328 <table border=0 cellspacing=2 cellpadding=0>
    329 <tr><td valign=top><em>aStatus:</em>&nbsp;</td><td>
    330 request completion status. </td></tr>
    331 </table>
    332 </dl>    </td>
    333   </tr>
    334 </table>
    335 <a name="a4" doxytag="OsclActiveObject::PendForExec"></a><p>
    336 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    337   <tr>
    338     <td class="md">
    339       <table cellpadding="0" cellspacing="0" border="0">
    340         <tr>
    341           <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void OsclActiveObject::PendForExec </td>
    342           <td class="md" valign="top">(&nbsp;</td>
    343           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    344           <td class="md" valign="top">)&nbsp;</td>
    345           <td class="md" nowrap></td>
    346         </tr>
    347 
    348       </table>
    349     </td>
    350   </tr>
    351 </table>
    352 <table cellspacing=5 cellpadding=0 border=0>
    353   <tr>
    354     <td>
    355       &nbsp;
    356     </td>
    357     <td>
    358 
    359 <p>
    360 Set request active for this AO and set the status to pending. PendForExec is identical to SetActive, but it additionally sets the request status to OSCL_REQUEST_PENDING.     </td>
    361   </tr>
    362 </table>
    363 <a name="a10" doxytag="OsclActiveObject::Priority"></a><p>
    364 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    365   <tr>
    366     <td class="md">
    367       <table cellpadding="0" cellspacing="0" border="0">
    368         <tr>
    369           <td class="md" nowrap valign="top"> OSCL_IMPORT_REF int32 OsclActiveObject::Priority </td>
    370           <td class="md" valign="top">(&nbsp;</td>
    371           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    372           <td class="md" valign="top">)&nbsp;</td>
    373           <td class="md" nowrap></td>
    374         </tr>
    375 
    376       </table>
    377     </td>
    378   </tr>
    379 </table>
    380 <table cellspacing=5 cellpadding=0 border=0>
    381   <tr>
    382     <td>
    383       &nbsp;
    384     </td>
    385     <td>
    386 
    387 <p>
    388 Return scheduling priority of this exec object.     </td>
    389   </tr>
    390 </table>
    391 <a name="a7" doxytag="OsclActiveObject::RemoveFromScheduler"></a><p>
    392 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    393   <tr>
    394     <td class="md">
    395       <table cellpadding="0" cellspacing="0" border="0">
    396         <tr>
    397           <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void OsclActiveObject::RemoveFromScheduler </td>
    398           <td class="md" valign="top">(&nbsp;</td>
    399           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    400           <td class="md" valign="top">)&nbsp;</td>
    401           <td class="md" nowrap></td>
    402         </tr>
    403 
    404       </table>
    405     </td>
    406   </tr>
    407 </table>
    408 <table cellspacing=5 cellpadding=0 border=0>
    409   <tr>
    410     <td>
    411       &nbsp;
    412     </td>
    413     <td>
    414 
    415 <p>
    416 Remove this AO from its scheduler. Will leave if the calling thread context does not match the scheduling thread. Cancels any readied request before removing. 
    417 <p>
    418 Reimplemented from <a class="el" href="classPVActiveBase.html#a7">PVActiveBase</a>.    </td>
    419   </tr>
    420 </table>
    421 <a name="b1" doxytag="OsclActiveObject::RunError"></a><p>
    422 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    423   <tr>
    424     <td class="md">
    425       <table cellpadding="0" cellspacing="0" border="0">
    426         <tr>
    427           <td class="md" nowrap valign="top"> virtual OSCL_IMPORT_REF int32 OsclActiveObject::RunError </td>
    428           <td class="md" valign="top">(&nbsp;</td>
    429           <td class="md" nowrap valign="top">int32&nbsp;</td>
    430           <td class="mdname1" valign="top" nowrap>&nbsp; <em>aError</em>          </td>
    431           <td class="md" valign="top">)&nbsp;</td>
    432           <td class="md" nowrap><code> [protected, virtual]</code></td>
    433         </tr>
    434 
    435       </table>
    436     </td>
    437   </tr>
    438 </table>
    439 <table cellspacing=5 cellpadding=0 border=0>
    440   <tr>
    441     <td>
    442       &nbsp;
    443     </td>
    444     <td>
    445 
    446 <p>
    447 Run Error handler. This gets called by scheduler when the Run routine leaves. The default implementation simply returns the leave code. If the derived class wants to handle errors from Run, it may override this. The RunError should return OsclErrNone if it handles the error, otherwise it should return the input error code. <dl compact><dt><b>Parameters: </b></dt><dd>
    448 <table border=0 cellspacing=2 cellpadding=0>
    449 <tr><td valign=top><em>aError:</em>&nbsp;</td><td>
    450 the leave code generated by the Run. </td></tr>
    451 </table>
    452 </dl>
    453 <p>
    454 Implements <a class="el" href="classPVActiveBase.html#a3">PVActiveBase</a>.    </td>
    455   </tr>
    456 </table>
    457 <a name="a8" doxytag="OsclActiveObject::RunIfNotReady"></a><p>
    458 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    459   <tr>
    460     <td class="md">
    461       <table cellpadding="0" cellspacing="0" border="0">
    462         <tr>
    463           <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void OsclActiveObject::RunIfNotReady </td>
    464           <td class="md" valign="top">(&nbsp;</td>
    465           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    466           <td class="md" valign="top">)&nbsp;</td>
    467           <td class="md" nowrap></td>
    468         </tr>
    469 
    470       </table>
    471     </td>
    472   </tr>
    473 </table>
    474 <table cellspacing=5 cellpadding=0 border=0>
    475   <tr>
    476     <td>
    477       &nbsp;
    478     </td>
    479     <td>
    480 
    481 <p>
    482 Complete this AO's request immediately. If the AO is already active, this will do nothing. Will leave if the AO is not added to any scheduler, or if the calling thread context does not match the scheduling thread.     </td>
    483   </tr>
    484 </table>
    485 <a name="a2" doxytag="OsclActiveObject::SetBusy"></a><p>
    486 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    487   <tr>
    488     <td class="md">
    489       <table cellpadding="0" cellspacing="0" border="0">
    490         <tr>
    491           <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void OsclActiveObject::SetBusy </td>
    492           <td class="md" valign="top">(&nbsp;</td>
    493           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    494           <td class="md" valign="top">)&nbsp;</td>
    495           <td class="md" nowrap></td>
    496         </tr>
    497 
    498       </table>
    499     </td>
    500   </tr>
    501 </table>
    502 <table cellspacing=5 cellpadding=0 border=0>
    503   <tr>
    504     <td>
    505       &nbsp;
    506     </td>
    507     <td>
    508 
    509 <p>
    510 Set object ready for this AO, additionally sets the request status to OSCL_REQUEST_PENDING. Will leave if the request is already readied, or the execution object is not added to any scheduler, or the calling thread context does not match the scheduler thread.     </td>
    511   </tr>
    512 </table>
    513 <a name="a12" doxytag="OsclActiveObject::SetStatus"></a><p>
    514 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    515   <tr>
    516     <td class="md">
    517       <table cellpadding="0" cellspacing="0" border="0">
    518         <tr>
    519           <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void OsclActiveObject::SetStatus </td>
    520           <td class="md" valign="top">(&nbsp;</td>
    521           <td class="md" nowrap valign="top">int32&nbsp;</td>
    522           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    523           <td class="md" valign="top">)&nbsp;</td>
    524           <td class="md" nowrap></td>
    525         </tr>
    526 
    527       </table>
    528     </td>
    529   </tr>
    530 </table>
    531 <table cellspacing=5 cellpadding=0 border=0>
    532   <tr>
    533     <td>
    534       &nbsp;
    535     </td>
    536     <td>
    537 
    538 <p>
    539     </td>
    540   </tr>
    541 </table>
    542 <a name="a11" doxytag="OsclActiveObject::Status"></a><p>
    543 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    544   <tr>
    545     <td class="md">
    546       <table cellpadding="0" cellspacing="0" border="0">
    547         <tr>
    548           <td class="md" nowrap valign="top"> OSCL_IMPORT_REF int32 OsclActiveObject::Status </td>
    549           <td class="md" valign="top">(&nbsp;</td>
    550           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    551           <td class="md" valign="top">)&nbsp;</td>
    552           <td class="md" nowrap></td>
    553         </tr>
    554 
    555       </table>
    556     </td>
    557   </tr>
    558 </table>
    559 <table cellspacing=5 cellpadding=0 border=0>
    560   <tr>
    561     <td>
    562       &nbsp;
    563     </td>
    564     <td>
    565 
    566 <p>
    567 Request status access     </td>
    568   </tr>
    569 </table>
    570 <a name="a13" doxytag="OsclActiveObject::StatusRef"></a><p>
    571 <table width="100%" cellpadding="2" cellspacing="0" border="0">
    572   <tr>
    573     <td class="md">
    574       <table cellpadding="0" cellspacing="0" border="0">
    575         <tr>
    576           <td class="md" nowrap valign="top"> OSCL_IMPORT_REF <a class="el" href="classOsclAOStatus.html">OsclAOStatus</a>&amp; OsclActiveObject::StatusRef </td>
    577           <td class="md" valign="top">(&nbsp;</td>
    578           <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
    579           <td class="md" valign="top">)&nbsp;</td>
    580           <td class="md" nowrap></td>
    581         </tr>
    582 
    583       </table>
    584     </td>
    585   </tr>
    586 </table>
    587 <table cellspacing=5 cellpadding=0 border=0>
    588   <tr>
    589     <td>
    590       &nbsp;
    591     </td>
    592     <td>
    593 
    594 <p>
    595     </td>
    596   </tr>
    597 </table>
    598 <hr>The documentation for this class was generated from the following file:<ul>
    599 <li><a class="el" href="oscl__scheduler__ao_8h-source.html">oscl_scheduler_ao.h</a></ul>
    600 <hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>OSCL API</small>
    601 <address style="align: left;"><small>Posting Version: OPENCORE_20090310 </small>
    602 </small></address>
    603 </body>
    604 </html>
    605