blob: 511d6d9138d9b80b0bf874b58b306580f480b095 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>OsclSocketMethod class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.2.18 -->
<center>
<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>
<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>
<p>
<p>Inheritance diagram for OsclSocketMethod:
<p><center><img src="classOsclSocketMethod.png" usemap="#OsclSocketMethod_map" border="0" alt=""></center>
<map name="OsclSocketMethod_map">
<area href="classOsclTimerObject.html" alt="OsclTimerObject" shape="rect" coords="74,112,212,136">
<area href="classHeapBase.html" alt="HeapBase" shape="rect" coords="0,56,138,80">
<area href="classPVActiveBase.html" alt="PVActiveBase" shape="rect" coords="148,56,286,80">
<area href="class__OsclHeapBase.html" alt="_OsclHeapBase" shape="rect" coords="0,0,138,24">
<area href="classOsclAcceptMethod.html" alt="OsclAcceptMethod" shape="rect" coords="222,224,360,248">
<area href="classOsclBindMethod.html" alt="OsclBindMethod" shape="rect" coords="222,280,360,304">
<area href="classOsclConnectMethod.html" alt="OsclConnectMethod" shape="rect" coords="222,336,360,360">
<area href="classOsclListenMethod.html" alt="OsclListenMethod" shape="rect" coords="222,392,360,416">
<area href="classOsclRecvFromMethod.html" alt="OsclRecvFromMethod" shape="rect" coords="222,448,360,472">
<area href="classOsclRecvMethod.html" alt="OsclRecvMethod" shape="rect" coords="222,504,360,528">
<area href="classOsclSendMethod.html" alt="OsclSendMethod" shape="rect" coords="222,560,360,584">
<area href="classOsclSendToMethod.html" alt="OsclSendToMethod" shape="rect" coords="222,616,360,640">
<area href="classOsclShutdownMethod.html" alt="OsclShutdownMethod" shape="rect" coords="222,672,360,696">
</map>
<table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
<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>
<tr><td nowrap align=right valign=top>virtual&nbsp;</td><td valign=bottom><a class="el" href="classOsclSocketMethod.html#a1">~OsclSocketMethod</a> ()</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classOsclSocketMethod.html#a2">Abort</a> ()</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classOsclSocketMethod.html#a3">AbortAll</a> ()</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classOsclSocketMethod.html#a4">CancelMethod</a> ()</td></tr>
<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>
<tr><td colspan=2><br><h2>Data Fields</h2></td></tr>
<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>
<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>
<tr><td colspan=2><br><h2>Protected Methods</h2></td></tr>
<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>
<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>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classOsclSocketMethod.html#b2">MethodDone</a> ()</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classOsclSocketMethod.html#b3">Run</a> ()</td></tr>
<tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr>
<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>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
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.
<p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a name="a0" doxytag="OsclSocketMethod::OsclSocketMethod"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> OsclSocketMethod::OsclSocketMethod </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="el" href="classOsclIPSocketI.html">OsclIPSocketI</a> &amp;&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>aContainer</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const char *&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>name</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap><a class="el" href="oscl__socket__types_8h.html#a19">TPVSocketFxn</a>&nbsp;</td>
<td class="mdname" nowrap>&nbsp; <em>fxn</em></td>
</tr>
<tr>
<td></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [inline]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
</td>
</tr>
</table>
<a name="a1" doxytag="OsclSocketMethod::~OsclSocketMethod"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> virtual OsclSocketMethod::~OsclSocketMethod </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [inline, virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
</td>
</tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a name="a2" doxytag="OsclSocketMethod::Abort"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> void OsclSocketMethod::Abort </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [inline]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
</td>
</tr>
</table>
<a name="a3" doxytag="OsclSocketMethod::AbortAll"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> void OsclSocketMethod::AbortAll </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [inline]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
</td>
</tr>
</table>
<a name="a5" doxytag="OsclSocketMethod::Alloc"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> <a class="el" href="classOscl__DefAlloc.html">Oscl_DefAlloc</a>&amp; OsclSocketMethod::Alloc </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [inline]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
</td>
</tr>
</table>
<a name="a4" doxytag="OsclSocketMethod::CancelMethod"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> void OsclSocketMethod::CancelMethod </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [inline]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
</td>
</tr>
</table>
<a name="b0" doxytag="OsclSocketMethod::ConstructL"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> void OsclSocketMethod::ConstructL </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="el" href="classOsclSocketRequestAO.html">OsclSocketRequestAO</a> *&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>aAO</em> </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [inline, protected]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
</td>
</tr>
</table>
<a name="b2" doxytag="OsclSocketMethod::MethodDone"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> void OsclSocketMethod::MethodDone </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [inline, protected]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
</td>
</tr>
</table>
<a name="b3" doxytag="OsclSocketMethod::Run"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> void OsclSocketMethod::Run </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [protected, virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Handles an active object's request completion event.
<p>
A derived class must provide an implementation to handle the completed request. If appropriate, it may issue another request.
<p>
The function is called by the active scheduler when a request completion event occurs, i.e. after the active scheduler's WaitForAnyRequest() function completes.
<p>
Before calling this active object's <a class="el" href="classOsclSocketMethod.html#b3">Run()</a> function, the active scheduler has:
<p>
1. decided that this is the highest priority active object with a completed request
<p>
2. marked this active object's request as complete (i.e. the request is no longer outstanding)
<p>
<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.
<p>
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.
<p>
Implements <a class="el" href="classPVActiveBase.html#a4">PVActiveBase</a>. </td>
</tr>
</table>
<a name="b1" doxytag="OsclSocketMethod::StartMethod"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> bool OsclSocketMethod::StartMethod </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">int32&nbsp;</td>
<td class="mdname1" valign="top" nowrap>&nbsp; <em>aTimeoutMsec</em> </td>
<td class="md" valign="top">)&nbsp;</td>
<td class="md" nowrap><code> [protected]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
</td>
</tr>
</table>
<hr><h2>Field Documentation</h2>
<a name="m0" doxytag="OsclSocketMethod::iContainer"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> <a class="el" href="classOsclIPSocketI.html">OsclIPSocketI</a>&amp; OsclSocketMethod::iContainer
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
</td>
</tr>
</table>
<a name="m1" doxytag="OsclSocketMethod::iSocketFxn"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> <a class="el" href="oscl__socket__types_8h.html#a19">TPVSocketFxn</a> OsclSocketMethod::iSocketFxn
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
</td>
</tr>
</table>
<a name="n0" doxytag="OsclSocketMethod::iSocketRequestAO"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<tr>
<td class="md">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> <a class="el" href="classOsclSocketRequestAO.html">OsclSocketRequestAO</a>* OsclSocketMethod::iSocketRequestAO<code> [protected]</code>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
&nbsp;
</td>
<td>
<p>
</td>
</tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="oscl__socket__method_8h-source.html">oscl_socket_method.h</a></ul>
<hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>OSCL API</small>
<address style="align: left;"><small>Posting Version: OPENCORE_20090310 </small>
</small></address>
</body>
</html>