<!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: Containers (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><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> <h1>Containers<br> <small> [<a class="el" href="group__util.html">Utilities</a>]</small> </h1><table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Classes</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsArray.html">csArray< T, ElementHandler, MemoryAllocator, CapacityHandler ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A templated array class. <a href="classcsArray.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structcsArrayCapacityDefault.html">csArrayCapacityDefault</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsArrayCapacityLinear.html">csArrayCapacityLinear< Threshold ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classcsArray.html" title="A templated array class.">csArray</a> capacity handler. <a href="classcsArrayCapacityLinear.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsArrayCmp.html">csArrayCmp< T, K ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A functor template which encapsulates a key and a comparison function for use with key-related csArray<> searching methods, such as FindKey() and FindSortedKey(). <a href="classcsArrayCmp.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsArrayElementHandler.html">csArrayElementHandler< T ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The default element handler for <a class="el" href="classcsArray.html" title="A templated array class.">csArray</a>. <a href="classcsArrayElementHandler.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsArraySafeCopyElementHandler.html">csArraySafeCopyElementHandler< T ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Special element handler for <a class="el" href="classcsArray.html" title="A templated array class.">csArray</a> that makes sure that when the array is reallocated that the objects are properly constructed and destructed at their new position. <a href="classcsArraySafeCopyElementHandler.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsArrayThresholdFixed.html">csArrayThresholdFixed< N ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classcsArray.html" title="A templated array class.">csArray</a> fixed threshold for capacity handlers. <a href="classcsArrayThresholdFixed.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsArrayThresholdVariable.html">csArrayThresholdVariable</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classcsArray.html" title="A templated array class.">csArray</a> variable threshold for capacity handlers. <a href="classcsArrayThresholdVariable.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsComparator.html">csComparator< T1, T2 ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A template providing various comparison and ordering functions. <a href="classcsComparator.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsComparator_3_01const_01char_01_5_00_01const_01char_01_5_01_4.html">csComparator< const char *, const char * ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">csComparator<> specialization for strings that uses strcmp(). <a href="classcsComparator_3_01const_01char_01_5_00_01const_01char_01_5_01_4.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsComparator_3_01csString_00_01csString_01_4.html">csComparator< csString, csString ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">csComparator<> specialization for <a class="el" href="classcsString.html" title="Thin wrapper around csStringFast<> with its default buffer size.">csString</a> that uses strcmp(). <a href="classcsComparator_3_01csString_00_01csString_01_4.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsComparator_3_01csString_00_01csString_01_4.html">csComparator< csString, csString ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">csComparator<> specialization for <a class="el" href="classcsString.html" title="Thin wrapper around csStringFast<> with its default buffer size.">csString</a> that uses strcmp(). <a href="classcsComparator_3_01csString_00_01csString_01_4.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsComparator_3_01csStringBase_00_01csStringBase_01_4.html">csComparator< csStringBase, csStringBase ></a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsComparatorString.html">csComparatorString< T ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Template that can be used as a base class for comparators for string types. <a href="classcsComparatorString.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsComparatorStruct.html">csComparatorStruct< T ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Template that can be used as a base class for comparators for POD (plain old data) types. <a href="classcsComparatorStruct.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsConstPtrKey.html">csConstPtrKey< T ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A helper template to use const pointers as keys for hashes. <a href="classcsConstPtrKey.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsHash.html">csHash< T, K, ArrayMemoryAlloc ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A generic hash table class, which grows dynamically and whose buckets are unsorted arrays. <a href="classcsHash.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsHashComputer.html">csHashComputer< T ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Template for hash value computing. <a href="classcsHashComputer.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsHashComputer_3_01const_01char_01_5_01_4.html">csHashComputer< const char * ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">csHashComputer<> specialization for strings that uses <a class="el" href="group__util__containers.html#gb805c6e597fbb1d73233fecf4c050a6e" title="Compute a hash key for a null-terminated string.">csHashCompute()</a>. <a href="classcsHashComputer_3_01const_01char_01_5_01_4.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsHashComputer_3_01double_01_4.html">csHashComputer< double ></a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsHashComputer_3_01float_01_4.html">csHashComputer< float ></a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsHashComputer_3_01int_01_4.html">csHashComputer< int ></a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsHashComputer_3_01long_01_4.html">csHashComputer< long ></a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsHashComputer_3_01longlong_01_4.html">csHashComputer< longlong ></a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsHashComputer_3_01ulonglong_01_4.html">csHashComputer< ulonglong ></a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsHashComputer_3_01unsigned_01int_01_4.html">csHashComputer< unsigned int ></a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsHashComputer_3_01unsigned_01long_01_4.html">csHashComputer< unsigned long ></a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsHashComputer_3_01void_01_5_01_4.html">csHashComputer< void * ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">csHashComputer<> specialization for an integral type. <a href="classcsHashComputer_3_01void_01_5_01_4.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsHashComputer_3_01void_01_5_01_4.html">csHashComputer< void * ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">csHashComputer<> specialization for an integral type. <a href="classcsHashComputer_3_01void_01_5_01_4.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsHashComputerIntegral.html">csHashComputerIntegral< T ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Template for hash value computing, suitable for integral types and types that can be casted to such. <a href="classcsHashComputerIntegral.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsHashComputerString.html">csHashComputerString< T ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Template that can be used as a base class for hash computers for string types (must support cast to const char*). <a href="classcsHashComputerString.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsHashComputerStruct.html">csHashComputerStruct< T ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Template that can be used as a base class for hash computers for POD structs. <a href="classcsHashComputerStruct.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsHashReversible.html">csHashReversible< T, K ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A csHash<> that maintains a reverse hash for indexing keys by values. <a href="classcsHashReversible.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsMemoryPool.html">csMemoryPool</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A quick-allocation pool for storage of arbitrary data. <a href="classcsMemoryPool.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPtrKey.html">csPtrKey< T ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A helper template to use pointers as keys for hashes. <a href="classcsPtrKey.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRedBlackTree.html">csRedBlackTree< K ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A red-black-tree. <a href="classcsRedBlackTree.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRedBlackTreeMap.html">csRedBlackTreeMap< K, T ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Key-value-map, backed by <a class="el" href="classcsRedBlackTree.html" title="A red-black-tree.">csRedBlackTree</a>. <a href="classcsRedBlackTreeMap.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRedBlackTreePayload.html">csRedBlackTreePayload< K, T ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Helper template to allow storage of a payload together with a key in a <a class="el" href="classcsRedBlackTree.html" title="A red-black-tree.">csRedBlackTree</a>. <a href="classcsRedBlackTreePayload.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRefArrayObject.html">csRefArrayObject< T ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">This class implements a typed array that correctly keeps track of reference count and also is able to find by name. <a href="classcsRefArrayObject.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsSafeCopyArray.html">csSafeCopyArray< T ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Convenience class to make a version of csArray<> that does a safe-copy in case of reallocation of the array. <a href="classcsSafeCopyArray.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsSet.html">csSet< T, Allocator ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">This class implements a basic set for objects. <a href="classcsSet.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTuple2.html">csTuple2< First, Second ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A two length tuple (fixed size collection of elements) Tuples are typically used for quickly bounding grouped values around with a low overhead. <a href="classcsTuple2.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structiArrayChangeAll.html">iArrayChangeAll< T ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Array interface template, completely changeable. <a href="structiArrayChangeAll.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structiArrayChangeElements.html">iArrayChangeElements< T ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Array interface template, elements are changeable. <a href="structiArrayChangeElements.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structiArrayReadOnly.html">iArrayReadOnly< T ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Array interface template, read-only. <a href="structiArrayReadOnly.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classscfArray.html">scfArray< IF, Backend ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Implementation for iArrayReadOnly<>-, iArrayChangeElements<>- and iArrayChangeAll<>-derived interfaces, backed by a per-instance array. <a href="classscfArray.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classscfArrayWrap.html">scfArrayWrap< IF, Backend ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Implementation for iArrayReadOnly<>-, iArrayChangeElements<>- and iArrayChangeAll<>-derived interfaces, backed by a reference to another array. <a href="classscfArrayWrap.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classscfArrayWrapConst.html">scfArrayWrapConst< IF, Backend ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Implementation for iArrayReadOnly<>-derived interfaces, backed by a reference to another array. <a href="classscfArrayWrapConst.html#_details">More...</a><br></td></tr> <tr><td colspan="2"><br><h2>Defines</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__util__containers.html#g4ea191f7c63ce4d230d82d181b801f61">SCF_IARRAYCHANGEALL_INTERFACE</a>(Name) SCF_INTERFACE(Name, 0, 1, 0)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Macro to define interface version of an iArrayChangeAll-derived interface. <a href="#g4ea191f7c63ce4d230d82d181b801f61"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__util__containers.html#gf7ee52958a7049fdb03aa09515593a06">SCF_IARRAYCHANGEELEMENTS_INTERFACE</a>(Name) SCF_INTERFACE(Name, 0, 0, 1)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Macro to define interface version of an iArrayChangeElements-derived interface. <a href="#gf7ee52958a7049fdb03aa09515593a06"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__util__containers.html#ga2a21a3662510de90ca7dad0bf002734">SCF_IARRAYREADONLY_INTERFACE</a>(Name) SCF_INTERFACE(Name, 0, 0, 1)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Macro to define interface version of an iArrayReadOnly-derived interface. <a href="#ga2a21a3662510de90ca7dad0bf002734"></a><br></td></tr> <tr><td colspan="2"><br><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__util__containers.html#g440290362fd5eacc043fbf55698cfa81">csHashCompute</a> (char const *, size_t length)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compute a hash key for a string of a given length. <a href="#g440290362fd5eacc043fbf55698cfa81"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__util__containers.html#gb805c6e597fbb1d73233fecf4c050a6e">csHashCompute</a> (char const *)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compute a hash key for a null-terminated string. <a href="#gb805c6e597fbb1d73233fecf4c050a6e"></a><br></td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<typename First, typename Second> </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsTuple2.html">csTuple2</a>< First, Second > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__util__containers.html#g955eeb27e768c98d6dde38367d018ce3">MakeTuple</a> (First first, Second second)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Convenience function to create a <a class="el" href="classcsTuple2.html" title="A two length tuple (fixed size collection of elements) Tuples are typically used...">csTuple2</a> from 2 types. <a href="#g955eeb27e768c98d6dde38367d018ce3"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc3fc6b4bf9435dc4c11fdedfa57dc7a8"></a><!-- doxytag: member="util_containers::operator delete" ref="gc3fc6b4bf9435dc4c11fdedfa57dc7a8" args="(void *, csMemoryPool *)" --> void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__util__containers.html#gc3fc6b4bf9435dc4c11fdedfa57dc7a8">operator delete</a> (void *, <a class="el" href="classcsMemoryPool.html">csMemoryPool</a> *)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf2e4d137c0e7a5801e32f584af502ad1"></a><!-- doxytag: member="util_containers::operator delete" ref="gf2e4d137c0e7a5801e32f584af502ad1" args="(void *, csMemoryPool &)" --> void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__util__containers.html#gf2e4d137c0e7a5801e32f584af502ad1">operator delete</a> (void *, <a class="el" href="classcsMemoryPool.html">csMemoryPool</a> &)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf396c9305522b353fd6712180d2ae30d"></a><!-- doxytag: member="util_containers::operator new" ref="gf396c9305522b353fd6712180d2ae30d" args="(size_t n, csMemoryPool *p)" --> void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__util__containers.html#gf396c9305522b353fd6712180d2ae30d">operator new</a> (size_t n, <a class="el" href="classcsMemoryPool.html">csMemoryPool</a> *p)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__util__containers.html#gbc7922c9bd871e9c87c6ece97aaca88d">operator new</a> (size_t n, <a class="el" href="classcsMemoryPool.html">csMemoryPool</a> &p)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Convenience <code>new</code> operator which makes the allocation from a <a class="el" href="classcsMemoryPool.html" title="A quick-allocation pool for storage of arbitrary data.">csMemoryPool</a> rather than from the system heap. <a href="#gbc7922c9bd871e9c87c6ece97aaca88d"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g66a9edf87e5dc48cc0bda5c87ac28c9e"></a><!-- doxytag: member="util_containers::scfArray" ref="g66a9edf87e5dc48cc0bda5c87ac28c9e" args="(iBase *scfParent)" --> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__util__containers.html#g66a9edf87e5dc48cc0bda5c87ac28c9e">scfArray::scfArray</a> (<a class="el" href="structiBase.html">iBase</a> *scfParent)</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::scfArray</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Construct with empty storage. <a href="#g590fba9b1b63e741b036779f80f41de9"></a><br></td></tr> <tr><td colspan="2"><br><h2>Variables</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__util__containers.html#g7477ed9887527029069ab5d5c79e2f70">csArrayItemNotFound</a> = (size_t)-1</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">This value is returned whenever an array item could not be located or does not exist. <a href="#g7477ed9887527029069ab5d5c79e2f70"></a><br></td></tr> </table> <hr><h2>Define Documentation</h2> <a class="anchor" name="g4ea191f7c63ce4d230d82d181b801f61"></a><!-- doxytag: member="array.h::SCF_IARRAYCHANGEALL_INTERFACE" ref="g4ea191f7c63ce4d230d82d181b801f61" args="(Name)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define SCF_IARRAYCHANGEALL_INTERFACE </td> <td>(</td> <td class="paramtype">Name </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> SCF_INTERFACE(Name, 0, 1, 0)</td> </tr> </table> </div> <div class="memdoc"> <p> Macro to define interface version of an iArrayChangeAll-derived interface. <p> Use this instead of <a class="el" href="group__scf.html#g711056cbf220f268640935926c404ba5" title="SCF_INTERFACE can be used to define an interface's version number; you should...">SCF_INTERFACE</a> to automatically get version number bumps for your array interface in case the base <a class="el" href="structiArrayChangeAll.html" title="Array interface template, completely changeable.">iArrayChangeAll</a> gets extended. <p>Definition at line <a class="el" href="iutil_2array_8h-source.html#l00247">247</a> of file <a class="el" href="iutil_2array_8h-source.html">array.h</a>.</p> </div> </div><p> <a class="anchor" name="gf7ee52958a7049fdb03aa09515593a06"></a><!-- doxytag: member="array.h::SCF_IARRAYCHANGEELEMENTS_INTERFACE" ref="gf7ee52958a7049fdb03aa09515593a06" args="(Name)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define SCF_IARRAYCHANGEELEMENTS_INTERFACE </td> <td>(</td> <td class="paramtype">Name </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> SCF_INTERFACE(Name, 0, 0, 1)</td> </tr> </table> </div> <div class="memdoc"> <p> Macro to define interface version of an iArrayChangeElements-derived interface. <p> Use this instead of <a class="el" href="group__scf.html#g711056cbf220f268640935926c404ba5" title="SCF_INTERFACE can be used to define an interface's version number; you should...">SCF_INTERFACE</a> to automatically get version number bumps for your array interface in case the base <a class="el" href="structiArrayChangeElements.html" title="Array interface template, elements are changeable.">iArrayChangeElements</a> gets extended. <p>Definition at line <a class="el" href="iutil_2array_8h-source.html#l00130">130</a> of file <a class="el" href="iutil_2array_8h-source.html">array.h</a>.</p> </div> </div><p> <a class="anchor" name="ga2a21a3662510de90ca7dad0bf002734"></a><!-- doxytag: member="array.h::SCF_IARRAYREADONLY_INTERFACE" ref="ga2a21a3662510de90ca7dad0bf002734" args="(Name)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define SCF_IARRAYREADONLY_INTERFACE </td> <td>(</td> <td class="paramtype">Name </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> SCF_INTERFACE(Name, 0, 0, 1)</td> </tr> </table> </div> <div class="memdoc"> <p> Macro to define interface version of an iArrayReadOnly-derived interface. <p> Use this instead of <a class="el" href="group__scf.html#g711056cbf220f268640935926c404ba5" title="SCF_INTERFACE can be used to define an interface's version number; you should...">SCF_INTERFACE</a> to automatically get version number bumps for your array interface in case the base <a class="el" href="structiArrayReadOnly.html" title="Array interface template, read-only.">iArrayReadOnly</a> gets extended. <p>Definition at line <a class="el" href="iutil_2array_8h-source.html#l00093">93</a> of file <a class="el" href="iutil_2array_8h-source.html">array.h</a>.</p> </div> </div><p> <hr><h2>Function Documentation</h2> <a class="anchor" name="g440290362fd5eacc043fbf55698cfa81"></a><!-- doxytag: member="hash.h::csHashCompute" ref="g440290362fd5eacc043fbf55698cfa81" args="(char const *, size_t length)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned int csHashCompute </td> <td>(</td> <td class="paramtype">char const * </td> <td class="paramname">, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>length</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Compute a hash key for a string of a given length. <p> Note that these keys are non-unique; some dissimilar strings may generate the same key. For unique keys, see <a class="el" href="classcsStringSet.html" title="The string set is a collection of unique strings.">csStringSet</a>. </div> </div><p> <a class="anchor" name="gb805c6e597fbb1d73233fecf4c050a6e"></a><!-- doxytag: member="hash.h::csHashCompute" ref="gb805c6e597fbb1d73233fecf4c050a6e" args="(char const *)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned int csHashCompute </td> <td>(</td> <td class="paramtype">char const * </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Compute a hash key for a null-terminated string. <p> Note that these keys are non-unique; some dissimilar strings may generate the same key. For unique keys, see <a class="el" href="classcsStringSet.html" title="The string set is a collection of unique strings.">csStringSet</a>. <p>Referenced by <a class="el" href="hash_8h-source.html#l00227">csHashComputerStruct< T >::ComputeHash()</a>, and <a class="el" href="hash_8h-source.html#l00202">csHashComputerString< const char * >::ComputeHash()</a>.</p> </div> </div><p> <a class="anchor" name="g955eeb27e768c98d6dde38367d018ce3"></a><!-- doxytag: member="tuple.h::MakeTuple" ref="g955eeb27e768c98d6dde38367d018ce3" args="(First first, Second second)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename First, typename Second> </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="classcsTuple2.html">csTuple2</a><First, Second> MakeTuple </td> <td>(</td> <td class="paramtype">First </td> <td class="paramname"> <em>first</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">Second </td> <td class="paramname"> <em>second</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Convenience function to create a <a class="el" href="classcsTuple2.html" title="A two length tuple (fixed size collection of elements) Tuples are typically used...">csTuple2</a> from 2 types. <p> <p>Definition at line <a class="el" href="tuple_8h-source.html#l00063">63</a> of file <a class="el" href="tuple_8h-source.html">tuple.h</a>.</p> </div> </div><p> <a class="anchor" name="gbc7922c9bd871e9c87c6ece97aaca88d"></a><!-- doxytag: member="mempool.h::operator new" ref="gbc7922c9bd871e9c87c6ece97aaca88d" args="(size_t n, csMemoryPool &p)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void* operator new </td> <td>(</td> <td class="paramtype">size_t </td> <td class="paramname"> <em>n</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classcsMemoryPool.html">csMemoryPool</a> & </td> <td class="paramname"> <em>p</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Convenience <code>new</code> operator which makes the allocation from a <a class="el" href="classcsMemoryPool.html" title="A quick-allocation pool for storage of arbitrary data.">csMemoryPool</a> rather than from the system heap. <p> For instance, if <code>pool</code> is a pointer or reference to a <a class="el" href="classcsMemoryPool.html" title="A quick-allocation pool for storage of arbitrary data.">csMemoryPool</a>, and you want to allocate an object of type FooBar from the <a class="el" href="classcsMemoryPool.html" title="A quick-allocation pool for storage of arbitrary data.">csMemoryPool</a>, then you can do this: <div class="fragment"><pre class="fragment"> FooBar* foobar = <span class="keyword">new</span> (pool) FooBar; </pre></div> It is your responsibility to invoke the destructor of the objects you allocate from the <a class="el" href="classcsMemoryPool.html" title="A quick-allocation pool for storage of arbitrary data.">csMemoryPool</a> before the <a class="el" href="classcsMemoryPool.html" title="A quick-allocation pool for storage of arbitrary data.">csMemoryPool</a> itself is destroyed (since it knows nothing about the objects which you placed into it). For instance, continuing the above example, before destroying <code>pool</code>, you should invoke <code>foobar's</code> destructor as follows: <div class="fragment"><pre class="fragment"> foobar->~FooBar(); <span class="comment">// ... it is now safe to destroy `pool' ...</span> </pre></div> <p>Definition at line <a class="el" href="mempool_8h-source.html#l00132">132</a> of file <a class="el" href="mempool_8h-source.html">mempool.h</a>.</p> <p>References <a class="el" href="classcsMemoryPool.html#d8fbdf893c4bff02c794d21948061911">csMemoryPool::Alloc()</a>.</p> </div> </div><p> <a class="anchor" name="g590fba9b1b63e741b036779f80f41de9"></a><!-- doxytag: member="scfArray::scfArray" ref="g590fba9b1b63e741b036779f80f41de9" 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"><a class="el" href="classscfArray.html">scfArray</a>< IF, Backend >::<a class="el" href="classscfArray.html">scfArray</a> </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"><code> [inline, inherited]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Construct with empty storage. <p> <p>Definition at line <a class="el" href="scfarray_8h-source.html#l00067">67</a> of file <a class="el" href="scfarray_8h-source.html">scfarray.h</a>.</p> </div> </div><p> <hr><h2>Variable Documentation</h2> <a class="anchor" name="g7477ed9887527029069ab5d5c79e2f70"></a><!-- doxytag: member="array.h::csArrayItemNotFound" ref="g7477ed9887527029069ab5d5c79e2f70" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const size_t <a class="el" href="group__util__containers.html#g7477ed9887527029069ab5d5c79e2f70">csArrayItemNotFound</a> = (size_t)-1 </td> </tr> </table> </div> <div class="memdoc"> <p> This value is returned whenever an array item could not be located or does not exist. <p> <p>Definition at line <a class="el" href="csutil_2array_8h-source.html#l00337">337</a> of file <a class="el" href="csutil_2array_8h-source.html">array.h</a>.</p> <p>Referenced by <a class="el" href="partialorder_8h-source.html#l00131">csPartialOrder< csStringID >::Add()</a>, <a class="el" href="partialorder_8h-source.html#l00224">csPartialOrder< csStringID >::AddOrder()</a>, <a class="el" href="partialorder_8h-source.html#l00346">csPartialOrder< csStringID >::ClearMark()</a>, <a class="el" href="partialorder_8h-source.html#l00142">csPartialOrder< csStringID >::Contains()</a>, <a class="el" href="partialorder_8h-source.html#l00460">csPartialOrder< csStringID >::CycleTest()</a>, <a class="el" href="partialorder_8h-source.html#l00165">csPartialOrder< csStringID >::Delete()</a>, <a class="el" href="csutil_2array_8h-source.html#l01065">csArray< iEventHandler *, csRefArrayElementHandler< iEventHandler * >, CS::Memory::AllocatorMalloc >::Delete()</a>, <a class="el" href="partialorder_8h-source.html#l00251">csPartialOrder< csStringID >::DeleteOrder()</a>, <a class="el" href="csutil_2array_8h-source.html#l01040">csArray< iEventHandler *, csRefArrayElementHandler< iEventHandler * >, CS::Memory::AllocatorMalloc >::DeleteRange()</a>, <a class="el" href="csutil_2array_8h-source.html#l00849">csArray< iEventHandler *, csRefArrayElementHandler< iEventHandler * >, CS::Memory::AllocatorMalloc >::Find()</a>, <a class="el" href="nobjvec_8h-source.html#l00072">csRefArrayObject< T >::FindByName()</a>, <a class="el" href="csutil_2array_8h-source.html#l00679">csArray< iEventHandler *, csRefArrayElementHandler< iEventHandler * >, CS::Memory::AllocatorMalloc >::FindKey()</a>, <a class="el" href="csutil_2array_8h-source.html#l00781">csArray< iEventHandler *, csRefArrayElementHandler< iEventHandler * >, CS::Memory::AllocatorMalloc >::FindSortedKey()</a>, <a class="el" href="fixedsizeallocator_8h-source.html#l00251">csFixedSizeAllocator< sizeof(T), Allocator >::Free()</a>, <a class="el" href="fixedsizeallocator_8h-source.html#l00169">csFixedSizeAllocator< sizeof(T), Allocator >::GetAllocationMap()</a>, <a class="el" href="nobjvec_8h-source.html#l00059">csRefArrayObject< T >::GetIndexByName()</a>, <a class="el" href="csutil_2array_8h-source.html#l00815">csArray< iEventHandler *, csRefArrayElementHandler< iEventHandler * >, CS::Memory::AllocatorMalloc >::InsertSorted()</a>, <a class="el" href="partialorder_8h-source.html#l00369">csPartialOrder< csStringID >::IsEnabled()</a>, <a class="el" href="partialorder_8h-source.html#l00335">csPartialOrder< csStringID >::IsMarked()</a>, <a class="el" href="partialorder_8h-source.html#l00324">csPartialOrder< csStringID >::Mark()</a>, <a class="el" href="csutil_2array_8h-source.html#l00718">csArray< iEventHandler *, csRefArrayElementHandler< iEventHandler * >, CS::Memory::AllocatorMalloc >::PushSmart()</a>, <a class="el" href="tree_8h-source.html#l00040">csTreeNode::RemoveChild()</a>, <a class="el" href="weakreferenced_8h-source.html#l00064">CS::Utility::WeakReferenced::RemoveRefOwner()</a>, <a class="el" href="scf__implementation_8h-source.html#l00213">scfImplementation< csBaseTextureFactory >::RemoveRefOwner()</a>, <a class="el" href="partialorder_8h-source.html#l00403">csPartialOrder< csStringID >::SanityCheck()</a>, and <a class="el" href="fixedsizeallocator_8h-source.html#l00269">csFixedSizeAllocator< sizeof(T), Allocator >::TryFree()</a>.</p> </div> </div><p> <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>