Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > bad97183153701b09df5fae1052b1c30 > files > 2257

crystalspace-doc-1.2.1-5mdv2010.0.i586.rpm

<!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>Crystal Space 1.2.1: csutil/scfarray.h Source File (Crystal Space 1.2.1 Public API Reference)</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="head">
 <tr height="59">
  <td class="head" width="202" valign="bottom" style="padding-left:0;"><a href="http://www.crystalspace3d.org/"><img src="csblur.png" width="236" height="59" alt="CrystalSpace" border="0"></a></td>
  <td class="head"><h2>Public API Reference</h2></td>
 </tr>
 <tr height="11">
  <td colspan="2" class="headshadow" valign="top" style="padding-left:0;"><img src="csblurb.png" width="236" height="11" alt="" border="0"></td>
 </tr>
</table>
<div class="content">
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="namespaces.html"><span>Namespaces</span></a></li>
    <li><a href="classes.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
  </ul>
</div>
<h1>csutil/scfarray.h</h1><a href="scfarray_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment">    Copyright (C) 2006 by Frank Richter</span>
<a name="l00003"></a>00003 <span class="comment"></span>
<a name="l00004"></a>00004 <span class="comment">    This library is free software; you can redistribute it and/or</span>
<a name="l00005"></a>00005 <span class="comment">    modify it under the terms of the GNU Library General Public</span>
<a name="l00006"></a>00006 <span class="comment">    License as published by the Free Software Foundation; either</span>
<a name="l00007"></a>00007 <span class="comment">    version 2 of the License, or (at your option) any later version.</span>
<a name="l00008"></a>00008 <span class="comment"></span>
<a name="l00009"></a>00009 <span class="comment">    This library is distributed in the hope that it will be useful,</span>
<a name="l00010"></a>00010 <span class="comment">    but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00011"></a>00011 <span class="comment">    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
<a name="l00012"></a>00012 <span class="comment">    Library General Public License for more details.</span>
<a name="l00013"></a>00013 <span class="comment"></span>
<a name="l00014"></a>00014 <span class="comment">    You should have received a copy of the GNU Library General Public</span>
<a name="l00015"></a>00015 <span class="comment">    License along with this library; if not, write to the Free</span>
<a name="l00016"></a>00016 <span class="comment">    Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.</span>
<a name="l00017"></a>00017 <span class="comment">*/</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef __CS_CSUTIL_SCFARRAY_H__</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define __CS_CSUTIL_SCFARRAY_H__</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00027"></a>00027 <span class="preprocessor">#include "<a class="code" href="iutil_2array_8h.html" title="Templates for array interfaces.">iutil/array.h</a>"</span>
<a name="l00028"></a>00028 
<a name="l00029"></a>00029 <span class="preprocessor">#include "<a class="code" href="csutil_2array_8h.html" title="Generic Array Template.">csutil/array.h</a>"</span>
<a name="l00030"></a>00030 <span class="preprocessor">#include "<a class="code" href="scf__implementation_8h.html" title="Crystal Space Shared Class Facility (SCF) - implementation creation support.">csutil/scf_implementation.h</a>"</span>
<a name="l00031"></a>00031 
<a name="l00054"></a>00054 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> IF, 
<a name="l00055"></a>00055   <span class="keyword">typename</span> Backend = <a class="code" href="classcsArray.html" title="A templated array class.">csArray&lt;typename IF::ContainedType&gt;</a> &gt;
<a name="l00056"></a><a class="code" href="classscfArray.html">00056</a> <span class="keyword">class </span><a class="code" href="classscfArray.html" title="Implementation for iArrayReadOnly&amp;lt;&amp;gt;-, iArrayChangeElements&amp;lt;&amp;gt;- and iArrayChangeAll&amp;lt;&amp;gt...">scfArray</a> : 
<a name="l00057"></a>00057   <span class="keyword">public</span> <a class="code" href="classscfImplementation1.html">scfImplementation1</a>&lt;scfArray&lt;IF, Backend&gt;, IF&gt;
<a name="l00058"></a>00058 {
<a name="l00059"></a>00059   <span class="keyword">typedef</span> <a class="code" href="classscfImplementation1.html">scfImplementation1&lt;scfArray&lt;IF, Backend&gt;</a>, IF&gt; <a class="code" href="classscfImplementation1.html">scfImplementationType</a>;
<a name="l00060"></a>00060   <span class="keyword">typedef</span> <span class="keyword">typename</span> IF::ContainedType ContainedType;
<a name="l00061"></a>00061 <span class="keyword">public</span>:
<a name="l00063"></a><a class="code" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c">00063</a>   Backend <a class="code" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c" title="The array storage.">storage</a>;
<a name="l00064"></a>00064 
<a name="l00066"></a>00066 
<a name="l00067"></a><a class="code" href="group__util__containers.html#g590fba9b1b63e741b036779f80f41de9">00067</a>   <a class="code" href="group__util__containers.html#g590fba9b1b63e741b036779f80f41de9" title="Construct with empty storage.">scfArray</a> () : <a class="code" href="classscfImplementation1.html">scfImplementationType</a> (this) {}
<a name="l00068"></a><a class="code" href="group__util__containers.html#g66a9edf87e5dc48cc0bda5c87ac28c9e">00068</a>   <a class="code" href="group__util__containers.html#g590fba9b1b63e741b036779f80f41de9" title="Construct with empty storage.">scfArray</a> (<a class="code" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one...">iBase</a>* <a class="code" href="classscfImplementation.html#fd66881aa3adfbdb3d837fa522ecf825">scfParent</a>) : <a class="code" href="classscfImplementation1.html">scfImplementationType</a> (this, scfParent) {}
<a name="l00070"></a>00070 
<a name="l00071"></a>00071 
<a name="l00072"></a><a class="code" href="classscfArray.html#bbf8e7b55dc33f5a68ffd6a5ec88a99e">00072</a>   <a class="code" href="group__util__containers.html#g590fba9b1b63e741b036779f80f41de9" title="Construct with empty storage.">scfArray</a> (<span class="keyword">const</span> Backend&amp; <a class="code" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c" title="The array storage.">storage</a>) : <a class="code" href="classscfImplementation1.html">scfImplementationType</a> (this), 
<a name="l00073"></a>00073     storage (storage) {}
<a name="l00074"></a><a class="code" href="classscfArray.html#9d09384c5cf6d3e55b6390906f85d067">00074</a>   <a class="code" href="group__util__containers.html#g590fba9b1b63e741b036779f80f41de9" title="Construct with empty storage.">scfArray</a> (<span class="keyword">const</span> Backend&amp; <a class="code" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c" title="The array storage.">storage</a>, <a class="code" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one...">iBase</a>* <a class="code" href="classscfImplementation.html#fd66881aa3adfbdb3d837fa522ecf825">scfParent</a>) : 
<a name="l00075"></a>00075     <a class="code" href="classscfImplementation1.html">scfImplementationType</a> (this, scfParent), storage (storage) {}
<a name="l00077"></a>00077 
<a name="l00080"></a><a class="code" href="classscfArray.html#72ebd96666262385b29f2e52ccffe671">00080</a>   <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="classscfArray.html#72ebd96666262385b29f2e52ccffe671">GetSize</a> ()<span class="keyword"> const</span>
<a name="l00081"></a>00081 <span class="keyword">  </span>{ <span class="keywordflow">return</span> <a class="code" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c" title="The array storage.">storage</a>.GetSize(); }
<a name="l00082"></a><a class="code" href="classscfArray.html#4c669b90c9309a36ff836bfe09419838">00082</a>   <span class="keyword">virtual</span> ContainedType <span class="keyword">const</span>&amp; <a class="code" href="classscfArray.html#4c669b90c9309a36ff836bfe09419838">Get</a> (<span class="keywordtype">size_t</span> n)<span class="keyword"> const</span>
<a name="l00083"></a>00083 <span class="keyword">  </span>{ <span class="keywordflow">return</span> <a class="code" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c" title="The array storage.">storage</a>.Get (n); }
<a name="l00084"></a><a class="code" href="classscfArray.html#079775941f005d8868b490fae400624a">00084</a>   <span class="keyword">virtual</span> ContainedType <span class="keyword">const</span>&amp; <a class="code" href="classscfArray.html#079775941f005d8868b490fae400624a">Top</a> ()<span class="keyword"> const</span>
<a name="l00085"></a>00085 <span class="keyword">  </span>{ <span class="keywordflow">return</span> <a class="code" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c" title="The array storage.">storage</a>.Top(); }
<a name="l00086"></a><a class="code" href="classscfArray.html#30d6ebbdc58abcf5bcd69e1abcc277f3">00086</a>   <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="classscfArray.html#30d6ebbdc58abcf5bcd69e1abcc277f3">Find</a> (ContainedType <span class="keyword">const</span>&amp; which)<span class="keyword"> const</span>
<a name="l00087"></a>00087 <span class="keyword">  </span>{ <span class="keywordflow">return</span> <a class="code" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c" title="The array storage.">storage</a>.Find (which); }
<a name="l00088"></a><a class="code" href="classscfArray.html#1605acdded4267f758121fbfe3551159">00088</a>   <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="classscfArray.html#1605acdded4267f758121fbfe3551159">GetIndex</a> (<span class="keyword">const</span> ContainedType* which)<span class="keyword"> const</span>
<a name="l00089"></a>00089 <span class="keyword">  </span>{ <span class="keywordflow">return</span> <a class="code" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c" title="The array storage.">storage</a>.GetIndex (which); }
<a name="l00090"></a><a class="code" href="classscfArray.html#f3bbf67d69b58522550ce1bb213cf67a">00090</a>   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classscfArray.html#f3bbf67d69b58522550ce1bb213cf67a">IsEmpty</a>()<span class="keyword"> const</span>
<a name="l00091"></a>00091 <span class="keyword">  </span>{ <span class="keywordflow">return</span> <a class="code" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c" title="The array storage.">storage</a>.IsEmpty(); }
<a name="l00092"></a><a class="code" href="classscfArray.html#8e65d43047882c1e9a68987b442003b3">00092</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classscfArray.html#8e65d43047882c1e9a68987b442003b3">GetAll</a> (ContainedType* dest)<span class="keyword"> const</span>
<a name="l00093"></a>00093 <span class="keyword">  </span>{
<a name="l00094"></a>00094     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c" title="The array storage.">storage</a>.GetSize(); i++)
<a name="l00095"></a>00095       dest[i] = <a class="code" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c" title="The array storage.">storage</a>[i];
<a name="l00096"></a>00096   }
<a name="l00101"></a><a class="code" href="classscfArray.html#631a1f13f6150f0c4cd5efd4ea252c10">00101</a>   <span class="keyword">virtual</span> ContainedType&amp; <a class="code" href="classscfArray.html#4c669b90c9309a36ff836bfe09419838">Get</a> (<span class="keywordtype">size_t</span> n)
<a name="l00102"></a>00102   { <span class="keywordflow">return</span> <a class="code" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c" title="The array storage.">storage</a>.Get (n); }
<a name="l00103"></a><a class="code" href="classscfArray.html#ad468cf5991d50b503220300d16b79d8">00103</a>   <span class="keyword">virtual</span> ContainedType&amp; <a class="code" href="classscfArray.html#079775941f005d8868b490fae400624a">Top</a> ()
<a name="l00104"></a>00104   { <span class="keywordflow">return</span> <a class="code" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c" title="The array storage.">storage</a>.Top(); }
<a name="l00109"></a><a class="code" href="classscfArray.html#b3d39d5d767614249dcfbf2b053a8d7d">00109</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classscfArray.html#b3d39d5d767614249dcfbf2b053a8d7d">SetSize</a> (<span class="keywordtype">size_t</span> n, ContainedType <span class="keyword">const</span>&amp; what)
<a name="l00110"></a>00110   { <a class="code" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c" title="The array storage.">storage</a>.SetSize (n, what); }
<a name="l00111"></a><a class="code" href="classscfArray.html#b933782acffe65e47cabffa159436c3c">00111</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classscfArray.html#b3d39d5d767614249dcfbf2b053a8d7d">SetSize</a> (<span class="keywordtype">size_t</span> n)
<a name="l00112"></a>00112   { <a class="code" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c" title="The array storage.">storage</a>.SetSize (n); }
<a name="l00113"></a><a class="code" href="classscfArray.html#b918ce788c526ba8458ca6ba2eb6cd28">00113</a>   <span class="keyword">virtual</span> ContainedType&amp; <a class="code" href="classscfArray.html#b918ce788c526ba8458ca6ba2eb6cd28">GetExtend</a> (<span class="keywordtype">size_t</span> n)
<a name="l00114"></a>00114   { <span class="keywordflow">return</span> <a class="code" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c" title="The array storage.">storage</a>.GetExtend (n); }
<a name="l00115"></a><a class="code" href="classscfArray.html#837c50a020483067923f4e5bbd0c5c04">00115</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classscfArray.html#837c50a020483067923f4e5bbd0c5c04">Put</a> (<span class="keywordtype">size_t</span> n, ContainedType <span class="keyword">const</span>&amp; what)
<a name="l00116"></a>00116   { <a class="code" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c" title="The array storage.">storage</a>.Put (n, what); }
<a name="l00117"></a><a class="code" href="classscfArray.html#dadecf2b6233dfaba34dd1aa25225444">00117</a>   <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="classscfArray.html#dadecf2b6233dfaba34dd1aa25225444">Push</a> (ContainedType <span class="keyword">const</span>&amp; what)
<a name="l00118"></a>00118   { <span class="keywordflow">return</span> <a class="code" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c" title="The array storage.">storage</a>.Push (what); }
<a name="l00119"></a><a class="code" href="classscfArray.html#0b537a672b6fbc5651f6ae3c9fa1c4c8">00119</a>   <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="classscfArray.html#0b537a672b6fbc5651f6ae3c9fa1c4c8">PushSmart</a> (ContainedType <span class="keyword">const</span>&amp; what)
<a name="l00120"></a>00120   { <span class="keywordflow">return</span> <a class="code" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c" title="The array storage.">storage</a>.PushSmart (what); }
<a name="l00121"></a><a class="code" href="classscfArray.html#c0371cf4c8a5deb273438ace31358879">00121</a>   <span class="keyword">virtual</span> ContainedType <a class="code" href="classscfArray.html#c0371cf4c8a5deb273438ace31358879">Pop</a> ()
<a name="l00122"></a>00122   { <span class="keywordflow">return</span> <a class="code" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c" title="The array storage.">storage</a>.Pop (); }
<a name="l00123"></a><a class="code" href="classscfArray.html#db7333f4429792ef6d37b25491172ee6">00123</a>   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classscfArray.html#db7333f4429792ef6d37b25491172ee6">Insert</a> (<span class="keywordtype">size_t</span> n, ContainedType <span class="keyword">const</span>&amp; item)
<a name="l00124"></a>00124   { <span class="keywordflow">return</span> <a class="code" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c" title="The array storage.">storage</a>.Insert (n, item); }
<a name="l00125"></a><a class="code" href="classscfArray.html#073b73b8c5a8409ccb1c85c330b709e0">00125</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classscfArray.html#073b73b8c5a8409ccb1c85c330b709e0">DeleteAll</a> ()
<a name="l00126"></a>00126   { <a class="code" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c" title="The array storage.">storage</a>.DeleteAll(); }
<a name="l00127"></a><a class="code" href="classscfArray.html#8d06b0784b513ba1753d9e91fff61774">00127</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classscfArray.html#8d06b0784b513ba1753d9e91fff61774">Truncate</a> (<span class="keywordtype">size_t</span> n)
<a name="l00128"></a>00128   { <a class="code" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c" title="The array storage.">storage</a>.Truncate(n); }
<a name="l00129"></a><a class="code" href="classscfArray.html#0ab2fdb486e20709634c44a9e848bf54">00129</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classscfArray.html#0ab2fdb486e20709634c44a9e848bf54">Empty</a> ()
<a name="l00130"></a>00130   { <a class="code" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c" title="The array storage.">storage</a>.Empty(); }
<a name="l00131"></a><a class="code" href="classscfArray.html#9245d8c6e46823fe181bc6b04b9241bb">00131</a>   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classscfArray.html#9245d8c6e46823fe181bc6b04b9241bb">DeleteIndex</a> (<span class="keywordtype">size_t</span> n)
<a name="l00132"></a>00132   { <span class="keywordflow">return</span> <a class="code" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c" title="The array storage.">storage</a>.DeleteIndex  (n); }
<a name="l00133"></a><a class="code" href="classscfArray.html#33ec7a32bfe3ffcd11408baf46445f77">00133</a>   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classscfArray.html#33ec7a32bfe3ffcd11408baf46445f77">DeleteIndexFast</a> (<span class="keywordtype">size_t</span> n)
<a name="l00134"></a>00134   { <span class="keywordflow">return</span> <a class="code" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c" title="The array storage.">storage</a>.DeleteIndexFast  (n); }
<a name="l00135"></a><a class="code" href="classscfArray.html#ca79ac947c24809b054483aca2bc9c2c">00135</a>   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classscfArray.html#ca79ac947c24809b054483aca2bc9c2c">Delete</a> (ContainedType <span class="keyword">const</span>&amp; item)
<a name="l00136"></a>00136   { <span class="keywordflow">return</span> <a class="code" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c" title="The array storage.">storage</a>.Delete (item); }
<a name="l00138"></a>00138 };
<a name="l00139"></a>00139 
<a name="l00149"></a>00149 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> IF, <span class="keyword">typename</span> Backend&gt;
<a name="l00150"></a><a class="code" href="classscfArrayWrap.html">00150</a> <span class="keyword">class </span><a class="code" href="classscfArrayWrap.html" title="Implementation for iArrayReadOnly&amp;lt;&amp;gt;-, iArrayChangeElements&amp;lt;&amp;gt;- and iArrayChangeAll&amp;lt;&amp;gt...">scfArrayWrap</a> : 
<a name="l00151"></a>00151   <span class="keyword">public</span> <a class="code" href="classscfImplementation1.html">scfImplementation1</a>&lt;scfArrayWrap&lt;IF, Backend&gt;, IF&gt;
<a name="l00152"></a>00152 {
<a name="l00153"></a>00153   <span class="keyword">typedef</span> <a class="code" href="classscfImplementation1.html">scfImplementation1&lt;scfArrayWrap&lt;IF, Backend&gt;</a>, IF&gt; 
<a name="l00154"></a>00154     <a class="code" href="classscfImplementation1.html">scfImplementationType</a>;
<a name="l00155"></a>00155   <span class="keyword">typedef</span> <span class="keyword">typename</span> IF::ContainedType ContainedType;
<a name="l00156"></a>00156 <span class="keyword">public</span>:
<a name="l00158"></a><a class="code" href="classscfArrayWrap.html#110c6ca27ef37f3afb52990307f18ddf">00158</a>   Backend&amp; <a class="code" href="classscfArrayWrap.html#110c6ca27ef37f3afb52990307f18ddf" title="Reference to the array storage.">storage</a>;
<a name="l00159"></a>00159 
<a name="l00161"></a>00161 
<a name="l00162"></a><a class="code" href="classscfArrayWrap.html#8ad0cdd8cb853c7ac87240a245243bed">00162</a>   <a class="code" href="classscfArrayWrap.html#8ad0cdd8cb853c7ac87240a245243bed" title="Initialize with a reference to the given storage.">scfArrayWrap</a> (Backend&amp; <a class="code" href="classscfArrayWrap.html#110c6ca27ef37f3afb52990307f18ddf" title="Reference to the array storage.">storage</a>) : <a class="code" href="classscfImplementation1.html">scfImplementationType</a> (this), 
<a name="l00163"></a>00163     storage (storage) {}
<a name="l00164"></a><a class="code" href="classscfArrayWrap.html#e276c30e44aaf354bc335b4a52aed1be">00164</a>   <a class="code" href="classscfArrayWrap.html#8ad0cdd8cb853c7ac87240a245243bed" title="Initialize with a reference to the given storage.">scfArrayWrap</a> (Backend&amp; <a class="code" href="classscfArrayWrap.html#110c6ca27ef37f3afb52990307f18ddf" title="Reference to the array storage.">storage</a>, <a class="code" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one...">iBase</a>* <a class="code" href="classscfImplementation.html#fd66881aa3adfbdb3d837fa522ecf825">scfParent</a>) : 
<a name="l00165"></a>00165     <a class="code" href="classscfImplementation1.html">scfImplementationType</a> (this, scfParent), storage (storage) {}
<a name="l00167"></a>00167 
<a name="l00170"></a><a class="code" href="classscfArrayWrap.html#5c817c4af9ef5002692adaedccd6f8f0">00170</a>   <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="classscfArrayWrap.html#5c817c4af9ef5002692adaedccd6f8f0">GetSize</a> ()<span class="keyword"> const</span>
<a name="l00171"></a>00171 <span class="keyword">  </span>{ <span class="keywordflow">return</span> <a class="code" href="classscfArrayWrap.html#110c6ca27ef37f3afb52990307f18ddf" title="Reference to the array storage.">storage</a>.GetSize(); }
<a name="l00172"></a><a class="code" href="classscfArrayWrap.html#0eee4e7add92ae394313d10644abd41b">00172</a>   <span class="keyword">virtual</span> ContainedType <span class="keyword">const</span>&amp; <a class="code" href="classscfArrayWrap.html#0eee4e7add92ae394313d10644abd41b">Get</a> (<span class="keywordtype">size_t</span> n)<span class="keyword"> const</span>
<a name="l00173"></a>00173 <span class="keyword">  </span>{ <span class="keywordflow">return</span> <a class="code" href="classscfArrayWrap.html#110c6ca27ef37f3afb52990307f18ddf" title="Reference to the array storage.">storage</a>.Get (n); }
<a name="l00174"></a><a class="code" href="classscfArrayWrap.html#f20a7b45b9baaa8adbc2afb0d8b83930">00174</a>   <span class="keyword">virtual</span> ContainedType <span class="keyword">const</span>&amp; <a class="code" href="classscfArrayWrap.html#f20a7b45b9baaa8adbc2afb0d8b83930">Top</a> ()<span class="keyword"> const</span>
<a name="l00175"></a>00175 <span class="keyword">  </span>{ <span class="keywordflow">return</span> <a class="code" href="classscfArrayWrap.html#110c6ca27ef37f3afb52990307f18ddf" title="Reference to the array storage.">storage</a>.Top(); }
<a name="l00176"></a><a class="code" href="classscfArrayWrap.html#9e0d2931117921d85a5afa395cc5cbf4">00176</a>   <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="classscfArrayWrap.html#9e0d2931117921d85a5afa395cc5cbf4">Find</a> (ContainedType <span class="keyword">const</span>&amp; which)<span class="keyword"> const</span>
<a name="l00177"></a>00177 <span class="keyword">  </span>{ <span class="keywordflow">return</span> <a class="code" href="classscfArrayWrap.html#110c6ca27ef37f3afb52990307f18ddf" title="Reference to the array storage.">storage</a>.Find (which); }
<a name="l00178"></a><a class="code" href="classscfArrayWrap.html#73b645541d179c72cabecac1424e5b65">00178</a>   <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="classscfArrayWrap.html#73b645541d179c72cabecac1424e5b65">GetIndex</a> (<span class="keyword">const</span> ContainedType* which)<span class="keyword"> const</span>
<a name="l00179"></a>00179 <span class="keyword">  </span>{ <span class="keywordflow">return</span> <a class="code" href="classscfArrayWrap.html#110c6ca27ef37f3afb52990307f18ddf" title="Reference to the array storage.">storage</a>.GetIndex (which); }
<a name="l00180"></a><a class="code" href="classscfArrayWrap.html#29dc0e436d764a2e695058ce4cbb567d">00180</a>   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classscfArrayWrap.html#29dc0e436d764a2e695058ce4cbb567d">IsEmpty</a>()<span class="keyword"> const</span>
<a name="l00181"></a>00181 <span class="keyword">  </span>{ <span class="keywordflow">return</span> <a class="code" href="classscfArrayWrap.html#110c6ca27ef37f3afb52990307f18ddf" title="Reference to the array storage.">storage</a>.IsEmpty(); }
<a name="l00182"></a><a class="code" href="classscfArrayWrap.html#564a848ab22df64ef8c3015d16ae0ebe">00182</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classscfArrayWrap.html#564a848ab22df64ef8c3015d16ae0ebe">GetAll</a> (ContainedType* dest)<span class="keyword"> const</span>
<a name="l00183"></a>00183 <span class="keyword">  </span>{
<a name="l00184"></a>00184     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="classscfArrayWrap.html#110c6ca27ef37f3afb52990307f18ddf" title="Reference to the array storage.">storage</a>.GetSize(); i++)
<a name="l00185"></a>00185       dest[i] = <a class="code" href="classscfArrayWrap.html#110c6ca27ef37f3afb52990307f18ddf" title="Reference to the array storage.">storage</a>[i];
<a name="l00186"></a>00186   }
<a name="l00191"></a><a class="code" href="classscfArrayWrap.html#68c65fa115cf99456438c0a97e4801a1">00191</a>   <span class="keyword">virtual</span> ContainedType&amp; <a class="code" href="classscfArrayWrap.html#0eee4e7add92ae394313d10644abd41b">Get</a> (<span class="keywordtype">size_t</span> n)
<a name="l00192"></a>00192   { <span class="keywordflow">return</span> <a class="code" href="classscfArrayWrap.html#110c6ca27ef37f3afb52990307f18ddf" title="Reference to the array storage.">storage</a>.Get (n); }
<a name="l00193"></a><a class="code" href="classscfArrayWrap.html#13605eee5e92d2eaebb26e8cc4377597">00193</a>   <span class="keyword">virtual</span> ContainedType&amp; <a class="code" href="classscfArrayWrap.html#f20a7b45b9baaa8adbc2afb0d8b83930">Top</a> ()
<a name="l00194"></a>00194   { <span class="keywordflow">return</span> <a class="code" href="classscfArrayWrap.html#110c6ca27ef37f3afb52990307f18ddf" title="Reference to the array storage.">storage</a>.Top(); }
<a name="l00199"></a><a class="code" href="classscfArrayWrap.html#840a5566abd5a4cfb8ce5e39db2273d0">00199</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classscfArrayWrap.html#840a5566abd5a4cfb8ce5e39db2273d0">SetSize</a> (<span class="keywordtype">size_t</span> n, ContainedType <span class="keyword">const</span>&amp; what)
<a name="l00200"></a>00200   { <a class="code" href="classscfArrayWrap.html#110c6ca27ef37f3afb52990307f18ddf" title="Reference to the array storage.">storage</a>.SetSize (n, what); }
<a name="l00201"></a><a class="code" href="classscfArrayWrap.html#659a140ed9f729c9acf417869ba0e0b9">00201</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classscfArrayWrap.html#840a5566abd5a4cfb8ce5e39db2273d0">SetSize</a> (<span class="keywordtype">size_t</span> n)
<a name="l00202"></a>00202   { <a class="code" href="classscfArrayWrap.html#110c6ca27ef37f3afb52990307f18ddf" title="Reference to the array storage.">storage</a>.SetSize (n); }
<a name="l00203"></a><a class="code" href="classscfArrayWrap.html#da22c63ff36556d6ab2f786af22970b8">00203</a>   <span class="keyword">virtual</span> ContainedType&amp; <a class="code" href="classscfArrayWrap.html#da22c63ff36556d6ab2f786af22970b8">GetExtend</a> (<span class="keywordtype">size_t</span> n)
<a name="l00204"></a>00204   { <span class="keywordflow">return</span> <a class="code" href="classscfArrayWrap.html#110c6ca27ef37f3afb52990307f18ddf" title="Reference to the array storage.">storage</a>.GetExtend (n); }
<a name="l00205"></a><a class="code" href="classscfArrayWrap.html#92ef34b1e9ef25e60b8b688bbbf5889a">00205</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classscfArrayWrap.html#92ef34b1e9ef25e60b8b688bbbf5889a">Put</a> (<span class="keywordtype">size_t</span> n, ContainedType <span class="keyword">const</span>&amp; what)
<a name="l00206"></a>00206   { <a class="code" href="classscfArrayWrap.html#110c6ca27ef37f3afb52990307f18ddf" title="Reference to the array storage.">storage</a>.Put (n, what); }
<a name="l00207"></a><a class="code" href="classscfArrayWrap.html#0dd9e39078561165ded0b5747412ebbb">00207</a>   <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="classscfArrayWrap.html#0dd9e39078561165ded0b5747412ebbb">Push</a> (ContainedType <span class="keyword">const</span>&amp; what)
<a name="l00208"></a>00208   { <span class="keywordflow">return</span> <a class="code" href="classscfArrayWrap.html#110c6ca27ef37f3afb52990307f18ddf" title="Reference to the array storage.">storage</a>.Push (what); }
<a name="l00209"></a><a class="code" href="classscfArrayWrap.html#6e2018ee30157dd0e7705f47c7cdc7fd">00209</a>   <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="classscfArrayWrap.html#6e2018ee30157dd0e7705f47c7cdc7fd">PushSmart</a> (ContainedType <span class="keyword">const</span>&amp; what)
<a name="l00210"></a>00210   { <span class="keywordflow">return</span> <a class="code" href="classscfArrayWrap.html#110c6ca27ef37f3afb52990307f18ddf" title="Reference to the array storage.">storage</a>.PushSmart (what); }
<a name="l00211"></a><a class="code" href="classscfArrayWrap.html#ae35c60996bbb25baf2a0a1fb52dcd16">00211</a>   <span class="keyword">virtual</span> ContainedType <a class="code" href="classscfArrayWrap.html#ae35c60996bbb25baf2a0a1fb52dcd16">Pop</a> ()
<a name="l00212"></a>00212   { <span class="keywordflow">return</span> <a class="code" href="classscfArrayWrap.html#110c6ca27ef37f3afb52990307f18ddf" title="Reference to the array storage.">storage</a>.Pop (); }
<a name="l00213"></a><a class="code" href="classscfArrayWrap.html#b0a26dff65159a158b4ad2e8ccf724aa">00213</a>   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classscfArrayWrap.html#b0a26dff65159a158b4ad2e8ccf724aa">Insert</a> (<span class="keywordtype">size_t</span> n, ContainedType <span class="keyword">const</span>&amp; item)
<a name="l00214"></a>00214   { <span class="keywordflow">return</span> <a class="code" href="classscfArrayWrap.html#110c6ca27ef37f3afb52990307f18ddf" title="Reference to the array storage.">storage</a>.Insert (n, item); }
<a name="l00215"></a><a class="code" href="classscfArrayWrap.html#37bf4990d808243927f3920dd8b9af83">00215</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classscfArrayWrap.html#37bf4990d808243927f3920dd8b9af83">DeleteAll</a> ()
<a name="l00216"></a>00216   { <a class="code" href="classscfArrayWrap.html#110c6ca27ef37f3afb52990307f18ddf" title="Reference to the array storage.">storage</a>.DeleteAll(); }
<a name="l00217"></a><a class="code" href="classscfArrayWrap.html#3bf0ba0d506ac6d2b258040b7cfb582e">00217</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classscfArrayWrap.html#3bf0ba0d506ac6d2b258040b7cfb582e">Truncate</a> (<span class="keywordtype">size_t</span> n)
<a name="l00218"></a>00218   { <a class="code" href="classscfArrayWrap.html#110c6ca27ef37f3afb52990307f18ddf" title="Reference to the array storage.">storage</a>.Truncate(n); }
<a name="l00219"></a><a class="code" href="classscfArrayWrap.html#fead12cb73c96da85815016da16b470b">00219</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classscfArrayWrap.html#fead12cb73c96da85815016da16b470b">Empty</a> ()
<a name="l00220"></a>00220   { <a class="code" href="classscfArrayWrap.html#110c6ca27ef37f3afb52990307f18ddf" title="Reference to the array storage.">storage</a>.Empty(); }
<a name="l00221"></a><a class="code" href="classscfArrayWrap.html#1521a06776990348c98a0172e415ff37">00221</a>   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classscfArrayWrap.html#1521a06776990348c98a0172e415ff37">DeleteIndex</a> (<span class="keywordtype">size_t</span> n)
<a name="l00222"></a>00222   { <span class="keywordflow">return</span> <a class="code" href="classscfArrayWrap.html#110c6ca27ef37f3afb52990307f18ddf" title="Reference to the array storage.">storage</a>.DeleteIndex  (n); }
<a name="l00223"></a><a class="code" href="classscfArrayWrap.html#0f4580d8fea89e68b0545e285d13b0d8">00223</a>   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classscfArrayWrap.html#0f4580d8fea89e68b0545e285d13b0d8">DeleteIndexFast</a> (<span class="keywordtype">size_t</span> n)
<a name="l00224"></a>00224   { <span class="keywordflow">return</span> <a class="code" href="classscfArrayWrap.html#110c6ca27ef37f3afb52990307f18ddf" title="Reference to the array storage.">storage</a>.DeleteIndexFast  (n); }
<a name="l00225"></a><a class="code" href="classscfArrayWrap.html#abceb4332d197a12a014622b4f846254">00225</a>   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classscfArrayWrap.html#abceb4332d197a12a014622b4f846254">Delete</a> (ContainedType <span class="keyword">const</span>&amp; item)
<a name="l00226"></a>00226   { <span class="keywordflow">return</span> <a class="code" href="classscfArrayWrap.html#110c6ca27ef37f3afb52990307f18ddf" title="Reference to the array storage.">storage</a>.Delete (item); }
<a name="l00228"></a>00228 };
<a name="l00229"></a>00229 
<a name="l00238"></a>00238 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> IF, <span class="keyword">typename</span> Backend&gt;
<a name="l00239"></a><a class="code" href="classscfArrayWrapConst.html">00239</a> <span class="keyword">class </span><a class="code" href="classscfArrayWrapConst.html" title="Implementation for iArrayReadOnly&amp;lt;&amp;gt;-derived interfaces, backed by a reference...">scfArrayWrapConst</a> : 
<a name="l00240"></a>00240   <span class="keyword">public</span> <a class="code" href="classscfImplementation1.html">scfImplementation1</a>&lt;scfArrayWrapConst&lt;IF, Backend&gt;, IF&gt;
<a name="l00241"></a>00241 {
<a name="l00242"></a>00242   <span class="keyword">typedef</span> <a class="code" href="classscfImplementation1.html">scfImplementation1&lt;scfArrayWrapConst&lt;IF, Backend&gt;</a>, IF&gt; 
<a name="l00243"></a>00243     <a class="code" href="classscfImplementation1.html">scfImplementationType</a>;
<a name="l00244"></a>00244   <span class="keyword">typedef</span> <span class="keyword">typename</span> IF::ContainedType ContainedType;
<a name="l00245"></a>00245 <span class="keyword">public</span>:
<a name="l00247"></a><a class="code" href="classscfArrayWrapConst.html#948c67a9e84826fd6ad7e2eb6509b7f3">00247</a>   <span class="keyword">const</span> Backend&amp; <a class="code" href="classscfArrayWrapConst.html#948c67a9e84826fd6ad7e2eb6509b7f3" title="Reference to the array storage.">storage</a>;
<a name="l00248"></a>00248 
<a name="l00250"></a>00250 
<a name="l00251"></a><a class="code" href="classscfArrayWrapConst.html#b177f29202652d46eac39df0787e2504">00251</a>   <a class="code" href="classscfArrayWrapConst.html#b177f29202652d46eac39df0787e2504" title="Initialize with a reference to the given storage.">scfArrayWrapConst</a> (<span class="keyword">const</span> Backend&amp; <a class="code" href="classscfArrayWrapConst.html#948c67a9e84826fd6ad7e2eb6509b7f3" title="Reference to the array storage.">storage</a>) : <a class="code" href="classscfImplementation1.html">scfImplementationType</a> (this), 
<a name="l00252"></a>00252     storage (storage) {}
<a name="l00253"></a><a class="code" href="classscfArrayWrapConst.html#5d2e13a6a60f832c66c4dff88c5a8685">00253</a>   <a class="code" href="classscfArrayWrapConst.html#b177f29202652d46eac39df0787e2504" title="Initialize with a reference to the given storage.">scfArrayWrapConst</a> (<span class="keyword">const</span> Backend&amp; <a class="code" href="classscfArrayWrapConst.html#948c67a9e84826fd6ad7e2eb6509b7f3" title="Reference to the array storage.">storage</a>, <a class="code" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one...">iBase</a>* <a class="code" href="classscfImplementation.html#fd66881aa3adfbdb3d837fa522ecf825">scfParent</a>) : 
<a name="l00254"></a>00254     <a class="code" href="classscfImplementation1.html">scfImplementationType</a> (this, scfParent), storage (storage) {}
<a name="l00256"></a>00256 
<a name="l00259"></a><a class="code" href="classscfArrayWrapConst.html#d6b2721d5ca9c7ebacef571d83c96293">00259</a>   <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="classscfArrayWrapConst.html#d6b2721d5ca9c7ebacef571d83c96293">GetSize</a> ()<span class="keyword"> const</span>
<a name="l00260"></a>00260 <span class="keyword">  </span>{ <span class="keywordflow">return</span> <a class="code" href="classscfArrayWrapConst.html#948c67a9e84826fd6ad7e2eb6509b7f3" title="Reference to the array storage.">storage</a>.GetSize(); }
<a name="l00261"></a><a class="code" href="classscfArrayWrapConst.html#17b84a1a11b1060087d60cc2535ae76a">00261</a>   <span class="keyword">virtual</span> ContainedType <span class="keyword">const</span>&amp; <a class="code" href="classscfArrayWrapConst.html#17b84a1a11b1060087d60cc2535ae76a">Get</a> (<span class="keywordtype">size_t</span> n)<span class="keyword"> const</span>
<a name="l00262"></a>00262 <span class="keyword">  </span>{ <span class="keywordflow">return</span> <a class="code" href="classscfArrayWrapConst.html#948c67a9e84826fd6ad7e2eb6509b7f3" title="Reference to the array storage.">storage</a>.Get (n); }
<a name="l00263"></a><a class="code" href="classscfArrayWrapConst.html#d6306b2ff875b071fcce3f808f46e30c">00263</a>   <span class="keyword">virtual</span> ContainedType <span class="keyword">const</span>&amp; <a class="code" href="classscfArrayWrapConst.html#d6306b2ff875b071fcce3f808f46e30c">Top</a> ()<span class="keyword"> const</span>
<a name="l00264"></a>00264 <span class="keyword">  </span>{ <span class="keywordflow">return</span> <a class="code" href="classscfArrayWrapConst.html#948c67a9e84826fd6ad7e2eb6509b7f3" title="Reference to the array storage.">storage</a>.Top(); }
<a name="l00265"></a><a class="code" href="classscfArrayWrapConst.html#10c4a7a41da69c06ac04b1ff0c0b39ae">00265</a>   <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="classscfArrayWrapConst.html#10c4a7a41da69c06ac04b1ff0c0b39ae">Find</a> (ContainedType <span class="keyword">const</span>&amp; which)<span class="keyword"> const</span>
<a name="l00266"></a>00266 <span class="keyword">  </span>{ <span class="keywordflow">return</span> <a class="code" href="classscfArrayWrapConst.html#948c67a9e84826fd6ad7e2eb6509b7f3" title="Reference to the array storage.">storage</a>.Find (which); }
<a name="l00267"></a><a class="code" href="classscfArrayWrapConst.html#503dbea63bc44e44ccd9f71eb9f23c8e">00267</a>   <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="classscfArrayWrapConst.html#503dbea63bc44e44ccd9f71eb9f23c8e">GetIndex</a> (<span class="keyword">const</span> ContainedType* which)<span class="keyword"> const</span>
<a name="l00268"></a>00268 <span class="keyword">  </span>{ <span class="keywordflow">return</span> <a class="code" href="classscfArrayWrapConst.html#948c67a9e84826fd6ad7e2eb6509b7f3" title="Reference to the array storage.">storage</a>.GetIndex (which); }
<a name="l00269"></a><a class="code" href="classscfArrayWrapConst.html#c2fb7c911bf5aa182e618a7c7b3d220f">00269</a>   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classscfArrayWrapConst.html#c2fb7c911bf5aa182e618a7c7b3d220f">IsEmpty</a>()<span class="keyword"> const</span>
<a name="l00270"></a>00270 <span class="keyword">  </span>{ <span class="keywordflow">return</span> <a class="code" href="classscfArrayWrapConst.html#948c67a9e84826fd6ad7e2eb6509b7f3" title="Reference to the array storage.">storage</a>.IsEmpty(); }
<a name="l00271"></a><a class="code" href="classscfArrayWrapConst.html#7926ce9a7f3993ad349daf4c90c16c84">00271</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classscfArrayWrapConst.html#7926ce9a7f3993ad349daf4c90c16c84">GetAll</a> (ContainedType* dest)<span class="keyword"> const</span>
<a name="l00272"></a>00272 <span class="keyword">  </span>{
<a name="l00273"></a>00273     <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="classscfArrayWrapConst.html#948c67a9e84826fd6ad7e2eb6509b7f3" title="Reference to the array storage.">storage</a>.GetSize(); i++)
<a name="l00274"></a>00274       dest[i] = <a class="code" href="classscfArrayWrapConst.html#948c67a9e84826fd6ad7e2eb6509b7f3" title="Reference to the array storage.">storage</a>[i];
<a name="l00275"></a>00275   }
<a name="l00277"></a>00277 };
<a name="l00278"></a>00278 
<a name="l00281"></a>00281 <span class="preprocessor">#endif // __CS_CSUTIL_SCFARRAY_H__</span>
</pre></div><hr size="1"><address><small>Generated for Crystal Space 1.2.1 by 
<a href="http://www.doxygen.org/index.html">doxygen</a> 1.5.3 
</small></address> </div></body> </html>