Containers
[Utilities]
Classes | |
class | csArray< T, ElementHandler, MemoryAllocator, CapacityHandler > |
A templated array class. More... | |
struct | csArrayCapacityFixedGrow< N > |
Shortcut for an array capacity handler with a compile-time fixed rate of growth. More... | |
class | csArrayCapacityLinear< Threshold > |
csArray capacity handler. More... | |
class | csArrayCmp< T, K > |
A functor template which encapsulates a key and a comparison function for use with key-related csArray searching methods, such as FindKey() and FindSortedKey(). More... | |
class | csArrayElementHandler< T > |
The default element handler for csArray. More... | |
class | csArraySafeCopyElementHandler< T > |
Special element handler for csArray that makes sure that when the array is reallocated that the objects are properly constructed and destructed at their new position. More... | |
class | csArrayThresholdFixed< N > |
csArray fixed threshold for capacity handlers. More... | |
class | csArrayThresholdVariable |
csArray variable threshold for capacity handlers. More... | |
class | csComparator< T1, T2 > |
A template providing various comparison and ordering functions. More... | |
class | csComparator< const char *, const char * > |
csComparator<> specialization for strings that uses strcmp(). More... | |
class | csComparator< csString, csString > |
csComparator<> specialization for csString that uses strcmp(). More... | |
class | csComparatorString< T > |
Template that can be used as a base class for comparators for string types. More... | |
class | csComparatorStruct< T > |
Template that can be used as a base class for comparators for POD (plain old data) types. More... | |
class | csConstPtrKey< T > |
A helper template to use const pointers as keys for hashes. More... | |
class | csHash< T, K, ArrayMemoryAlloc, ArrayElementHandler > |
A generic hash table class, which grows dynamically and whose buckets are unsorted arrays. More... | |
class | csHashComputer< T > |
Template for hash value computing. More... | |
class | csHashComputer< const char * > |
csHashComputer<> specialization for strings that uses csHashCompute(). More... | |
class | csHashComputer< T * > |
csHashComputer<> specialization for an integral type. More... | |
class | csHashComputerIntegral< T > |
Template for hash value computing, suitable for integral types and types that can be casted to such. More... | |
class | csHashComputerString< T > |
Template that can be used as a base class for hash computers for string types (must support cast to const char*). More... | |
class | csHashComputerStruct< T > |
Template that can be used as a base class for hash computers for POD structs. More... | |
class | csHashReversible< T, K > |
A csHash<> that maintains a reverse hash for indexing keys by values. More... | |
class | csMemoryPool |
A quick-allocation pool for storage of arbitrary data. More... | |
class | csPtrKey< T > |
A helper template to use pointers as keys for hashes. More... | |
class | csRedBlackTree< K, Allocator, Ordering > |
A red-black-tree. More... | |
class | csRedBlackTreeMap< K, T, Allocator, Ordering > |
Key-value-map, backed by csRedBlackTree. More... | |
class | csRedBlackTreePayload< K, T > |
Helper template to allow storage of a payload together with a key in a csRedBlackTree. More... | |
class | csRefArrayObject< T, Allocator, CapacityHandler > |
This class implements a typed array that correctly keeps track of reference count and also is able to find by name. More... | |
class | csSafeCopyArray< T, Allocator, CapacityHandler > |
Convenience class to make a version of csArray that does a safe-copy in case of reallocation of the array. More... | |
class | csSet< T, Allocator > |
This class implements a basic set for objects. More... | |
class | csTuple2< First, Second > |
A two length tuple (fixed size collection of elements) Tuples are typically used for quickly bounding grouped values around with a low overhead. More... | |
struct | iArrayChangeAll< T > |
Array interface template, completely changeable. More... | |
struct | iArrayChangeElements< T > |
Array interface template, elements are changeable. More... | |
struct | iArrayReadOnly< T > |
Array interface template, read-only. More... | |
class | scfArray< IF, Backend > |
Implementation for iArrayReadOnly<>-, iArrayChangeElements<>- and iArrayChangeAll<>-derived interfaces, backed by a per-instance array. More... | |
class | scfArrayWrap< IF, Backend > |
Implementation for iArrayReadOnly<>-, iArrayChangeElements<>- and iArrayChangeAll<>-derived interfaces, backed by a reference to another array. More... | |
class | scfArrayWrapConst< IF, Backend > |
Implementation for iArrayReadOnly<>-derived interfaces, backed by a reference to another array. More... | |
Namespaces | |
namespace | CS |
Main namespace for CrystalSpace. | |
Defines | |
#define | SCF_IARRAYCHANGEALL_INTERFACE(Name) SCF_INTERFACE(Name, 0, 1, 0) |
Macro to define interface version of an iArrayChangeAll-derived interface. | |
#define | SCF_IARRAYCHANGEELEMENTS_INTERFACE(Name) SCF_INTERFACE(Name, 0, 0, 1) |
Macro to define interface version of an iArrayChangeElements-derived interface. | |
#define | SCF_IARRAYREADONLY_INTERFACE(Name) SCF_INTERFACE(Name, 0, 0, 1) |
Macro to define interface version of an iArrayReadOnly-derived interface. | |
Functions | |
unsigned int | csHashCompute (char const *, size_t length) |
Compute a hash key for a string of a given length. | |
unsigned int | csHashCompute (char const *) |
Compute a hash key for a null-terminated string. | |
template<typename First , typename Second > | |
csTuple2< First, Second > | MakeTuple (First first, Second second) |
Convenience function to create a csTuple2 from 2 types. | |
void * | operator new (size_t n, csMemoryPool &p) |
Convenience new operator which makes the allocation from a csMemoryPool rather than from the system heap. | |
scfArray::scfArray () | |
Construct with empty storage. | |
Variables | |
const size_t | csArrayItemNotFound = (size_t)-1 |
This value is returned whenever an array item could not be located or does not exist. |
Define Documentation
#define SCF_IARRAYCHANGEALL_INTERFACE | ( | Name | ) | SCF_INTERFACE(Name, 0, 1, 0) |
Macro to define interface version of an iArrayChangeAll-derived interface.
Use this instead of SCF_INTERFACE to automatically get version number bumps for your array interface in case the base iArrayChangeAll gets extended.
#define SCF_IARRAYCHANGEELEMENTS_INTERFACE | ( | Name | ) | SCF_INTERFACE(Name, 0, 0, 1) |
Macro to define interface version of an iArrayChangeElements-derived interface.
Use this instead of SCF_INTERFACE to automatically get version number bumps for your array interface in case the base iArrayChangeElements gets extended.
#define SCF_IARRAYREADONLY_INTERFACE | ( | Name | ) | SCF_INTERFACE(Name, 0, 0, 1) |
Macro to define interface version of an iArrayReadOnly-derived interface.
Use this instead of SCF_INTERFACE to automatically get version number bumps for your array interface in case the base iArrayReadOnly gets extended.
Function Documentation
unsigned int csHashCompute | ( | char const * | , | |
size_t | length | |||
) |
Compute a hash key for a string of a given length.
Note that these keys are non-unique; some dissimilar strings may generate the same key. For unique keys, see csStringSet.
unsigned int csHashCompute | ( | char const * | ) |
Compute a hash key for a null-terminated string.
Note that these keys are non-unique; some dissimilar strings may generate the same key. For unique keys, see csStringSet.
csTuple2<First, Second> MakeTuple | ( | First | first, | |
Second | second | |||
) | [inline] |
void* operator new | ( | size_t | n, | |
csMemoryPool & | p | |||
) | [inline] |
Convenience new
operator which makes the allocation from a csMemoryPool rather than from the system heap.
For instance, if pool
is a pointer or reference to a csMemoryPool, and you want to allocate an object of type FooBar from the csMemoryPool, then you can do this:
FooBar* foobar = new (pool) FooBar;
It is your responsibility to invoke the destructor of the objects you allocate from the csMemoryPool before the csMemoryPool itself is destroyed (since it knows nothing about the objects which you placed into it). For instance, continuing the above example, before destroying pool
, you should invoke foobar's
destructor as follows:
foobar->~FooBar();
// ... it is now safe to destroy `pool' ...
scfArray< IF, Backend >::scfArray | ( | ) | [inline, inherited] |
Construct with empty storage.
Definition at line 67 of file scfarray.h.
Variable Documentation
const size_t csArrayItemNotFound = (size_t)-1 |
Generated for Crystal Space 2.0 by doxygen 1.6.1