blob: 7ef88ebf1dc0a2fe139fbdabf54939051f535abb [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>oscl_vector.h Source File</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>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>
00002 <span class="comment">// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =</span>
00003
00004 <span class="comment">// O S C L _ V E C T O R</span>
00005
00006 <span class="comment">// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =</span>
00007
00017 <span class="preprocessor">#ifndef OSCL_VECTOR_H_INCLUDED</span>
00018 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_VECTOR_H_INCLUDED</span>
00019 <span class="preprocessor"></span>
00020 <span class="preprocessor">#ifndef OSCL_BASE_H_INCLUDED</span>
00021 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__base_8h.html">oscl_base.h</a>"</span>
00022 <span class="preprocessor">#endif</span>
00023 <span class="preprocessor"></span>
00024 <span class="preprocessor">#ifndef OSCL_MEM_BASIC_FUNCTIONS_H_INCLUDED</span>
00025 <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>
00026 <span class="preprocessor">#endif</span>
00027 <span class="preprocessor"></span>
00028 <span class="preprocessor">#ifndef OSCL_ASSERT_H_INCLUDED</span>
00029 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__assert_8h.html">oscl_assert.h</a>"</span>
00030 <span class="preprocessor">#endif</span>
00031 <span class="preprocessor"></span>
00032 <span class="preprocessor">#ifndef OSCL_OPAQUE_TYPE_H_INCLUDED</span>
00033 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__opaque__type_8h.html">oscl_opaque_type.h</a>"</span>
00034 <span class="preprocessor">#endif</span>
00035 <span class="preprocessor"></span>
00036 <span class="preprocessor">#ifndef OSCL_DEF_ALLOC_H_INCLUDED</span>
00037 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__defalloc_8h.html">oscl_defalloc.h</a>"</span>
00038 <span class="preprocessor">#endif</span>
00039 <span class="preprocessor"></span>
<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>
00048 {
00049 <span class="keyword">public</span>:
<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>
00054 <span class="keyword"> </span>{
00055 <span class="keywordflow">return</span> <a class="code" href="classOscl__Vector__Base.html#n0">numelems</a>;
00056 }
00057
<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>
00062 <span class="keyword"> </span>{
00063 <span class="keywordflow">return</span> <a class="code" href="classOscl__Vector__Base.html#n1">bufsize</a>;
00064 }
00065
<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>
00070 <span class="keyword"> </span>{
00071 <span class="keywordflow">return</span> <a class="code" href="classOscl__Vector__Base.html#n0">numelems</a> == 0;
00072 }
00073
00082 OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector__Base.html#a3">reserve</a>(uint32 n) ;
00083
00084 <span class="keyword">protected</span>:
00085
00086 <span class="comment">//for use in default constructor. vtable isn't available in c'tor so this is a subroutine.</span>
00087 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);
00088
00089 <span class="comment">//for use in constructor with pre-allocation for "n" elements.</span>
00090 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) ;
00091
00092 <span class="comment">//for use in copy constructor.</span>
00093 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);
00094
<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>()
00099 {}
00100
00107 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) ;
00108
00112 OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector__Base.html#b5">pop_back</a>() ;
00113
00120 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) ;
00121
00127 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);
00128
00135 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) ;
00136
00144 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) ;
00145
00146 <span class="comment">//copy vector x into this vector</span>
00147 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);
00148
00149 OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector__Base.html#b11">destroy</a>();
00150
<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>
<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>
<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>
<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>;
00155
<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>;
00157
00158 <span class="keyword">private</span>:
00159
00163 <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>
00164 <span class="keyword"> </span>{
00165 <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>);
00166 }
00167
00171 <a class="code" href="group__osclbase.html#a25">OsclAny</a>* begin()<span class="keyword"> const</span>
00172 <span class="keyword"> </span>{
00173 <span class="keywordflow">return</span> <a class="code" href="classOscl__Vector__Base.html#n2">elems</a>;
00174 }
00175
00179 <a class="code" href="group__osclbase.html#a25">OsclAny</a>* end()<span class="keyword"> const</span>
00180 <span class="keyword"> </span>{
00181 <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>);
00182 }
00183
00184 <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) ;
00185
00186 <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) ;
00187
00188 <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) ;
00189
00190 <span class="comment">//destroy a range of T*</span>
00191 <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) ;
00192
00193 <a class="code" href="classOscl__Opaque__Type__Alloc.html">Oscl_Opaque_Type_Alloc</a>* pOpaqueType;
00194 };
00195
00204 <span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keyword">class</span> Alloc&gt;
<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>
00206 : <span class="keyword">public</span> <a class="code" href="classOscl__Vector__Base.html">Oscl_Vector_Base</a>
00207 , <span class="keyword">public</span> <a class="code" href="classOscl__Opaque__Type__Alloc.html">Oscl_Opaque_Type_Alloc</a>
00208 {
00209
00210 <span class="keyword">public</span>:
<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>;
<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>;
<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>;
<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>;
<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>;
<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>;
00217
<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>()
00222 {
00223 <a class="code" href="classOscl__Vector__Base.html#n3">sizeof_T</a> = <span class="keyword">sizeof</span>(T);
00224 <a class="code" href="classOscl__Vector__Base.html#b0">Oscl_Vector_Base::construct</a>(<span class="keyword">this</span>);
00225 }
00226
<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>()
00236 {
00237 <a class="code" href="classOscl__Vector__Base.html#n3">sizeof_T</a> = <span class="keyword">sizeof</span>(T);
00238 <a class="code" href="classOscl__Vector__Base.html#b0">Oscl_Vector_Base::construct</a>(<span class="keyword">this</span>, n);
00239 }
00240
<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>()
00246 {
00247 <a class="code" href="classOscl__Vector__Base.html#n3">sizeof_T</a> = <span class="keyword">sizeof</span>(T);
00248 <a class="code" href="classOscl__Vector__Base.html#b0">Oscl_Vector_Base::construct</a>(<span class="keyword">this</span>, x);
00249 }
00250
<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>()
00255 {
00256 <a class="code" href="classOscl__Vector__Base.html#b11">Oscl_Vector_Base::destroy</a>();
00257 }
00258
<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)
00263 {
00264 <span class="keywordflow">if</span> (&amp;x != <span class="keyword">this</span>)
00265 <a class="code" href="classOscl__Vector__Base.html#b10">Oscl_Vector_Base::assign_vector</a>(x);
00266 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
00267 }
00268
<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)
00276 {
00277 <a class="code" href="classOscl__Vector__Base.html#b4">Oscl_Vector_Base::push_back</a>(&amp;x);
00278 }
00279
<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)
00287 {
00288 <a class="code" href="classOscl__Vector__Base.html#b6">Oscl_Vector_Base::push_front</a>(&amp;x);
00289 }
00290
<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)
00297 {
00298 <span class="keywordflow">return</span> (iterator)<a class="code" href="classOscl__Vector__Base.html#b7">Oscl_Vector_Base::insert</a>(pos, &amp;x);
00299 }
00300
<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)
00306 {
00307 <span class="keywordflow">return</span> (*(<a class="code" href="classOscl__Vector.html#a17">begin</a>() + n));
00308 }
00309
<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>
00315 <span class="keyword"> </span>{
00316 <span class="keywordflow">return</span> (*(<a class="code" href="classOscl__Vector.html#a17">begin</a>() + n));
00317 }
00318
<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>()
00323 {
00324 <span class="keywordflow">return</span> *<a class="code" href="classOscl__Vector.html#a17">begin</a>();
00325 }
00326
<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>
00331 <span class="keyword"> </span>{
00332 <span class="keywordflow">return</span> *<a class="code" href="classOscl__Vector.html#a17">begin</a>();
00333 }
00334
<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>()
00339 {
00340 <span class="keywordflow">return</span> (*(<a class="code" href="classOscl__Vector.html#a18">end</a>() - 1));
00341 }
00342
<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>
00347 <span class="keyword"> </span>{
00348 <span class="keywordflow">return</span> (*(<a class="code" href="classOscl__Vector.html#a18">end</a>() - 1));
00349 }
00350
<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>()
00355 {
00356 <a class="code" href="group__osclbase.html#a78">OSCL_ASSERT</a>(<a class="code" href="classOscl__Vector__Base.html#n0">numelems</a>);
00357 <a class="code" href="classOscl__Vector__Base.html#n0">numelems</a>--;
00358 <a class="code" href="classOscl__Vector.html#a16">destroy</a>(<a class="code" href="classOscl__Vector.html#a18">end</a>());
00359 }
00360
<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>()
00365 {
00366 <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>());
00367 }
00368
<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>()
00373 {
00374 <a class="code" href="classOscl__Vector__Base.html#b11">Oscl_Vector_Base::destroy</a>();
00375 }
00376
<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>
00381 <span class="keyword"> </span>{
00382 <span class="keywordflow">return</span> (pointer)<a class="code" href="classOscl__Vector__Base.html#n2">elems</a>;
00383 }
00384
<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>
00389 <span class="keyword"> </span>{
00390 <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>;
00391 }
00392
<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)
00400 {
00401 <span class="keywordflow">return</span> (iterator)<a class="code" href="classOscl__Vector__Base.html#b8">Oscl_Vector_Base::erase</a>(pos);
00402 }
00403
<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)
00412 {
00413 <span class="keywordflow">return</span> (iterator)<a class="code" href="classOscl__Vector__Base.html#b8">Oscl_Vector_Base::erase</a>(first, last);
00414 }
00415
00416 <span class="keyword">private</span>:
00417
00418 Alloc defAlloc;
00419
00420 <span class="comment">//from Oscl_Opaque_Type_Alloc</span>
00421 <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>)
00422 {
00423 <span class="comment">//prevent zero-size allocations since some allocators don't handle this</span>
00424 <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>;
00425 }
00426
00427 <span class="comment">//from Oscl_Opaque_Type_Alloc</span>
00428 <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)
00429 {
00430 defAlloc.deallocate(p);
00431 }
00432
00433 <span class="comment">//from Oscl_Opaque_Type_Alloc</span>
00434 <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)
00435 {
00436 <a class="code" href="group__osclbase.html#a78">OSCL_ASSERT</a>(x);
00437 <span class="keyword">new</span>(p) <a class="code" href="classOscl__Vector.html#s0">value_type</a>(*((T*)x));
00438 }
00439
00440 <span class="comment">//from Oscl_Opaque_Type_Alloc</span>
00441 <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)
00442 {
00443 <a class="code" href="group__osclbase.html#a78">OSCL_ASSERT</a>(first);
00444 <a class="code" href="group__osclbase.html#a89">OSCL_UNUSED_ARG</a>(first);
00445 <span class="comment">//note: must use "pointer" instead of "T*" here to avoid ADS 1.2 compile error.</span>
00446 ((pointer)first)-&gt;~T();
00447 }
00448
00449 };
00450
00451
00455 <span class="preprocessor">#endif</span>
00456 <span class="preprocessor"></span>
00457
00458
00459
00460
</pre></div><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>