• 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>Oscl_Queue_Base 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>Oscl_Queue_Base Class Reference<br>
10<small>
11[<a class="el" href="group__osclbase.html">OSCL Base</a>]</small>
12</h1><code>#include &lt;<a class="el" href="oscl__queue_8h-source.html">oscl_queue.h</a>&gt;</code>
13<p>
14<p>Inheritance diagram for Oscl_Queue_Base:
15<p><center><img src="classOscl__Queue__Base.png" usemap="#Oscl_Queue_Base_map" border="0" alt=""></center>
16<map name="Oscl_Queue_Base_map">
17<area href="classOscl__Queue.html" alt="Oscl_Queue< T, Alloc >" shape="rect" coords="0,56,152,80">
18</map>
19<table border=0 cellpadding=0 cellspacing=0>
20<tr><td></td></tr>
21<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
22<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="classOscl__Queue__Base.html#a0">size</a> () const</td></tr>
23<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="classOscl__Queue__Base.html#a1">capacity</a> () const</td></tr>
24<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="classOscl__Queue__Base.html#a2">empty</a> () const</td></tr>
25<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classOscl__Queue__Base.html#a3">reserve</a> (uint32 n)</td></tr>
26<tr><td colspan=2><br><h2>Protected Methods</h2></td></tr>
27<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classOscl__Queue__Base.html#b0">construct</a> (<a class="el" href="classOscl__Opaque__Type__Alloc.html">Oscl_Opaque_Type_Alloc</a> *aType)</td></tr>
28<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classOscl__Queue__Base.html#b1">construct</a> (<a class="el" href="classOscl__Opaque__Type__Alloc.html">Oscl_Opaque_Type_Alloc</a> *aType, uint32 n)</td></tr>
29<tr><td nowrap align=right valign=top>virtual&nbsp;</td><td valign=bottom><a class="el" href="classOscl__Queue__Base.html#b2">~Oscl_Queue_Base</a> ()</td></tr>
30<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classOscl__Queue__Base.html#b3">destroy</a> ()</td></tr>
31<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classOscl__Queue__Base.html#b4">push</a> (const <a class="el" href="group__osclbase.html#a25">OsclAny</a> *x)</td></tr>
32<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classOscl__Queue__Base.html#b5">pop</a> ()</td></tr>
33<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF void&nbsp;</td><td valign=bottom><a class="el" href="classOscl__Queue__Base.html#b6">clear</a> ()</td></tr>
34<tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr>
35<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="classOscl__Queue__Base.html#n0">numelems</a></td></tr>
36<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="classOscl__Queue__Base.html#n1">bufsize</a></td></tr>
37<tr><td nowrap align=right valign=top><a class="el" href="group__osclbase.html#a25">OsclAny</a> *&nbsp;</td><td valign=bottom><a class="el" href="classOscl__Queue__Base.html#n2">elems</a></td></tr>
38<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="classOscl__Queue__Base.html#n3">sizeof_T</a></td></tr>
39<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="classOscl__Queue__Base.html#n4">ifront</a></td></tr>
40<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="classOscl__Queue__Base.html#n5">irear</a></td></tr>
41</table>
42<hr><a name="_details"></a><h2>Detailed Description</h2>
43Oscl_Queue_Base is a non-templatized base class for <a class="el" href="classOscl__Queue.html">Oscl_Queue</a>. The purpose of this base class is to avoid large inline routines in the <a class="el" href="classOscl__Queue.html">Oscl_Queue</a> implementation. This class is not intended for direct instantiation except by <a class="el" href="classOscl__Queue.html">Oscl_Queue</a>.
44<p>
45<hr><h2>Constructor &amp; Destructor Documentation</h2>
46<a name="b2" doxytag="Oscl_Queue_Base::~Oscl_Queue_Base"></a><p>
47<table width="100%" cellpadding="2" cellspacing="0" border="0">
48  <tr>
49    <td class="md">
50      <table cellpadding="0" cellspacing="0" border="0">
51        <tr>
52          <td class="md" nowrap valign="top"> virtual Oscl_Queue_Base::~Oscl_Queue_Base </td>
53          <td class="md" valign="top">(&nbsp;</td>
54          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
55          <td class="md" valign="top">)&nbsp;</td>
56          <td class="md" nowrap><code> [inline, protected, virtual]</code></td>
57        </tr>
58
59      </table>
60    </td>
61  </tr>
62</table>
63<table cellspacing=5 cellpadding=0 border=0>
64  <tr>
65    <td>
66      &nbsp;
67    </td>
68    <td>
69
70<p>
71The destructor.     </td>
72  </tr>
73</table>
74<hr><h2>Member Function Documentation</h2>
75<a name="a1" doxytag="Oscl_Queue_Base::capacity"></a><p>
76<table width="100%" cellpadding="2" cellspacing="0" border="0">
77  <tr>
78    <td class="md">
79      <table cellpadding="0" cellspacing="0" border="0">
80        <tr>
81          <td class="md" nowrap valign="top"> uint32 Oscl_Queue_Base::capacity </td>
82          <td class="md" valign="top">(&nbsp;</td>
83          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
84          <td class="md" valign="top">)&nbsp;</td>
85          <td class="md" nowrap> const<code> [inline]</code></td>
86        </tr>
87
88      </table>
89    </td>
90  </tr>
91</table>
92<table cellspacing=5 cellpadding=0 border=0>
93  <tr>
94    <td>
95      &nbsp;
96    </td>
97    <td>
98
99<p>
100Returns the allocated memory of the queue.     </td>
101  </tr>
102</table>
103<a name="b6" doxytag="Oscl_Queue_Base::clear"></a><p>
104<table width="100%" cellpadding="2" cellspacing="0" border="0">
105  <tr>
106    <td class="md">
107      <table cellpadding="0" cellspacing="0" border="0">
108        <tr>
109          <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void Oscl_Queue_Base::clear </td>
110          <td class="md" valign="top">(&nbsp;</td>
111          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
112          <td class="md" valign="top">)&nbsp;</td>
113          <td class="md" nowrap><code> [protected]</code></td>
114        </tr>
115
116      </table>
117    </td>
118  </tr>
119</table>
120<table cellspacing=5 cellpadding=0 border=0>
121  <tr>
122    <td>
123      &nbsp;
124    </td>
125    <td>
126
127<p>
128Removes all elements.
129<p>
130Reimplemented in <a class="el" href="classOscl__Queue.html#a9">Oscl_Queue&lt; T, Alloc &gt;</a>.    </td>
131  </tr>
132</table>
133<a name="b1" doxytag="Oscl_Queue_Base::construct"></a><p>
134<table width="100%" cellpadding="2" cellspacing="0" border="0">
135  <tr>
136    <td class="md">
137      <table cellpadding="0" cellspacing="0" border="0">
138        <tr>
139          <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void Oscl_Queue_Base::construct </td>
140          <td class="md" valign="top">(&nbsp;</td>
141          <td class="md" nowrap valign="top"><a class="el" href="classOscl__Opaque__Type__Alloc.html">Oscl_Opaque_Type_Alloc</a> *&nbsp;</td>
142          <td class="mdname" nowrap>&nbsp; <em>aType</em>, </td>
143        </tr>
144        <tr>
145          <td></td>
146          <td></td>
147          <td class="md" nowrap>uint32&nbsp;</td>
148          <td class="mdname" nowrap>&nbsp; <em>n</em></td>
149        </tr>
150        <tr>
151          <td></td>
152          <td class="md">)&nbsp;</td>
153          <td class="md" colspan="2"><code> [protected]</code></td>
154        </tr>
155
156      </table>
157    </td>
158  </tr>
159</table>
160<table cellspacing=5 cellpadding=0 border=0>
161  <tr>
162    <td>
163      &nbsp;
164    </td>
165    <td>
166
167<p>
168    </td>
169  </tr>
170</table>
171<a name="b0" doxytag="Oscl_Queue_Base::construct"></a><p>
172<table width="100%" cellpadding="2" cellspacing="0" border="0">
173  <tr>
174    <td class="md">
175      <table cellpadding="0" cellspacing="0" border="0">
176        <tr>
177          <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void Oscl_Queue_Base::construct </td>
178          <td class="md" valign="top">(&nbsp;</td>
179          <td class="md" nowrap valign="top"><a class="el" href="classOscl__Opaque__Type__Alloc.html">Oscl_Opaque_Type_Alloc</a> *&nbsp;</td>
180          <td class="mdname1" valign="top" nowrap>&nbsp; <em>aType</em>          </td>
181          <td class="md" valign="top">)&nbsp;</td>
182          <td class="md" nowrap><code> [protected]</code></td>
183        </tr>
184
185      </table>
186    </td>
187  </tr>
188</table>
189<table cellspacing=5 cellpadding=0 border=0>
190  <tr>
191    <td>
192      &nbsp;
193    </td>
194    <td>
195
196<p>
197    </td>
198  </tr>
199</table>
200<a name="b3" doxytag="Oscl_Queue_Base::destroy"></a><p>
201<table width="100%" cellpadding="2" cellspacing="0" border="0">
202  <tr>
203    <td class="md">
204      <table cellpadding="0" cellspacing="0" border="0">
205        <tr>
206          <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void Oscl_Queue_Base::destroy </td>
207          <td class="md" valign="top">(&nbsp;</td>
208          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
209          <td class="md" valign="top">)&nbsp;</td>
210          <td class="md" nowrap><code> [protected]</code></td>
211        </tr>
212
213      </table>
214    </td>
215  </tr>
216</table>
217<table cellspacing=5 cellpadding=0 border=0>
218  <tr>
219    <td>
220      &nbsp;
221    </td>
222    <td>
223
224<p>
225Like an explicit destructor call.     </td>
226  </tr>
227</table>
228<a name="a2" doxytag="Oscl_Queue_Base::empty"></a><p>
229<table width="100%" cellpadding="2" cellspacing="0" border="0">
230  <tr>
231    <td class="md">
232      <table cellpadding="0" cellspacing="0" border="0">
233        <tr>
234          <td class="md" nowrap valign="top"> bool Oscl_Queue_Base::empty </td>
235          <td class="md" valign="top">(&nbsp;</td>
236          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
237          <td class="md" valign="top">)&nbsp;</td>
238          <td class="md" nowrap> const<code> [inline]</code></td>
239        </tr>
240
241      </table>
242    </td>
243  </tr>
244</table>
245<table cellspacing=5 cellpadding=0 border=0>
246  <tr>
247    <td>
248      &nbsp;
249    </td>
250    <td>
251
252<p>
253True if there are no elements in the queue     </td>
254  </tr>
255</table>
256<a name="b5" doxytag="Oscl_Queue_Base::pop"></a><p>
257<table width="100%" cellpadding="2" cellspacing="0" border="0">
258  <tr>
259    <td class="md">
260      <table cellpadding="0" cellspacing="0" border="0">
261        <tr>
262          <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void Oscl_Queue_Base::pop </td>
263          <td class="md" valign="top">(&nbsp;</td>
264          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
265          <td class="md" valign="top">)&nbsp;</td>
266          <td class="md" nowrap><code> [protected]</code></td>
267        </tr>
268
269      </table>
270    </td>
271  </tr>
272</table>
273<table cellspacing=5 cellpadding=0 border=0>
274  <tr>
275    <td>
276      &nbsp;
277    </td>
278    <td>
279
280<p>
281Removes the first element
282<p>
283Reimplemented in <a class="el" href="classOscl__Queue.html#a6">Oscl_Queue&lt; T, Alloc &gt;</a>.    </td>
284  </tr>
285</table>
286<a name="b4" doxytag="Oscl_Queue_Base::push"></a><p>
287<table width="100%" cellpadding="2" cellspacing="0" border="0">
288  <tr>
289    <td class="md">
290      <table cellpadding="0" cellspacing="0" border="0">
291        <tr>
292          <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void Oscl_Queue_Base::push </td>
293          <td class="md" valign="top">(&nbsp;</td>
294          <td class="md" nowrap valign="top">const <a class="el" href="group__osclbase.html#a25">OsclAny</a> *&nbsp;</td>
295          <td class="mdname1" valign="top" nowrap>&nbsp; <em>x</em>          </td>
296          <td class="md" valign="top">)&nbsp;</td>
297          <td class="md" nowrap><code> [protected]</code></td>
298        </tr>
299
300      </table>
301    </td>
302  </tr>
303</table>
304<table cellspacing=5 cellpadding=0 border=0>
305  <tr>
306    <td>
307      &nbsp;
308    </td>
309    <td>
310
311<p>
312Inserts a new element at the end. Queue will be grown if necessary. If allocation fails, an OSCL_LEAVE will occur <dl compact><dt><b>Parameters: </b></dt><dd>
313<table border=0 cellspacing=2 cellpadding=0>
314<tr><td valign=top><em>x</em>&nbsp;</td><td>
315new element </td></tr>
316</table>
317</dl>    </td>
318  </tr>
319</table>
320<a name="a3" doxytag="Oscl_Queue_Base::reserve"></a><p>
321<table width="100%" cellpadding="2" cellspacing="0" border="0">
322  <tr>
323    <td class="md">
324      <table cellpadding="0" cellspacing="0" border="0">
325        <tr>
326          <td class="md" nowrap valign="top"> OSCL_IMPORT_REF void Oscl_Queue_Base::reserve </td>
327          <td class="md" valign="top">(&nbsp;</td>
328          <td class="md" nowrap valign="top">uint32&nbsp;</td>
329          <td class="mdname1" valign="top" nowrap>&nbsp; <em>n</em>          </td>
330          <td class="md" valign="top">)&nbsp;</td>
331          <td class="md" nowrap></td>
332        </tr>
333
334      </table>
335    </td>
336  </tr>
337</table>
338<table cellspacing=5 cellpadding=0 border=0>
339  <tr>
340    <td>
341      &nbsp;
342    </td>
343    <td>
344
345<p>
346Reallocates memory if necessary to a capacity of n elements. The main reason for reserve is efficiency. If you know the capacity to which your vector must grow, then it is more efficient to allocate the vector all at once rather than rely on the automatic reallocation scheme. This also helps cotrol the invalidation of iterators. <dl compact><dt><b>Parameters: </b></dt><dd>
347<table border=0 cellspacing=2 cellpadding=0>
348<tr><td valign=top><em>n</em>&nbsp;</td><td>
349size of vector </td></tr>
350</table>
351</dl>    </td>
352  </tr>
353</table>
354<a name="a0" doxytag="Oscl_Queue_Base::size"></a><p>
355<table width="100%" cellpadding="2" cellspacing="0" border="0">
356  <tr>
357    <td class="md">
358      <table cellpadding="0" cellspacing="0" border="0">
359        <tr>
360          <td class="md" nowrap valign="top"> uint32 Oscl_Queue_Base::size </td>
361          <td class="md" valign="top">(&nbsp;</td>
362          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
363          <td class="md" valign="top">)&nbsp;</td>
364          <td class="md" nowrap> const<code> [inline]</code></td>
365        </tr>
366
367      </table>
368    </td>
369  </tr>
370</table>
371<table cellspacing=5 cellpadding=0 border=0>
372  <tr>
373    <td>
374      &nbsp;
375    </td>
376    <td>
377
378<p>
379Returns the size of the queue.     </td>
380  </tr>
381</table>
382<hr><h2>Field Documentation</h2>
383<a name="n1" doxytag="Oscl_Queue_Base::bufsize"></a><p>
384<table width="100%" cellpadding="2" cellspacing="0" border="0">
385  <tr>
386    <td class="md">
387      <table cellpadding="0" cellspacing="0" border="0">
388        <tr>
389          <td class="md" nowrap valign="top"> uint32 Oscl_Queue_Base::bufsize<code> [protected]</code>
390      </table>
391    </td>
392  </tr>
393</table>
394<table cellspacing=5 cellpadding=0 border=0>
395  <tr>
396    <td>
397      &nbsp;
398    </td>
399    <td>
400
401<p>
402    </td>
403  </tr>
404</table>
405<a name="n2" doxytag="Oscl_Queue_Base::elems"></a><p>
406<table width="100%" cellpadding="2" cellspacing="0" border="0">
407  <tr>
408    <td class="md">
409      <table cellpadding="0" cellspacing="0" border="0">
410        <tr>
411          <td class="md" nowrap valign="top"> <a class="el" href="group__osclbase.html#a25">OsclAny</a>* Oscl_Queue_Base::elems<code> [protected]</code>
412      </table>
413    </td>
414  </tr>
415</table>
416<table cellspacing=5 cellpadding=0 border=0>
417  <tr>
418    <td>
419      &nbsp;
420    </td>
421    <td>
422
423<p>
424    </td>
425  </tr>
426</table>
427<a name="n4" doxytag="Oscl_Queue_Base::ifront"></a><p>
428<table width="100%" cellpadding="2" cellspacing="0" border="0">
429  <tr>
430    <td class="md">
431      <table cellpadding="0" cellspacing="0" border="0">
432        <tr>
433          <td class="md" nowrap valign="top"> uint32 Oscl_Queue_Base::ifront<code> [protected]</code>
434      </table>
435    </td>
436  </tr>
437</table>
438<table cellspacing=5 cellpadding=0 border=0>
439  <tr>
440    <td>
441      &nbsp;
442    </td>
443    <td>
444
445<p>
446    </td>
447  </tr>
448</table>
449<a name="n5" doxytag="Oscl_Queue_Base::irear"></a><p>
450<table width="100%" cellpadding="2" cellspacing="0" border="0">
451  <tr>
452    <td class="md">
453      <table cellpadding="0" cellspacing="0" border="0">
454        <tr>
455          <td class="md" nowrap valign="top"> uint32 Oscl_Queue_Base::irear<code> [protected]</code>
456      </table>
457    </td>
458  </tr>
459</table>
460<table cellspacing=5 cellpadding=0 border=0>
461  <tr>
462    <td>
463      &nbsp;
464    </td>
465    <td>
466
467<p>
468    </td>
469  </tr>
470</table>
471<a name="n0" doxytag="Oscl_Queue_Base::numelems"></a><p>
472<table width="100%" cellpadding="2" cellspacing="0" border="0">
473  <tr>
474    <td class="md">
475      <table cellpadding="0" cellspacing="0" border="0">
476        <tr>
477          <td class="md" nowrap valign="top"> uint32 Oscl_Queue_Base::numelems<code> [protected]</code>
478      </table>
479    </td>
480  </tr>
481</table>
482<table cellspacing=5 cellpadding=0 border=0>
483  <tr>
484    <td>
485      &nbsp;
486    </td>
487    <td>
488
489<p>
490    </td>
491  </tr>
492</table>
493<a name="n3" doxytag="Oscl_Queue_Base::sizeof_T"></a><p>
494<table width="100%" cellpadding="2" cellspacing="0" border="0">
495  <tr>
496    <td class="md">
497      <table cellpadding="0" cellspacing="0" border="0">
498        <tr>
499          <td class="md" nowrap valign="top"> uint32 Oscl_Queue_Base::sizeof_T<code> [protected]</code>
500      </table>
501    </td>
502  </tr>
503</table>
504<table cellspacing=5 cellpadding=0 border=0>
505  <tr>
506    <td>
507      &nbsp;
508    </td>
509    <td>
510
511<p>
512    </td>
513  </tr>
514</table>
515<hr>The documentation for this class was generated from the following file:<ul>
516<li><a class="el" href="oscl__queue_8h-source.html">oscl_queue.h</a></ul>
517<hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>OSCL API</small>
518<address style="align: left;"><small>Posting Version: OPENCORE_20090310 </small>
519</small></address>
520</body>
521</html>
522