• 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_vector.h Source File</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_vector.h</h1><a href="oscl__vector_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">// -*- c++ -*-</span>
1000002 <span class="comment">// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =</span>
1100003
1200004 <span class="comment">//                     O S C L _ V E C T O R</span>
1300005
1400006 <span class="comment">// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =</span>
1500007
1600017 <span class="preprocessor">#ifndef OSCL_VECTOR_H_INCLUDED</span>
1700018 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_VECTOR_H_INCLUDED</span>
1800019 <span class="preprocessor"></span>
1900020 <span class="preprocessor">#ifndef OSCL_BASE_H_INCLUDED</span>
2000021 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__base_8h.html">oscl_base.h</a>"</span>
2100022 <span class="preprocessor">#endif</span>
2200023 <span class="preprocessor"></span>
2300024 <span class="preprocessor">#ifndef OSCL_MEM_BASIC_FUNCTIONS_H_INCLUDED</span>
2400025 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__mem__basic__functions_8h.html">oscl_mem_basic_functions.h</a>"</span>
2500026 <span class="preprocessor">#endif</span>
2600027 <span class="preprocessor"></span>
2700028 <span class="preprocessor">#ifndef OSCL_ASSERT_H_INCLUDED</span>
2800029 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__assert_8h.html">oscl_assert.h</a>"</span>
2900030 <span class="preprocessor">#endif</span>
3000031 <span class="preprocessor"></span>
3100032 <span class="preprocessor">#ifndef OSCL_OPAQUE_TYPE_H_INCLUDED</span>
3200033 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__opaque__type_8h.html">oscl_opaque_type.h</a>"</span>
3300034 <span class="preprocessor">#endif</span>
3400035 <span class="preprocessor"></span>
3500036 <span class="preprocessor">#ifndef OSCL_DEF_ALLOC_H_INCLUDED</span>
3600037 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__defalloc_8h.html">oscl_defalloc.h</a>"</span>
3700038 <span class="preprocessor">#endif</span>
3800039 <span class="preprocessor"></span>
39<a name="l00047"></a><a class="code" href="classOscl__Vector__Base.html">00047</a> <span class="keyword">class </span><a class="code" href="classOscl__Vector__Base.html">Oscl_Vector_Base</a>
4000048 {
4100049     <span class="keyword">public</span>:
42<a name="l00053"></a><a class="code" href="classOscl__Vector__Base.html#a0">00053</a>         uint32 <a class="code" href="classOscl__Vector__Base.html#a0">size</a>()<span class="keyword"> const</span>
4300054 <span class="keyword">        </span>{
4400055             <span class="keywordflow">return</span> <a class="code" href="classOscl__Vector__Base.html#n0">numelems</a>;
4500056         }
4600057
47<a name="l00061"></a><a class="code" href="classOscl__Vector__Base.html#a1">00061</a>         uint32 <a class="code" href="classOscl__Vector__Base.html#a1">capacity</a>()<span class="keyword"> const</span>
4800062 <span class="keyword">        </span>{
4900063             <span class="keywordflow">return</span> <a class="code" href="classOscl__Vector__Base.html#n1">bufsize</a>;
5000064         }
5100065
52<a name="l00069"></a><a class="code" href="classOscl__Vector__Base.html#a2">00069</a>         <span class="keywordtype">bool</span> <a class="code" href="classOscl__Vector__Base.html#a2">empty</a>()<span class="keyword"> const</span>
5300070 <span class="keyword">        </span>{
5400071             <span class="keywordflow">return</span> <a class="code" href="classOscl__Vector__Base.html#n0">numelems</a> == 0;
5500072         }
5600073
5700082         OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector__Base.html#a3">reserve</a>(uint32 n) ;
5800083
5900084     <span class="keyword">protected</span>:
6000085
6100086         <span class="comment">//for use in default constructor.  vtable isn't available in c'tor so this is a subroutine.</span>
6200087         OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector__Base.html#b0">construct</a>(<a class="code" href="classOscl__Opaque__Type__Alloc.html">Oscl_Opaque_Type_Alloc</a>* aType);
6300088
6400089         <span class="comment">//for use in constructor with pre-allocation for "n" elements.</span>
6500090         OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector__Base.html#b0">construct</a>(<a class="code" href="classOscl__Opaque__Type__Alloc.html">Oscl_Opaque_Type_Alloc</a>* aType, uint32 n) ;
6600091
6700092         <span class="comment">//for use in copy constructor.</span>
6800093         OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector__Base.html#b0">construct</a>(<a class="code" href="classOscl__Opaque__Type__Alloc.html">Oscl_Opaque_Type_Alloc</a>* aType, <span class="keyword">const</span> <a class="code" href="classOscl__Vector__Base.html">Oscl_Vector_Base</a>&amp; x);
6900094
70<a name="l00098"></a><a class="code" href="classOscl__Vector__Base.html#b3">00098</a>         <span class="keyword">virtual</span> <a class="code" href="classOscl__Vector__Base.html#b3">~Oscl_Vector_Base</a>()
7100099         {}
7200100
7300107         OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector__Base.html#b4">push_back</a>(<span class="keyword">const</span> <a class="code" href="group__osclbase.html#a25">OsclAny</a>* x) ;
7400108
7500112         OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector__Base.html#b5">pop_back</a>() ;
7600113
7700120         OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector__Base.html#b6">push_front</a>(<span class="keyword">const</span> <a class="code" href="group__osclbase.html#a25">OsclAny</a>* x) ;
7800121
7900127         OSCL_IMPORT_REF <a class="code" href="group__osclbase.html#a25">OsclAny</a>* <a class="code" href="classOscl__Vector__Base.html#b7">insert</a>(<a class="code" href="group__osclbase.html#a25">OsclAny</a>* pos, <span class="keyword">const</span> <a class="code" href="group__osclbase.html#a25">OsclAny</a>* x);
8000128
8100135         OSCL_IMPORT_REF <a class="code" href="group__osclbase.html#a25">OsclAny</a>* <a class="code" href="classOscl__Vector__Base.html#b8">erase</a>(<a class="code" href="group__osclbase.html#a25">OsclAny</a>* pos) ;
8200136
8300144         OSCL_IMPORT_REF <a class="code" href="group__osclbase.html#a25">OsclAny</a>* <a class="code" href="classOscl__Vector__Base.html#b8">erase</a>(<a class="code" href="group__osclbase.html#a25">OsclAny</a>* first, <a class="code" href="group__osclbase.html#a25">OsclAny</a>* last) ;
8400145
8500146         <span class="comment">//copy vector x into this vector</span>
8600147         OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector__Base.html#b10">assign_vector</a>(<span class="keyword">const</span> <a class="code" href="classOscl__Vector__Base.html">Oscl_Vector_Base</a>&amp; x);
8700148
8800149         OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector__Base.html#b11">destroy</a>();
8900150
90<a name="l00151"></a><a class="code" href="classOscl__Vector__Base.html#n0">00151</a>         uint32 <a class="code" href="classOscl__Vector__Base.html#n0">numelems</a>; <span class="comment">//number of T items in buffer.</span>
91<a name="l00152"></a><a class="code" href="classOscl__Vector__Base.html#n1">00152</a>         uint32 <a class="code" href="classOscl__Vector__Base.html#n1">bufsize</a>; <span class="comment">//available bufsize as number of T-sized items.</span>
92<a name="l00153"></a><a class="code" href="classOscl__Vector__Base.html#n2">00153</a>         <a class="code" href="group__osclbase.html#a25">OsclAny</a>* <a class="code" href="classOscl__Vector__Base.html#n2">elems</a>; <span class="comment">//buffer</span>
93<a name="l00154"></a><a class="code" href="classOscl__Vector__Base.html#n3">00154</a>         uint32 <a class="code" href="classOscl__Vector__Base.html#n3">sizeof_T</a>;
9400155
95<a name="l00156"></a><a class="code" href="classOscl__Vector__Base.html#l0">00156</a>         <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classOsclPriorityQueueBase.html">OsclPriorityQueueBase</a>;
9600157
9700158     <span class="keyword">private</span>:
9800159
9900163         <a class="code" href="group__osclbase.html#a25">OsclAny</a>* increment_T(<a class="code" href="group__osclbase.html#a25">OsclAny</a>* p_T, int32 n)<span class="keyword"> const</span>
10000164 <span class="keyword">        </span>{
10100165             <span class="keywordflow">return</span> (<a class="code" href="group__osclbase.html#a25">OsclAny</a>*)((int32)p_T + n*<a class="code" href="classOscl__Vector__Base.html#n3">sizeof_T</a>);
10200166         }
10300167
10400171         <a class="code" href="group__osclbase.html#a25">OsclAny</a>* begin()<span class="keyword"> const</span>
10500172 <span class="keyword">        </span>{
10600173             <span class="keywordflow">return</span> <a class="code" href="classOscl__Vector__Base.html#n2">elems</a>;
10700174         }
10800175
10900179         <a class="code" href="group__osclbase.html#a25">OsclAny</a>* end()<span class="keyword"> const</span>
11000180 <span class="keyword">        </span>{
11100181             <span class="keywordflow">return</span> increment_T(<a class="code" href="classOscl__Vector__Base.html#n2">elems</a>, <a class="code" href="classOscl__Vector__Base.html#n0">numelems</a>);
11200182         }
11300183
11400184         <a class="code" href="group__osclbase.html#a25">OsclAny</a>* move(<a class="code" href="group__osclbase.html#a25">OsclAny</a>* first, <a class="code" href="group__osclbase.html#a25">OsclAny</a>* last, <a class="code" href="group__osclbase.html#a25">OsclAny</a>* result) ;
11500185
11600186         <a class="code" href="group__osclbase.html#a25">OsclAny</a>* copy(<a class="code" href="group__osclbase.html#a25">OsclAny</a>* first, <a class="code" href="group__osclbase.html#a25">OsclAny</a>* last, <a class="code" href="group__osclbase.html#a25">OsclAny</a>* result) ;
11700187
11800188         <a class="code" href="group__osclbase.html#a25">OsclAny</a>* uninitialized_copy(<a class="code" href="group__osclbase.html#a25">OsclAny</a>* first, <a class="code" href="group__osclbase.html#a25">OsclAny</a>* last, <a class="code" href="group__osclbase.html#a25">OsclAny</a>* result) ;
11900189
12000190         <span class="comment">//destroy a range of T*</span>
12100191         <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector__Base.html#b11">destroy</a>(<a class="code" href="group__osclbase.html#a25">OsclAny</a>* first, <a class="code" href="group__osclbase.html#a25">OsclAny</a>* last) ;
12200192
12300193         <a class="code" href="classOscl__Opaque__Type__Alloc.html">Oscl_Opaque_Type_Alloc</a>* pOpaqueType;
12400194 };
12500195
12600204 <span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keyword">class</span> Alloc&gt;
127<a name="l00205"></a><a class="code" href="classOscl__Vector.html">00205</a> <span class="keyword">class </span><a class="code" href="classOscl__Vector.html">Oscl_Vector</a>
12800206             : <span class="keyword">public</span> <a class="code" href="classOscl__Vector__Base.html">Oscl_Vector_Base</a>
12900207             , <span class="keyword">public</span> <a class="code" href="classOscl__Opaque__Type__Alloc.html">Oscl_Opaque_Type_Alloc</a>
13000208 {
13100209
13200210     <span class="keyword">public</span>:
133<a name="l00211"></a><a class="code" href="classOscl__Vector.html#s0">00211</a>         <span class="keyword">typedef</span> T <a class="code" href="classOscl__Vector.html#s0">value_type</a>;
134<a name="l00212"></a><a class="code" href="classOscl__Vector.html#s1">00212</a>         <span class="keyword">typedef</span> T* <a class="code" href="classOscl__Vector.html#s1">pointer</a>;
135<a name="l00213"></a><a class="code" href="classOscl__Vector.html#s2">00213</a>         <span class="keyword">typedef</span> T&amp; <a class="code" href="classOscl__Vector.html#s2">reference</a>;
136<a name="l00214"></a><a class="code" href="classOscl__Vector.html#s3">00214</a>         <span class="keyword">typedef</span> <span class="keyword">const</span> T&amp; <a class="code" href="classOscl__Vector.html#s3">const_reference</a>;
137<a name="l00215"></a><a class="code" href="classOscl__Vector.html#s4">00215</a>         <span class="keyword">typedef</span> T* <a class="code" href="classOscl__Vector.html#s4">iterator</a>;
138<a name="l00216"></a><a class="code" href="classOscl__Vector.html#s5">00216</a>         <span class="keyword">typedef</span> <span class="keyword">const</span> T* <a class="code" href="classOscl__Vector.html#s5">const_iterator</a>;
13900217
140<a name="l00221"></a><a class="code" href="classOscl__Vector.html#a0">00221</a>         <a class="code" href="classOscl__Vector.html#a0">Oscl_Vector</a>() : <a class="code" href="classOscl__Vector__Base.html">Oscl_Vector_Base</a>(), <a class="code" href="classOscl__Opaque__Type__Alloc.html">Oscl_Opaque_Type_Alloc</a>()
14100222         {
14200223             <a class="code" href="classOscl__Vector__Base.html#n3">sizeof_T</a> = <span class="keyword">sizeof</span>(T);
14300224             <a class="code" href="classOscl__Vector__Base.html#b0">Oscl_Vector_Base::construct</a>(<span class="keyword">this</span>);
14400225         }
14500226
146<a name="l00235"></a><a class="code" href="classOscl__Vector.html#a1">00235</a>         <a class="code" href="classOscl__Vector.html#a0">Oscl_Vector</a>(uint32 n) : <a class="code" href="classOscl__Vector__Base.html">Oscl_Vector_Base</a>(), <a class="code" href="classOscl__Opaque__Type__Alloc.html">Oscl_Opaque_Type_Alloc</a>()
14700236         {
14800237             <a class="code" href="classOscl__Vector__Base.html#n3">sizeof_T</a> = <span class="keyword">sizeof</span>(T);
14900238             <a class="code" href="classOscl__Vector__Base.html#b0">Oscl_Vector_Base::construct</a>(<span class="keyword">this</span>, n);
15000239         }
15100240
152<a name="l00245"></a><a class="code" href="classOscl__Vector.html#a2">00245</a>         <a class="code" href="classOscl__Vector.html#a0">Oscl_Vector</a>(<span class="keyword">const</span> <a class="code" href="classOscl__Vector.html">Oscl_Vector&lt;T, Alloc&gt;</a>&amp; x) : <a class="code" href="classOscl__Vector__Base.html">Oscl_Vector_Base</a>(), <a class="code" href="classOscl__Opaque__Type__Alloc.html">Oscl_Opaque_Type_Alloc</a>()
15300246         {
15400247             <a class="code" href="classOscl__Vector__Base.html#n3">sizeof_T</a> = <span class="keyword">sizeof</span>(T);
15500248             <a class="code" href="classOscl__Vector__Base.html#b0">Oscl_Vector_Base::construct</a>(<span class="keyword">this</span>, x);
15600249         }
15700250
158<a name="l00254"></a><a class="code" href="classOscl__Vector.html#a3">00254</a>         <span class="keyword">virtual</span> <a class="code" href="classOscl__Vector.html#a3">~Oscl_Vector</a>()
15900255         {
16000256             <a class="code" href="classOscl__Vector__Base.html#b11">Oscl_Vector_Base::destroy</a>();
16100257         }
16200258
163<a name="l00262"></a><a class="code" href="classOscl__Vector.html#a4">00262</a>         <a class="code" href="classOscl__Vector.html">Oscl_Vector&lt;T, Alloc&gt;</a>&amp; <a class="code" href="classOscl__Vector.html#a4">operator=</a>(<span class="keyword">const</span> <a class="code" href="classOscl__Vector.html">Oscl_Vector&lt;T, Alloc&gt;</a>&amp; x)
16400263         {
16500264             <span class="keywordflow">if</span> (&amp;x != <span class="keyword">this</span>)
16600265                 <a class="code" href="classOscl__Vector__Base.html#b10">Oscl_Vector_Base::assign_vector</a>(x);
16700266             <span class="keywordflow">return</span> *<span class="keyword">this</span>;
16800267         }
16900268
170<a name="l00275"></a><a class="code" href="classOscl__Vector.html#a5">00275</a>         <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector.html#a5">push_back</a>(<span class="keyword">const</span> T&amp; x)
17100276         {
17200277             <a class="code" href="classOscl__Vector__Base.html#b4">Oscl_Vector_Base::push_back</a>(&amp;x);
17300278         }
17400279
175<a name="l00286"></a><a class="code" href="classOscl__Vector.html#a6">00286</a>         <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector.html#a6">push_front</a>(<span class="keyword">const</span> T&amp; x)
17600287         {
17700288             <a class="code" href="classOscl__Vector__Base.html#b6">Oscl_Vector_Base::push_front</a>(&amp;x);
17800289         }
17900290
180<a name="l00296"></a><a class="code" href="classOscl__Vector.html#a7">00296</a>         <a class="code" href="classOscl__Vector.html#s4">iterator</a> <a class="code" href="classOscl__Vector.html#a7">insert</a>(<a class="code" href="classOscl__Vector.html#s4">iterator</a> pos, <span class="keyword">const</span> T&amp; x)
18100297         {
18200298             <span class="keywordflow">return</span> (iterator)<a class="code" href="classOscl__Vector__Base.html#b7">Oscl_Vector_Base::insert</a>(pos, &amp;x);
18300299         }
18400300
185<a name="l00305"></a><a class="code" href="classOscl__Vector.html#a8">00305</a>         T&amp; <a class="code" href="classOscl__Vector.html#a8">operator[]</a>(uint32 n)
18600306         {
18700307             <span class="keywordflow">return</span> (*(<a class="code" href="classOscl__Vector.html#a17">begin</a>() + n));
18800308         }
18900309
190<a name="l00314"></a><a class="code" href="classOscl__Vector.html#a9">00314</a>         <span class="keyword">const</span> T&amp; <a class="code" href="classOscl__Vector.html#a8">operator[]</a>(uint32 n)<span class="keyword"> const</span>
19100315 <span class="keyword">        </span>{
19200316             <span class="keywordflow">return</span> (*(<a class="code" href="classOscl__Vector.html#a17">begin</a>() + n));
19300317         }
19400318
195<a name="l00322"></a><a class="code" href="classOscl__Vector.html#a10">00322</a>         T&amp; <a class="code" href="classOscl__Vector.html#a10">front</a>()
19600323         {
19700324             <span class="keywordflow">return</span> *<a class="code" href="classOscl__Vector.html#a17">begin</a>();
19800325         }
19900326
200<a name="l00330"></a><a class="code" href="classOscl__Vector.html#a11">00330</a>         <span class="keyword">const</span> T&amp; <a class="code" href="classOscl__Vector.html#a10">front</a>()<span class="keyword"> const</span>
20100331 <span class="keyword">        </span>{
20200332             <span class="keywordflow">return</span> *<a class="code" href="classOscl__Vector.html#a17">begin</a>();
20300333         }
20400334
205<a name="l00338"></a><a class="code" href="classOscl__Vector.html#a12">00338</a>         T&amp; <a class="code" href="classOscl__Vector.html#a12">back</a>()
20600339         {
20700340             <span class="keywordflow">return</span> (*(<a class="code" href="classOscl__Vector.html#a18">end</a>() - 1));
20800341         }
20900342
210<a name="l00346"></a><a class="code" href="classOscl__Vector.html#a13">00346</a>         <span class="keyword">const</span> T&amp; <a class="code" href="classOscl__Vector.html#a12">back</a>()<span class="keyword"> const</span>
21100347 <span class="keyword">        </span>{
21200348             <span class="keywordflow">return</span> (*(<a class="code" href="classOscl__Vector.html#a18">end</a>() - 1));
21300349         }
21400350
215<a name="l00354"></a><a class="code" href="classOscl__Vector.html#a14">00354</a>         <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector.html#a14">pop_back</a>()
21600355         {
21700356             <a class="code" href="group__osclbase.html#a78">OSCL_ASSERT</a>(<a class="code" href="classOscl__Vector__Base.html#n0">numelems</a>);
21800357             <a class="code" href="classOscl__Vector__Base.html#n0">numelems</a>--;
21900358             <a class="code" href="classOscl__Vector.html#a16">destroy</a>(<a class="code" href="classOscl__Vector.html#a18">end</a>());
22000359         }
22100360
222<a name="l00364"></a><a class="code" href="classOscl__Vector.html#a15">00364</a>         <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector.html#a15">clear</a>()
22300365         {
22400366             <a class="code" href="classOscl__Vector__Base.html#b8">Oscl_Vector_Base::erase</a>(<a class="code" href="classOscl__Vector.html#a17">begin</a>(), <a class="code" href="classOscl__Vector.html#a18">end</a>());
22500367         }
22600368
227<a name="l00372"></a><a class="code" href="classOscl__Vector.html#a16">00372</a>         <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector.html#a16">destroy</a>()
22800373         {
22900374             <a class="code" href="classOscl__Vector__Base.html#b11">Oscl_Vector_Base::destroy</a>();
23000375         }
23100376
232<a name="l00380"></a><a class="code" href="classOscl__Vector.html#a17">00380</a>         <a class="code" href="classOscl__Vector.html#s4">iterator</a> <a class="code" href="classOscl__Vector.html#a17">begin</a>()<span class="keyword"> const</span>
23300381 <span class="keyword">        </span>{
23400382             <span class="keywordflow">return</span> (pointer)<a class="code" href="classOscl__Vector__Base.html#n2">elems</a>;
23500383         }
23600384
237<a name="l00388"></a><a class="code" href="classOscl__Vector.html#a18">00388</a>         <a class="code" href="classOscl__Vector.html#s4">iterator</a> <a class="code" href="classOscl__Vector.html#a18">end</a>()<span class="keyword"> const</span>
23800389 <span class="keyword">        </span>{
23900390             <span class="keywordflow">return</span> (pointer)<a class="code" href="classOscl__Vector__Base.html#n2">elems</a> + <a class="code" href="classOscl__Vector__Base.html#n0">numelems</a>;
24000391         }
24100392
242<a name="l00399"></a><a class="code" href="classOscl__Vector.html#a19">00399</a>         <a class="code" href="classOscl__Vector.html#s4">iterator</a> <a class="code" href="classOscl__Vector.html#a19">erase</a>(<a class="code" href="classOscl__Vector.html#s4">iterator</a> pos)
24300400         {
24400401             <span class="keywordflow">return</span> (iterator)<a class="code" href="classOscl__Vector__Base.html#b8">Oscl_Vector_Base::erase</a>(pos);
24500402         }
24600403
247<a name="l00411"></a><a class="code" href="classOscl__Vector.html#a20">00411</a>         <a class="code" href="classOscl__Vector.html#s4">iterator</a> <a class="code" href="classOscl__Vector.html#a19">erase</a>(<a class="code" href="classOscl__Vector.html#s4">iterator</a> first, <a class="code" href="classOscl__Vector.html#s4">iterator</a> last)
24800412         {
24900413             <span class="keywordflow">return</span> (iterator)<a class="code" href="classOscl__Vector__Base.html#b8">Oscl_Vector_Base::erase</a>(first, last);
25000414         }
25100415
25200416     <span class="keyword">private</span>:
25300417
25400418         Alloc defAlloc;
25500419
25600420         <span class="comment">//from Oscl_Opaque_Type_Alloc</span>
25700421         <a class="code" href="group__osclbase.html#a25">OsclAny</a>* <a class="code" href="classOscl__Opaque__Type__Alloc.html#a2">allocate</a>(<span class="keyword">const</span> uint32 <a class="code" href="classOscl__Vector__Base.html#a0">size</a>)
25800422         {
25900423             <span class="comment">//prevent zero-size allocations since some allocators don't handle this</span>
26000424             <span class="keywordflow">return</span> (size) ? defAlloc.ALLOCATE(<a class="code" href="classOscl__Vector__Base.html#a0">size</a>) : <a class="code" href="group__osclbase.html#a81">NULL</a>;
26100425         }
26200426
26300427         <span class="comment">//from Oscl_Opaque_Type_Alloc</span>
26400428         <span class="keywordtype">void</span> <a class="code" href="classOscl__Opaque__Type__Alloc.html#a3">deallocate</a>(<a class="code" href="group__osclbase.html#a25">OsclAny</a>* p)
26500429         {
26600430             defAlloc.deallocate(p);
26700431         }
26800432
26900433         <span class="comment">//from Oscl_Opaque_Type_Alloc</span>
27000434         <span class="keywordtype">void</span> <a class="code" href="classOscl__Opaque__Type__Alloc.html#a0">construct</a>(<a class="code" href="group__osclbase.html#a25">OsclAny</a>* p, <span class="keyword">const</span> <a class="code" href="group__osclbase.html#a25">OsclAny</a>* x)
27100435         {
27200436             <a class="code" href="group__osclbase.html#a78">OSCL_ASSERT</a>(x);
27300437             <span class="keyword">new</span>(p) <a class="code" href="classOscl__Vector.html#s0">value_type</a>(*((T*)x));
27400438         }
27500439
27600440         <span class="comment">//from Oscl_Opaque_Type_Alloc</span>
27700441         <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector.html#a16">destroy</a>(<a class="code" href="group__osclbase.html#a25">OsclAny</a>* first)
27800442         {
27900443             <a class="code" href="group__osclbase.html#a78">OSCL_ASSERT</a>(first);
28000444             <a class="code" href="group__osclbase.html#a89">OSCL_UNUSED_ARG</a>(first);
28100445             <span class="comment">//note: must use "pointer" instead of "T*" here to avoid ADS 1.2 compile error.</span>
28200446             ((pointer)first)-&gt;~T();
28300447         }
28400448
28500449 };
28600450
28700451
28800455 <span class="preprocessor">#endif</span>
28900456 <span class="preprocessor"></span>
29000457
29100458
29200459
29300460
294</pre></div><hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>OSCL API</small>
295<address style="align: left;"><small>Posting Version: OPENCORE_20090310 </small>
296</small></address>
297</body>
298</html>
299