CrystalSpace

Public API Reference

csList< T > Class Template Reference

A lightweight double-linked list template. More...

#include <csutil/list.h>

List of all members.

Public Member Functions

 csList (const csList< T > &other)
 Copy constructor.
 csList ()
 Default constructor.
void Delete (Iterator &it)
 Remove specific item by iterator.
void DeleteAll ()
 Empty an list.
T & Front () const
 Return first element of the list.
void InsertAfter (Iterator &it, const T &item)
 Insert an item after the item the iterator is set to.
void InsertBefore (Iterator &it, const T &item)
 Insert an item before the item the iterator is set to.
bool IsEmpty () const
T & Last () const
 Return last element of the list.
void MoveAfter (const Iterator &it, const Iterator &item)
 Move an item (as iterator) after the item the iterator is set to.
void MoveBefore (const Iterator &it, const Iterator &item)
 Move an item (as iterator) before the item the iterator is set to.
csListoperator= (const csList< T > &other)
 Assignment, shallow copy.
bool PopBack ()
 Deletes the last element of the list.
bool PopFront ()
 Deletes the first element of the list.
Iterator PushBack (const T &item)
 Add an item last in list. Copy T into the listdata.
Iterator PushFront (const T &item)
 Add an item first in list. Copy T into the listdata.
 ~csList ()
 Destructor.

Protected Member Functions

void Delete (csListElement *el)
 Remove specific item by explicit ref.

Friends

class Iterator

Classes

struct  csListElement
 Template which describes the data stored in the linked list For example a list of ints uses csListElement<int>. More...
class  Iterator
 Iterator for the list. More...


Detailed Description

template<class T>
class csList< T >

A lightweight double-linked list template.

Copies the elements into the list for storages. Assumes that type T supports copy construction.

Definition at line 34 of file list.h.


Constructor & Destructor Documentation

template<class T>
csList< T >::csList (  )  [inline]

Default constructor.

Definition at line 62 of file list.h.

template<class T>
csList< T >::csList ( const csList< T > &  other  )  [inline]

Copy constructor.

Deep copy of list.

Definition at line 269 of file list.h.

References csList< T >::csListElement::data, csList< T >::head, csList< T >::csListElement::next, and csList< T >::PushBack().

template<class T>
csList< T >::~csList (  )  [inline]

Destructor.

Definition at line 68 of file list.h.


Member Function Documentation

template<class T>
void csList< T >::Delete ( Iterator it  )  [inline]

Remove specific item by iterator.

Definition at line 424 of file list.h.

References CS_ASSERT, csList< T >::Delete(), csList< T >::Iterator::HasCurrent(), csList< T >::Iterator::IsReverse(), and csList< T >::Iterator::ptr.

template<class T>
void csList< T >::Delete ( csListElement el  )  [inline, protected]

template<class T>
void csList< T >::DeleteAll (  )  [inline]

Empty an list.

Delete all elements.

Definition at line 295 of file list.h.

References csList< T >::csListElement::next.

Referenced by csList< T >::operator=(), csPartialOrder< csStringID >::Solve(), and csList< iEventHandler * >::~csList().

template<class T>
T& csList< T >::Front (  )  const [inline]

Return first element of the list.

Definition at line 232 of file list.h.

template<class T>
void csList< T >::InsertAfter ( Iterator it,
const T &  item 
) [inline]

Insert an item after the item the iterator is set to.

Definition at line 334 of file list.h.

References CS_ASSERT, csList< T >::Iterator::HasCurrent(), csList< T >::csListElement::next, csList< T >::csListElement::prev, and csList< T >::Iterator::ptr.

template<class T>
void csList< T >::InsertBefore ( Iterator it,
const T &  item 
) [inline]

Insert an item before the item the iterator is set to.

Definition at line 349 of file list.h.

References CS_ASSERT, csList< T >::Iterator::HasCurrent(), csList< T >::csListElement::next, csList< T >::csListElement::prev, and csList< T >::Iterator::ptr.

template<class T>
T& csList< T >::Last (  )  const [inline]

Return last element of the list.

Definition at line 235 of file list.h.

template<class T>
void csList< T >::MoveAfter ( const Iterator it,
const Iterator item 
) [inline]

Move an item (as iterator) after the item the iterator is set to.

Definition at line 364 of file list.h.

References CS_ASSERT, csList< T >::Iterator::HasCurrent(), csList< T >::csListElement::next, csList< T >::csListElement::prev, and csList< T >::Iterator::ptr.

template<class T>
void csList< T >::MoveBefore ( const Iterator it,
const Iterator item 
) [inline]

Move an item (as iterator) before the item the iterator is set to.

Definition at line 394 of file list.h.

References CS_ASSERT, csList< T >::Iterator::HasCurrent(), csList< T >::csListElement::next, csList< T >::csListElement::prev, and csList< T >::Iterator::ptr.

template<class T>
csList< T > & csList< T >::operator= ( const csList< T > &  other  )  [inline]

Assignment, shallow copy.

Assignment, deep-copy.

Definition at line 281 of file list.h.

References csList< T >::csListElement::data, csList< T >::DeleteAll(), csList< T >::head, csList< T >::csListElement::next, and csList< T >::PushBack().

template<class T>
bool csList< T >::PopBack (  )  [inline]

Deletes the last element of the list.

Definition at line 248 of file list.h.

template<class T>
bool csList< T >::PopFront (  )  [inline]

Deletes the first element of the list.

Definition at line 239 of file list.h.

template<class T>
csList< T >::Iterator csList< T >::PushBack ( const T &  item  )  [inline]

Add an item last in list. Copy T into the listdata.

Add one item last in the list.

Definition at line 309 of file list.h.

References csList< T >::Iterator, and csList< T >::csListElement::next.

Referenced by csList< T >::csList(), csList< T >::operator=(), and csPartialOrder< csStringID >::Solve().

template<class T>
csList< T >::Iterator csList< T >::PushFront ( const T &  item  )  [inline]

Add an item first in list. Copy T into the listdata.

Add one item first in the list.

Definition at line 322 of file list.h.

References csList< T >::Iterator, and csList< T >::csListElement::prev.


The documentation for this class was generated from the following file:
Generated for Crystal Space 1.2.1 by doxygen 1.5.3