<!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: scfArray< IF, Backend > Class Template Reference (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 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 class="current"><a href="classes.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="classes.html"><span>Alphabetical List</span></a></li> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <h1>scfArray< IF, Backend > Class Template Reference<br> <small> [<a class="el" href="group__util__containers.html">Containers</a>]</small> </h1><!-- doxytag: class="scfArray" --><!-- doxytag: inherits="scfImplementation1< scfArray< IF, Backend >, IF >" -->Implementation for iArrayReadOnly<>-, iArrayChangeElements<>- and iArrayChangeAll<>-derived interfaces, backed by a per-instance array. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="scfarray_8h-source.html">csutil/scfarray.h</a>></code> <p> <div class="dynheader"> Inheritance diagram for scfArray< IF, Backend >:</div> <div class="dynsection"> <p><center><img src="classscfArray__inherit__graph.png" border="0" usemap="#scfArray_3_01IF_00_01Backend_01_4__inherit__map" alt="Inheritance graph"></center> <map name="scfArray_3_01IF_00_01Backend_01_4__inherit__map"> <area shape="rect" href="classscfImplementation1.html" title="scfImplementation1\< scfArray\< IF, Backend \>, IF \>" alt="" coords="5,161,363,188"><area shape="rect" href="classscfImplementation.html" title="scfImplementation\< scfArray\< IF, Backend \> \>" alt="" coords="19,84,349,111"><area shape="rect" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one..." alt="" coords="75,7,131,33"><area shape="rect" href="classCS_1_1Memory_1_1CustomAllocated.html" title="Class that overrides operator new/operator delete/etc." alt="" coords="155,7,376,33"></map> <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div> <p> <a href="classscfArray-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g66a9edf87e5dc48cc0bda5c87ac28c9e"></a><!-- doxytag: member="scfArray::scfArray" ref="g66a9edf87e5dc48cc0bda5c87ac28c9e" args="(iBase *scfParent)" --> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__util__containers.html#g66a9edf87e5dc48cc0bda5c87ac28c9e">scfArray</a> (<a class="el" href="structiBase.html">iBase</a> *<a class="el" href="classscfImplementation.html#fd66881aa3adfbdb3d837fa522ecf825">scfParent</a>)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__util__containers.html#g590fba9b1b63e741b036779f80f41de9">scfArray</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Construct with empty storage. <a href="group__util__containers.html#g590fba9b1b63e741b036779f80f41de9"></a><br></td></tr> <tr><td colspan="2"><div class="groupHeader">iArrayChangeAll<> implementation</div></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ca79ac947c24809b054483aca2bc9c2c"></a><!-- doxytag: member="scfArray::Delete" ref="ca79ac947c24809b054483aca2bc9c2c" args="(ContainedType const &item)" --> virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classscfArray.html#ca79ac947c24809b054483aca2bc9c2c">Delete</a> (ContainedType const &item)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="073b73b8c5a8409ccb1c85c330b709e0"></a><!-- doxytag: member="scfArray::DeleteAll" ref="073b73b8c5a8409ccb1c85c330b709e0" args="()" --> virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classscfArray.html#073b73b8c5a8409ccb1c85c330b709e0">DeleteAll</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9245d8c6e46823fe181bc6b04b9241bb"></a><!-- doxytag: member="scfArray::DeleteIndex" ref="9245d8c6e46823fe181bc6b04b9241bb" args="(size_t n)" --> virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classscfArray.html#9245d8c6e46823fe181bc6b04b9241bb">DeleteIndex</a> (size_t n)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="33ec7a32bfe3ffcd11408baf46445f77"></a><!-- doxytag: member="scfArray::DeleteIndexFast" ref="33ec7a32bfe3ffcd11408baf46445f77" args="(size_t n)" --> virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classscfArray.html#33ec7a32bfe3ffcd11408baf46445f77">DeleteIndexFast</a> (size_t n)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0ab2fdb486e20709634c44a9e848bf54"></a><!-- doxytag: member="scfArray::Empty" ref="0ab2fdb486e20709634c44a9e848bf54" args="()" --> virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classscfArray.html#0ab2fdb486e20709634c44a9e848bf54">Empty</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b918ce788c526ba8458ca6ba2eb6cd28"></a><!-- doxytag: member="scfArray::GetExtend" ref="b918ce788c526ba8458ca6ba2eb6cd28" args="(size_t n)" --> virtual ContainedType & </td><td class="memItemRight" valign="bottom"><a class="el" href="classscfArray.html#b918ce788c526ba8458ca6ba2eb6cd28">GetExtend</a> (size_t n)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="db7333f4429792ef6d37b25491172ee6"></a><!-- doxytag: member="scfArray::Insert" ref="db7333f4429792ef6d37b25491172ee6" args="(size_t n, ContainedType const &item)" --> virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classscfArray.html#db7333f4429792ef6d37b25491172ee6">Insert</a> (size_t n, ContainedType const &item)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c0371cf4c8a5deb273438ace31358879"></a><!-- doxytag: member="scfArray::Pop" ref="c0371cf4c8a5deb273438ace31358879" args="()" --> virtual ContainedType </td><td class="memItemRight" valign="bottom"><a class="el" href="classscfArray.html#c0371cf4c8a5deb273438ace31358879">Pop</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="dadecf2b6233dfaba34dd1aa25225444"></a><!-- doxytag: member="scfArray::Push" ref="dadecf2b6233dfaba34dd1aa25225444" args="(ContainedType const &what)" --> virtual size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classscfArray.html#dadecf2b6233dfaba34dd1aa25225444">Push</a> (ContainedType const &what)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0b537a672b6fbc5651f6ae3c9fa1c4c8"></a><!-- doxytag: member="scfArray::PushSmart" ref="0b537a672b6fbc5651f6ae3c9fa1c4c8" args="(ContainedType const &what)" --> virtual size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classscfArray.html#0b537a672b6fbc5651f6ae3c9fa1c4c8">PushSmart</a> (ContainedType const &what)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="837c50a020483067923f4e5bbd0c5c04"></a><!-- doxytag: member="scfArray::Put" ref="837c50a020483067923f4e5bbd0c5c04" args="(size_t n, ContainedType const &what)" --> virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classscfArray.html#837c50a020483067923f4e5bbd0c5c04">Put</a> (size_t n, ContainedType const &what)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b933782acffe65e47cabffa159436c3c"></a><!-- doxytag: member="scfArray::SetSize" ref="b933782acffe65e47cabffa159436c3c" args="(size_t n)" --> virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classscfArray.html#b933782acffe65e47cabffa159436c3c">SetSize</a> (size_t n)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b3d39d5d767614249dcfbf2b053a8d7d"></a><!-- doxytag: member="scfArray::SetSize" ref="b3d39d5d767614249dcfbf2b053a8d7d" args="(size_t n, ContainedType const &what)" --> virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classscfArray.html#b3d39d5d767614249dcfbf2b053a8d7d">SetSize</a> (size_t n, ContainedType const &what)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8d06b0784b513ba1753d9e91fff61774"></a><!-- doxytag: member="scfArray::Truncate" ref="8d06b0784b513ba1753d9e91fff61774" args="(size_t n)" --> virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classscfArray.html#8d06b0784b513ba1753d9e91fff61774">Truncate</a> (size_t n)</td></tr> <tr><td colspan="2"><div class="groupHeader">iArrayReadOnly<> implementation</div></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="30d6ebbdc58abcf5bcd69e1abcc277f3"></a><!-- doxytag: member="scfArray::Find" ref="30d6ebbdc58abcf5bcd69e1abcc277f3" args="(ContainedType const &which) const " --> virtual size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classscfArray.html#30d6ebbdc58abcf5bcd69e1abcc277f3">Find</a> (ContainedType const &which) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4c669b90c9309a36ff836bfe09419838"></a><!-- doxytag: member="scfArray::Get" ref="4c669b90c9309a36ff836bfe09419838" args="(size_t n) const " --> virtual <br> ContainedType const & </td><td class="memItemRight" valign="bottom"><a class="el" href="classscfArray.html#4c669b90c9309a36ff836bfe09419838">Get</a> (size_t n) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8e65d43047882c1e9a68987b442003b3"></a><!-- doxytag: member="scfArray::GetAll" ref="8e65d43047882c1e9a68987b442003b3" args="(ContainedType *dest) const " --> virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classscfArray.html#8e65d43047882c1e9a68987b442003b3">GetAll</a> (ContainedType *dest) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1605acdded4267f758121fbfe3551159"></a><!-- doxytag: member="scfArray::GetIndex" ref="1605acdded4267f758121fbfe3551159" args="(const ContainedType *which) const " --> virtual size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classscfArray.html#1605acdded4267f758121fbfe3551159">GetIndex</a> (const ContainedType *which) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="72ebd96666262385b29f2e52ccffe671"></a><!-- doxytag: member="scfArray::GetSize" ref="72ebd96666262385b29f2e52ccffe671" args="() const " --> virtual size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classscfArray.html#72ebd96666262385b29f2e52ccffe671">GetSize</a> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f3bbf67d69b58522550ce1bb213cf67a"></a><!-- doxytag: member="scfArray::IsEmpty" ref="f3bbf67d69b58522550ce1bb213cf67a" args="() const " --> virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classscfArray.html#f3bbf67d69b58522550ce1bb213cf67a">IsEmpty</a> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="079775941f005d8868b490fae400624a"></a><!-- doxytag: member="scfArray::Top" ref="079775941f005d8868b490fae400624a" args="() const " --> virtual <br> ContainedType const & </td><td class="memItemRight" valign="bottom"><a class="el" href="classscfArray.html#079775941f005d8868b490fae400624a">Top</a> () const </td></tr> <tr><td colspan="2"><div class="groupHeader">iArrayChangeElements<> implementation</div></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="631a1f13f6150f0c4cd5efd4ea252c10"></a><!-- doxytag: member="scfArray::Get" ref="631a1f13f6150f0c4cd5efd4ea252c10" args="(size_t n)" --> virtual ContainedType & </td><td class="memItemRight" valign="bottom"><a class="el" href="classscfArray.html#631a1f13f6150f0c4cd5efd4ea252c10">Get</a> (size_t n)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ad468cf5991d50b503220300d16b79d8"></a><!-- doxytag: member="scfArray::Top" ref="ad468cf5991d50b503220300d16b79d8" args="()" --> virtual ContainedType & </td><td class="memItemRight" valign="bottom"><a class="el" href="classscfArray.html#ad468cf5991d50b503220300d16b79d8">Top</a> ()</td></tr> <tr><td colspan="2"><div class="groupHeader"></div></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9d09384c5cf6d3e55b6390906f85d067"></a><!-- doxytag: member="scfArray::scfArray" ref="9d09384c5cf6d3e55b6390906f85d067" args="(const Backend &storage, iBase *scfParent)" --> </td><td class="memItemRight" valign="bottom"><a class="el" href="classscfArray.html#9d09384c5cf6d3e55b6390906f85d067">scfArray</a> (const Backend &<a class="el" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c">storage</a>, <a class="el" href="structiBase.html">iBase</a> *<a class="el" href="classscfImplementation.html#fd66881aa3adfbdb3d837fa522ecf825">scfParent</a>)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classscfArray.html#bbf8e7b55dc33f5a68ffd6a5ec88a99e">scfArray</a> (const Backend &<a class="el" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c">storage</a>)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Construct and copy to storage contents from given array. <a href="#bbf8e7b55dc33f5a68ffd6a5ec88a99e"></a><br></td></tr> <tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">Backend </td><td class="memItemRight" valign="bottom"><a class="el" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c">storage</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The array storage. <a href="#3610cde4e2cd8226570a758518492c7c"></a><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> <h3>template<typename IF, typename Backend = csArray<typename IF::ContainedType>><br> class scfArray< IF, Backend ></h3> Implementation for iArrayReadOnly<>-, iArrayChangeElements<>- and iArrayChangeAll<>-derived interfaces, backed by a per-instance array. <p> The <code>IF</code> template parameter denotes the array interface to be implemented, the optional <code>Backend</code> remplate parameter the array type internally used for storage.<p> Usage example: <div class="fragment"><pre class="fragment"> <span class="keyword">struct </span>iSomeArray : <span class="keyword">public</span> <a class="code" href="structiArrayChangeElements.html" title="Array interface template, elements are changeable.">iArrayChangeElements</a><...> { ... }; <span class="keywordtype">void</span> MyClass::MyMethod() { <a class="code" href="classcsRef.html" title="A smart pointer.">csRef<iSomeArray></a> array; array.<a class="code" href="classcsRef.html#9e60343d6cf44b91d071a61cff000c79" title="Assign an object reference created with the new operator to this smart pointer.">AttachNew</a> (<span class="keyword">new</span> <a class="code" href="classscfArray.html" title="Implementation for iArrayReadOnly&lt;&gt;-, iArrayChangeElements&lt;&gt;- and iArrayChangeAll&lt;&gt...">scfArray<iSomeArray></a>); ... } </pre></div> <p>Definition at line <a class="el" href="scfarray_8h-source.html#l00056">56</a> of file <a class="el" href="scfarray_8h-source.html">scfarray.h</a>.</p> <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="bbf8e7b55dc33f5a68ffd6a5ec88a99e"></a><!-- doxytag: member="scfArray::scfArray" ref="bbf8e7b55dc33f5a68ffd6a5ec88a99e" args="(const Backend &storage)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename IF, typename Backend = csArray<typename IF::ContainedType>> </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="classscfArray.html">scfArray</a>< IF, Backend >::<a class="el" href="classscfArray.html">scfArray</a> </td> <td>(</td> <td class="paramtype">const Backend & </td> <td class="paramname"> <em>storage</em> </td> <td> ) </td> <td width="100%"><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Construct and copy to storage contents from given array. <p> <p>Definition at line <a class="el" href="scfarray_8h-source.html#l00072">72</a> of file <a class="el" href="scfarray_8h-source.html">scfarray.h</a>.</p> </div> </div><p> <hr><h2>Member Data Documentation</h2> <a class="anchor" name="3610cde4e2cd8226570a758518492c7c"></a><!-- doxytag: member="scfArray::storage" ref="3610cde4e2cd8226570a758518492c7c" args="" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename IF, typename Backend = csArray<typename IF::ContainedType>> </div> <table class="memname"> <tr> <td class="memname">Backend <a class="el" href="classscfArray.html">scfArray</a>< IF, Backend >::<a class="el" href="classscfArray.html#3610cde4e2cd8226570a758518492c7c">storage</a> </td> </tr> </table> </div> <div class="memdoc"> <p> The array storage. <p> <p>Definition at line <a class="el" href="scfarray_8h-source.html#l00063">63</a> of file <a class="el" href="scfarray_8h-source.html">scfarray.h</a>.</p> <p>Referenced by <a class="el" href="scfarray_8h-source.html#l00135">scfArray< IF, Backend >::Delete()</a>, <a class="el" href="scfarray_8h-source.html#l00125">scfArray< IF, Backend >::DeleteAll()</a>, <a class="el" href="scfarray_8h-source.html#l00131">scfArray< IF, Backend >::DeleteIndex()</a>, <a class="el" href="scfarray_8h-source.html#l00133">scfArray< IF, Backend >::DeleteIndexFast()</a>, <a class="el" href="scfarray_8h-source.html#l00129">scfArray< IF, Backend >::Empty()</a>, <a class="el" href="scfarray_8h-source.html#l00086">scfArray< IF, Backend >::Find()</a>, <a class="el" href="scfarray_8h-source.html#l00082">scfArray< IF, Backend >::Get()</a>, <a class="el" href="scfarray_8h-source.html#l00092">scfArray< IF, Backend >::GetAll()</a>, <a class="el" href="scfarray_8h-source.html#l00113">scfArray< IF, Backend >::GetExtend()</a>, <a class="el" href="scfarray_8h-source.html#l00088">scfArray< IF, Backend >::GetIndex()</a>, <a class="el" href="scfarray_8h-source.html#l00080">scfArray< IF, Backend >::GetSize()</a>, <a class="el" href="scfarray_8h-source.html#l00123">scfArray< IF, Backend >::Insert()</a>, <a class="el" href="scfarray_8h-source.html#l00090">scfArray< IF, Backend >::IsEmpty()</a>, <a class="el" href="scfarray_8h-source.html#l00121">scfArray< IF, Backend >::Pop()</a>, <a class="el" href="scfarray_8h-source.html#l00117">scfArray< IF, Backend >::Push()</a>, <a class="el" href="scfarray_8h-source.html#l00119">scfArray< IF, Backend >::PushSmart()</a>, <a class="el" href="scfarray_8h-source.html#l00115">scfArray< IF, Backend >::Put()</a>, <a class="el" href="scfarray_8h-source.html#l00109">scfArray< IF, Backend >::SetSize()</a>, <a class="el" href="scfarray_8h-source.html#l00084">scfArray< IF, Backend >::Top()</a>, and <a class="el" href="scfarray_8h-source.html#l00127">scfArray< IF, Backend >::Truncate()</a>.</p> </div> </div><p> <hr>The documentation for this class was generated from the following file:<ul> <li>csutil/<a class="el" href="scfarray_8h-source.html">scfarray.h</a></ul> <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>