The Pedigree Project  0.1
Classes | Macros | Typedefs | Functions | Variables
utilities

Utilities. More...

+ Collaboration diagram for utilities:

Classes

class  Cord
 
class  HashTable< K, V, SiblingK, InitialBuckets, QuadraticProbe, GrowthFactor >
 
class  Iterator< originalT, Struct, FunctionPrev, FunctionNext, T >
 An iterator applicable for many data structures. More...
 
class  TreeIterator< originalT, Struct, FunctionPrev, FunctionNext, K, T >
 An iterator applicable for many data structures. More...
 
class  IteratorAdapter< T, Iterator >
 IteratorAdapter reinterpret_casts an Iterators element to another type. More...
 
struct  _ListNode_t< T >
 One node in the list. More...
 
class  List< T, nodePoolSize >
 
class  LruCache< K, T, Slots >
 LruCache provides a least-recently-used cache abstraction. More...
 
class  Pair< T1, T2 >
 
class  RadixTree< T >
 A key/value dictionary for string keys. More...
 
class  RangeList< T, Reversed >
 
class  StaticCord< N >
 
class  StaticString< N >
 
class  String
 
class  StringView
 
class  HashedStringView
 
struct  nonconst_type< T >
 Remove the const qualifier of a type. More...
 
struct  nonconst_type< const T >
 Remove the const qualifier of a type. More...
 
class  Tree< K, E >
 A key/value dictionary. More...
 
class  Vector< T >
 A vector / dynamic array. More...
 

Macros

#define STRING_WITH_CONSTEXPR_CONSTRUCTOR   0
 
#define STRING_DISABLE_COPY_CONSTRUCTION   0
 
#define STRING_DISABLE_JIT_HASHING   0
 
#define HASH_STRINGVIEWS_BY_DEFAULT   false
 
#define BS8(x)   (x)
 
#define BS16(x)   (((x & 0xFF00) >> 8) | ((x & 0x00FF) << 8))
 
#define BS32(x)
 
#define BS64(x)   (x)
 
#define BIG_TO_HOST8(x)   (x)
 
#define BIG_TO_HOST16(x)   (x)
 
#define BIG_TO_HOST32(x)   (x)
 
#define BIG_TO_HOST64(x)   (x)
 
#define HOST_TO_BIG8(x)   (x)
 
#define HOST_TO_BIG16(x)   (x)
 
#define HOST_TO_BIG32(x)   (x)
 
#define HOST_TO_BIG64(x)   (x)
 
#define LITTLE_TO_HOST8(x)   BS8((x))
 
#define LITTLE_TO_HOST16(x)   BS16((x))
 
#define LITTLE_TO_HOST32(x)   BS32((x))
 
#define LITTLE_TO_HOST64(x)   BS64((x))
 
#define HOST_TO_LITTLE8(x)   BS8((x))
 
#define HOST_TO_LITTLE16(x)   BS16((x))
 
#define HOST_TO_LITTLE32(x)   BS32((x))
 
#define HOST_TO_LITTLE64(x)   BS64((x))
 
#define MAX_FUNCTION_NAME   128
 
#define MAX_PARAMS   32
 
#define MAX_PARAM_LENGTH   64
 

Typedefs

typedef RangeList< uintptr_t > MemoryAllocator
 
typedef StaticString< 32 > TinyStaticString
 
typedef StaticString< 64 > NormalStaticString
 
typedef StaticString< 128 > LargeStaticString
 
typedef StaticString< 1024 > HugeStaticString
 

Functions

template<typename originalT , class Struct , Struct *(Struct::*)() FunctionPrev, Struct *(Struct::*)() FunctionNext, typename T1 , typename T2 >
bool operator== (const Iterator< originalT, Struct, FunctionPrev, FunctionNext, T1 > &x1, const Iterator< originalT, Struct, FunctionPrev, FunctionNext, T2 > &x2)
 
template<typename originalT , class Struct , Struct *(Struct::*)() FunctionPrev, Struct *(Struct::*)() FunctionNext, typename K1 , typename T1 , typename K2 , typename T2 >
bool operator== (const TreeIterator< originalT, Struct, FunctionPrev, FunctionNext, K1, T1 > &x1, const TreeIterator< originalT, Struct, FunctionPrev, FunctionNext, K2, T2 > &x2)
 
template<class T1 , class T2 >
bool operator== (const Pair< T1, T2 > &left, const Pair< T1, T2 > &right)
 
template<class T1 , class T2 >
bool operator!= (const Pair< T1, T2 > &left, const Pair< T1, T2 > &right)
 
template<class T1 , class T2 >
bool operator< (const Pair< T1, T2 > &left, const Pair< T1, T2 > &right)
 
template<class T1 , class T2 >
bool operator<= (const Pair< T1, T2 > &left, const Pair< T1, T2 > &right)
 
template<class T1 , class T2 >
bool operator> (const Pair< T1, T2 > &left, const Pair< T1, T2 > &right)
 
template<class T1 , class T2 >
bool operator>= (const Pair< T1, T2 > &left, const Pair< T1, T2 > &right)
 
template<typename T1 , typename T2 >
Pair< T1, T2 > makePair (T1 a, T2 b)
 
template<class T1 , class T2 >
bool operator!= (const T1 &x1, const T2 &x2)
 Global != operator for types with overloaded == operator. More...
 
template<class T >
operator++ (T &x, int)
 Global postincrement operator for types with overloaded preincrement operator. More...
 
template<class T >
operator-- (T &x, int)
 Global postdecrement operator for types with overloaded predecrement operator. More...
 
EXPORTED_PUBLIC void * page_align (void *p) PURE
 
 List< T, nodePoolSize >::List ()
 
 List< T, nodePoolSize >::List (const List &x)
 
 List< T, nodePoolSize >::~List ()
 
ListList< T, nodePoolSize >::operator= (const List &x)
 
size_t List< T, nodePoolSize >::size () const
 
size_t List< T, nodePoolSize >::count () const
 
void List< T, nodePoolSize >::pushBack (const T &value)
 
void List< T, nodePoolSize >::pushBack (T &&value)
 
List< T, nodePoolSize >::popBack ()
 
void List< T, nodePoolSize >::pushFront (const T &value)
 
void List< T, nodePoolSize >::pushFront (T &&value)
 
List< T, nodePoolSize >::popFront ()
 
Iterator List< T, nodePoolSize >::erase (Iterator &Iter)
 
ReverseIterator List< T, nodePoolSize >::erase (ReverseIterator &Iter)
 
void List< T, nodePoolSize >::clear ()
 
void List< T, nodePoolSize >::assign (const List &x)
 
 RadixTree< T >::RadixTree ()
 
 RadixTree< T >::RadixTree (bool bCaseSensitive)
 
 RadixTree< T >::~RadixTree ()
 
 RadixTree< T >::RadixTree (const RadixTree< T > &x)
 
RadixTreeRadixTree< T >::operator= (const RadixTree &x)
 
size_t RadixTree< T >::count () const
 
void RadixTree< T >::insert (const String &key, const T &value)
 
Result< T, bool > RadixTree< T >::lookup (const String &key) const
 
void RadixTree< T >::remove (const String &key)
 
Node * RadixTree< T >::cloneNode (Node *node, Node *parent)
 
void RadixTree< T >::clear ()
 
void RadixTree< T >::dump (void(*emit_line)(const char *s)) const
 
void RadixTree< T >::Node::returnAllChildren ()
 
Node * RadixTree< T >::Node::findChild (const char *cpKey) const
 
void RadixTree< T >::Node::addChild (Node *pNode)
 
void RadixTree< T >::Node::replaceChild (Node *pNodeOld, Node *pNodeNew)
 
void RadixTree< T >::Node::removeChild (Node *pChild)
 
MatchType RadixTree< T >::Node::matchKey (const char *cpKey, size_t &offset) const
 
void RadixTree< T >::Node::setKey (const char *cpKey)
 
void RadixTree< T >::Node::setKey (const char *cpKey, size_t lengthHint)
 
Node * RadixTree< T >::Node::getFirstChild () const
 
void RadixTree< T >::Node::prependKey (const char *cpKey)
 
Node * RadixTree< T >::Node::doNext () const
 
Node * RadixTree< T >::Node::getNextSibling () const
 
void RadixTree< T >::Node::dump (void(*emit_line)(const char *s)) const
 
 Vector< T >::Vector ()
 
 Vector< T >::Vector (size_t size)
 
 Vector< T >::Vector (const Vector &x)
 
 Vector< T >::~Vector ()
 
VectorVector< T >::operator= (const Vector &x)
 
T & Vector< T >::operator[] (size_t index) const
 
size_t Vector< T >::size () const
 
size_t Vector< T >::count () const
 
void Vector< T >::pushBack (const T &value)
 
Vector< T >::popBack ()
 
void Vector< T >::pushFront (const T &value)
 
Vector< T >::popFront ()
 
void Vector< T >::setAt (size_t idx, const T &value)
 
void Vector< T >::clear (bool freeMem=false)
 
void Vector< T >::erase (size_t index)
 
Iterator Vector< T >::erase (Iterator iter)
 
ReverseIterator Vector< T >::erase (ReverseIterator iter)
 
void Vector< T >::assign (const Vector &x)
 
void Vector< T >::reserve (size_t size, bool copy)
 
void Vector< T >::reserve (size_t size, bool copy, bool free)
 
void Vector< T >::swap (Iterator a, Iterator b)
 
void Vector< T >::insert (size_t index, const T &value)
 

Variables

template class EXPORTED_PUBLIC StaticCord< 8 >
 
template class EXPORTED_PUBLIC StaticString< 32 >
 
template class EXPORTED_PUBLIC StaticString< 64 >
 
template class EXPORTED_PUBLIC StaticString< 128 >
 
template class EXPORTED_PUBLIC StaticString< 1024 >
 

Detailed Description

Utilities.

Classes, functions, defines that are utilised in the whole kernel

Macro Definition Documentation

#define BS32 (   x)
Value:
(((x & 0xFF000000) >> 24) | ((x & 0x00FF0000) >> 8) | \
((x & 0x0000FF00) << 8) | ((x & 0x000000FF) << 24))

Definition at line 41 of file utility.h.

Function Documentation

template<class T >
void RadixTree< T >::Node::addChild ( Node pNode)

Adds a new child.

Definition at line 716 of file RadixTree.h.

Referenced by RadixTree< T >::cloneNode(), RadixTree< T >::insert(), and RadixTree< T >::remove().

+ Here is the caller graph for this function:

template<typename T , size_t nodePoolSize>
void List< T, nodePoolSize >::assign ( const List< T, nodePoolSize > &  x)

Copy the content of a List into this List

Parameters
[in]xthe reference List

Definition at line 401 of file List.h.

References List< T, nodePoolSize >::begin(), List< T, nodePoolSize >::clear(), List< T, nodePoolSize >::end(), List< T, nodePoolSize >::m_Count, and List< T, nodePoolSize >::pushBack().

Referenced by List< T, nodePoolSize >::List(), and List< T, nodePoolSize >::operator=().

+ Here is the caller graph for this function:

template<class T >
void Vector< T >::assign ( const Vector< T > &  x)

Copy the content of a Vector into this Vector

Parameters
[in]xthe reference Vector

Definition at line 381 of file Vector.h.

References Vector< T >::count(), Vector< T >::m_Count, Vector< T >::m_Data, Vector< T >::m_Start, Vector< T >::reserve(), and Vector< T >::size().

Referenced by Vector< T >::operator=(), and Vector< T >::Vector().

+ Here is the caller graph for this function:

template<class T >
void Vector< T >::clear ( bool  freeMem = false)

Clear the Vector. Pass freeMem = true to also free the memory consumed by the Vector. Pass freeMem = false to retain the memory for future Vector usage.

Definition at line 337 of file Vector.h.

References Vector< T >::m_Count, Vector< T >::m_Data, Vector< T >::m_Size, and Vector< T >::m_Start.

Referenced by AllocationCommand::execute(), LockManager::LockManager(), PciAtaController::PciAtaController(), PosixProcess::PosixProcess(), X86CommonPhysicalMemoryManager::shutdown(), String::tokenise(), Ext2Node::wipe(), HostedPhysicalMemoryManager::~HostedPhysicalMemoryManager(), and RangeList< T, Reversed >::~RangeList().

+ Here is the caller graph for this function:

template<typename T , size_t nodePoolSize>
void List< T, nodePoolSize >::clear ( )
template<class T >
void RadixTree< T >::clear ( )

Clear the tree.

Definition at line 659 of file RadixTree.h.

References RadixTree< T >::getNewNode(), RadixTree< T >::m_nItems, RadixTree< T >::m_pRoot, and RadixTree< T >::returnNode().

Referenced by RadixTree< T >::operator=(), RadixTree< T >::RadixTree(), and RadixTree< T >::~RadixTree().

+ Here is the caller graph for this function:

template<class T >
RadixTree< T >::Node * RadixTree< T >::cloneNode ( Node node,
Node parent 
)
private

Internal function to create a copy of a subtree.

Definition at line 637 of file RadixTree.h.

References RadixTree< T >::Node::addChild(), Vector< T >::begin(), Vector< T >::end(), RadixTree< T >::getNewNode(), RadixTree< T >::Node::m_Children, RadixTree< T >::Node::m_Key, and RadixTree< T >::Node::value.

Referenced by RadixTree< T >::operator=(), and RadixTree< T >::RadixTree().

+ Here is the caller graph for this function:

template<typename T , size_t nodePoolSize>
size_t List< T, nodePoolSize >::count ( ) const
template<class T >
size_t Vector< T >::count ( ) const
template<class T >
size_t RadixTree< T >::count ( ) const

Get the number of elements in the Tree

Returns
the number of elements in the Tree

Definition at line 341 of file RadixTree.h.

References RadixTree< T >::m_nItems.

template<class T >
RadixTree< T >::Node * RadixTree< T >::Node::doNext ( ) const
private
template<class T >
void RadixTree< T >::dump ( void(*)(const char *s)  emit_line) const

Dump the RadixTree in dot format.

Definition at line 668 of file RadixTree.h.

References RadixTree< T >::m_pRoot, and RadixTree< T >::returnNode().

Referenced by RadixTree< T >::Node::getNextSibling().

+ Here is the caller graph for this function:

template<typename T , size_t nodePoolSize>
List< T, nodePoolSize >::Iterator List< T, nodePoolSize >::erase ( Iterator Iter)
template<typename T , size_t nodePoolSize>
List< T, nodePoolSize >::ReverseIterator List< T, nodePoolSize >::erase ( ReverseIterator Iter)

Erase an element with a reverse iterator

Parameters
[in]reverseiterator the iterator that points to the element

Definition at line 365 of file List.h.

References Iterator< originalT, Struct, FunctionPrev, FunctionNext, T >::__getNode(), List< T, nodePoolSize >::m_Count, List< T, nodePoolSize >::m_First, List< T, nodePoolSize >::m_Last, _ListNode_t< T >::m_Next, and _ListNode_t< T >::m_Previous.

template<class T >
void Vector< T >::erase ( size_t  index)
template<class T >
Vector< T >::Iterator Vector< T >::erase ( Iterator  iter)

Erase one Element

Definition at line 367 of file Vector.h.

References Vector< T >::begin(), and Vector< T >::erase().

template<class T >
Vector< T >::ReverseIterator Vector< T >::erase ( ReverseIterator  iter)

Erase one Element

Definition at line 374 of file Vector.h.

References Vector< T >::erase(), Vector< T >::m_Data, and Vector< T >::m_Start.

template<class T >
RadixTree< T >::Node * RadixTree< T >::Node::findChild ( const char *  cpKey) const

Locates a child of this node, given the key portion of key (lookahead on the first token)

Definition at line 702 of file RadixTree.h.

Referenced by RadixTree< T >::insert(), RadixTree< T >::lookup(), and RadixTree< T >::remove().

+ Here is the caller graph for this function:

template<class T >
RadixTree< T >::Node * RadixTree< T >::Node::getFirstChild ( ) const

Returns the first found child of the node.

Definition at line 806 of file RadixTree.h.

Referenced by RadixTree< T >::Node::doNext(), and RadixTree< T >::remove().

+ Here is the caller graph for this function:

template<class T >
RadixTree< T >::Node * RadixTree< T >::Node::getNextSibling ( ) const
private

Returns the node's next sibling, by looking at its parent's children.

Definition at line 847 of file RadixTree.h.

References RadixTree< T >::dump().

Referenced by RadixTree< T >::Node::doNext().

+ Here is the caller graph for this function:

template<class T>
void Vector< T >::insert ( size_t  index,
const T &  value 
)

Insert into the vector, moving all items after the given position along.

Definition at line 442 of file Vector.h.

References Vector< T >::m_Count, Vector< T >::m_Data, Vector< T >::m_Start, Vector< T >::pushBack(), Vector< T >::pushFront(), and Vector< T >::reserve().

template<class T>
void RadixTree< T >::insert ( const String key,
const T &  value 
)
template<typename T , size_t nodePoolSize>
List< T, nodePoolSize >::List ( )

Default constructor, does nothing

Definition at line 196 of file List.h.

template<typename T , size_t nodePoolSize>
List< T, nodePoolSize >::List ( const List< T, nodePoolSize > &  x)

Copy-constructor

Parameters
[in]xreference object

Definition at line 202 of file List.h.

References List< T, nodePoolSize >::assign().

template<class T >
Result< T, bool > RadixTree< T >::lookup ( const String key) const
template<class T >
RadixTree< T >::Node::MatchType RadixTree< T >::Node::matchKey ( const char *  cpKey,
size_t &  offset 
) const

Compares cpKey and this node's key, returning the type of match found. The offset out parameter provides the position where a partial match ceases.

Definition at line 753 of file RadixTree.h.

References RadixTree< T >::m_bCaseSensitive.

Referenced by RadixTree< T >::insert(), RadixTree< T >::lookup(), and RadixTree< T >::remove().

+ Here is the caller graph for this function:

template<class T1 , class T2 >
bool operator!= ( const T1 &  x1,
const T2 &  x2 
)

Global != operator for types with overloaded == operator.

Global != operator is provided for every type that provides a == operator

Parameters
[in]x1first operand
[in]x2second operand
Returns
true, if the objects are not equal, false otherwise

Definition at line 32 of file template.h.

Referenced by IpAddress::operator+().

+ Here is the caller graph for this function:

template<class T >
T operator++ ( T &  x,
int   
)

Global postincrement operator for types with overloaded preincrement operator.

Global postincrement operator is provided for every type that provides a preincrement operator.

Parameters
[in]xobject
Returns
original object

Definition at line 41 of file template.h.

template<class T >
T operator-- ( T &  x,
int   
)

Global postdecrement operator for types with overloaded predecrement operator.

Global postdecrement operator is provided for every type that provides a predecrement operator.

Parameters
[in]xobject
Returns
original object

Definition at line 52 of file template.h.

template<typename T , size_t nodePoolSize>
List< T, nodePoolSize > & List< T, nodePoolSize >::operator= ( const List< T, nodePoolSize > &  x)

Assignment operator

Parameters
[in]xthe object that should be copied

Definition at line 215 of file List.h.

References List< T, nodePoolSize >::assign().

template<class T >
Vector< T > & Vector< T >::operator= ( const Vector< T > &  x)

The assignment operator

Parameters
[in]xthe object that should be copied

Definition at line 242 of file Vector.h.

References Vector< T >::assign().

template<class T >
RadixTree< T > & RadixTree< T >::operator= ( const RadixTree< T > &  x)

The assignment operator

Parameters
[in]xthe object that should be copied
Todo:
check for incompatible case-sensitivity?

Definition at line 330 of file RadixTree.h.

References RadixTree< T >::clear(), RadixTree< T >::cloneNode(), RadixTree< T >::m_nItems, RadixTree< T >::m_pRoot, and RadixTree< T >::returnNode().

template<typename originalT , class Struct , Struct *(Struct::*)() FunctionPrev, Struct *(Struct::*)() FunctionNext, typename T1 , typename T2 >
bool operator== ( const Iterator< originalT, Struct, FunctionPrev, FunctionNext, T1 > &  x1,
const Iterator< originalT, Struct, FunctionPrev, FunctionNext, T2 > &  x2 
)

Comparison operator for the Iterator class

Parameters
[in]x1the first operand
[in]x2the second operand
Returns
true, if the two iterator point to the same object, false otherwise

Definition at line 326 of file Iterator.h.

References Iterator< originalT, Struct, FunctionPrev, FunctionNext, T >::m_Node.

Referenced by StaticString< LOG_LENGTH >::assign(), String::operator StringView(), IpAddress::operator+(), and Pedigree::IpAddress::operator=().

+ Here is the caller graph for this function:

template<typename originalT , class Struct , Struct *(Struct::*)() FunctionPrev, Struct *(Struct::*)() FunctionNext, typename K1 , typename T1 , typename K2 , typename T2 >
bool operator== ( const TreeIterator< originalT, Struct, FunctionPrev, FunctionNext, K1, T1 > &  x1,
const TreeIterator< originalT, Struct, FunctionPrev, FunctionNext, K2, T2 > &  x2 
)

Comparison operator for the TreeIterator class

Parameters
[in]x1the first operand
[in]x2the second operand
Returns
true, if the two iterator point to the same object, false otherwise

Definition at line 343 of file Iterator.h.

References TreeIterator< originalT, Struct, FunctionPrev, FunctionNext, K, T >::m_Node.

template<class T >
T & Vector< T >::operator[] ( size_t  index) const

The [] operator

Parameters
[in]indexthe index of the element that should be returned
Returns
the element at index index

Definition at line 249 of file Vector.h.

References Vector< T >::m_Count, Vector< T >::m_Data, and Vector< T >::m_Start.

EXPORTED_PUBLIC void* page_align ( void *  p)
template<typename T , size_t nodePoolSize>
T List< T, nodePoolSize >::popBack ( )
template<class T >
T Vector< T >::popBack ( )

Remove the element from the back and return it

Returns
the removed element

Definition at line 286 of file Vector.h.

References Vector< T >::m_Count, Vector< T >::m_Data, and Vector< T >::m_Start.

Referenced by ArmV7VirtualAddressSpace::allocateStack(), IoPortManager::freeIoPortList(), PhysicalMemoryManager::freeMemoryRegionList(), PosixSubsystem::parseShebang(), LockManager::released(), and X86VirtualAddressSpace::X86VirtualAddressSpace().

+ Here is the caller graph for this function:

template<typename T , size_t nodePoolSize>
T List< T, nodePoolSize >::popFront ( )
template<class T >
T Vector< T >::popFront ( )

Remove the element from the front and return it

Returns
the removed element

Definition at line 321 of file Vector.h.

References Vector< T >::m_Count, Vector< T >::m_Data, and Vector< T >::m_Start.

template<class T >
void RadixTree< T >::Node::prependKey ( const char *  cpKey)

Sets the node's key to the concatenation of cpKey and the current key.

Parameters
cpKeyKey to prepend to the current key.

Definition at line 812 of file RadixTree.h.

Referenced by RadixTree< T >::remove().

+ Here is the caller graph for this function:

template<typename T, size_t nodePoolSize>
void List< T, nodePoolSize >::pushBack ( const T &  value)
template<typename T, size_t nodePoolSize>
void List< T, nodePoolSize >::pushBack ( T &&  value)
template<class T>
void Vector< T >::pushBack ( const T &  value)
template<typename T, size_t nodePoolSize>
void List< T, nodePoolSize >::pushFront ( const T &  value)

Add a value to the front of the List

Parameters
[in]valuethe value that should be added

Definition at line 287 of file List.h.

References List< T, nodePoolSize >::m_Count, List< T, nodePoolSize >::m_First, List< T, nodePoolSize >::m_Last, _ListNode_t< T >::m_Next, List< T, nodePoolSize >::m_NodePool, _ListNode_t< T >::m_Previous, and _ListNode_t< T >::value.

Referenced by Uhci::irq(), and Ohci::irq().

+ Here is the caller graph for this function:

template<typename T, size_t nodePoolSize>
void List< T, nodePoolSize >::pushFront ( T &&  value)
template<class T>
void Vector< T >::pushFront ( const T &  value)

Add an element to the front of the Vector

Parameters
[in]valuethe element

Definition at line 293 of file Vector.h.

References Vector< T >::m_Count, Vector< T >::m_Data, Vector< T >::m_Start, and Vector< T >::reserve().

Referenced by RangeList< T, Reversed >::free(), Vector< T >::insert(), and PosixSubsystem::parseShebang().

+ Here is the caller graph for this function:

template<class T >
RadixTree< T >::RadixTree ( )

The default constructor, does nothing

Definition at line 300 of file RadixTree.h.

template<class T>
RadixTree< T >::RadixTree ( const RadixTree< T > &  x)

The copy-constructor

Parameters
[in]xthe reference object to copy

Definition at line 319 of file RadixTree.h.

References RadixTree< T >::clear(), RadixTree< T >::cloneNode(), RadixTree< T >::m_nItems, RadixTree< T >::m_pRoot, and RadixTree< T >::returnNode().

template<class T>
RadixTree< T >::RadixTree ( bool  bCaseSensitive)

Constructor that offers case sensitivity adjustment.

Definition at line 306 of file RadixTree.h.

template<class T >
void RadixTree< T >::remove ( const String key)
template<class T >
void RadixTree< T >::Node::removeChild ( Node pChild)

Removes a child (doesn't delete it)

Definition at line 736 of file RadixTree.h.

Referenced by RadixTree< T >::remove().

+ Here is the caller graph for this function:

template<class T >
void RadixTree< T >::Node::replaceChild ( Node pNodeOld,
Node pNodeNew 
)

Replaces a currently existing child.

Definition at line 723 of file RadixTree.h.

Referenced by RadixTree< T >::insert().

+ Here is the caller graph for this function:

template<class T >
void Vector< T >::reserve ( size_t  size,
bool  copy 
)

Reserve space for size elements

Parameters
[in]sizethe number of elements to reserve space for
[in]copyShould we copy the old contents over?

Definition at line 390 of file Vector.h.

Referenced by Vector< T >::assign(), Ext2Node::Ext2Node(), Vector< T >::insert(), Vector< T >::pushBack(), Vector< T >::pushFront(), and Vector< T >::Vector().

+ Here is the caller graph for this function:

template<class T >
void Vector< T >::reserve ( size_t  size,
bool  copy,
bool  free 
)
private

Internal reserve() function.

Parameters
[in]sizethe number of elements to reserve space for
[in]copyShould we copy the old contents over?
[in]freeshould we free the old buffer?

Definition at line 396 of file Vector.h.

References Vector< T >::m_Data, Vector< T >::m_ReserveFactor, Vector< T >::m_Size, Vector< T >::m_Start, and Vector< T >::size().

template<class T>
void Vector< T >::setAt ( size_t  idx,
const T &  value 
)

Set an element at the given index, if it exists.

Definition at line 330 of file Vector.h.

References Vector< T >::m_Count, Vector< T >::m_Data, and Vector< T >::m_Start.

template<class T >
void RadixTree< T >::Node::setKey ( const char *  cpKey,
size_t  lengthHint 
)

If you know the length of cpKey, this can be a small boost.

Definition at line 800 of file RadixTree.h.

template<typename T , size_t nodePoolSize>
size_t List< T, nodePoolSize >::size ( ) const

Get the number of elements we reserved space for

Returns
number of elements we reserved space for

Definition at line 222 of file List.h.

References List< T, nodePoolSize >::m_Count.

Referenced by PosixSubsystem::exit().

+ Here is the caller graph for this function:

template<class T >
size_t Vector< T >::size ( ) const

Get the number of elements that we have reserved space for

Returns
the number of elements that we have reserved space for

Definition at line 258 of file Vector.h.

References Vector< T >::m_Size.

Referenced by Vector< T >::assign(), RangeList< T, Reversed >::getRange(), PosixProcess::getUserId(), Ext2Filesystem::releaseInode(), and Vector< T >::reserve().

+ Here is the caller graph for this function:

template<class T >
void Vector< T >::swap ( Iterator  a,
Iterator  b 
)

Swap the two elements.

Definition at line 426 of file Vector.h.

References Vector< T >::begin(), and Vector< T >::end().

template<class T >
Vector< T >::Vector ( )

The default constructor, does nothing

Definition at line 217 of file Vector.h.

template<class T >
Vector< T >::Vector ( size_t  size)
explicit

Reserves space for size elements

Parameters
[in]sizethe number of elements

Definition at line 222 of file Vector.h.

References Vector< T >::reserve().

template<class T >
Vector< T >::Vector ( const Vector< T > &  x)

The copy-constructor

Parameters
[in]xthe reference object to copy

Definition at line 228 of file Vector.h.

References Vector< T >::assign().

template<typename T , size_t nodePoolSize>
List< T, nodePoolSize >::~List ( )

Destructor, deallocates memory

Definition at line 208 of file List.h.

References assert, and List< T, nodePoolSize >::clear().

template<class T >
RadixTree< T >::~RadixTree ( )

The destructor, deallocates memory

Definition at line 312 of file RadixTree.h.

References RadixTree< T >::clear(), RadixTree< T >::m_pRoot, and RadixTree< T >::returnNode().

template<class T >
Vector< T >::~Vector ( )

The destructor, deallocates memory

Definition at line 235 of file Vector.h.

References Vector< T >::m_Data.