• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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>
49OsclSocketMethod 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>
319Handles an active object's request completion event.
320<p>
321A derived class must provide an implementation to handle the completed request. If appropriate, it may issue another request.
322<p>
323The 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>
325Before calling this active object's <a class="el" href="classOsclSocketMethod.html#b3">Run()</a> function, the active scheduler has:
326<p>
3271. decided that this is the highest priority active object with a completed request
328<p>
3292. 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>
333Note 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>
335Implements <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