ucommon::LinkedList Class Reference

A double linked list object. More...

#include <linked.h>

Inheritance diagram for ucommon::LinkedList:

Inheritance graph
[legend]
Collaboration diagram for ucommon::LinkedList:

Collaboration graph
[legend]

Public Member Functions

void delist (void)
 Remove our object from the list it is currently part of.
void enlist (OrderedIndex *index)
 Attach our object to a linked list.
void enlistHead (OrderedIndex *index)
 Attach our object to the start of a linked list though an ordered index.
void enlistTail (OrderedIndex *index)
 Attach our object to the end of a linked list though an ordered index.
LinkedListgetNext (void)
 Get next node in the list when iterating.
LinkedListgetPrev (void)
 Get previous node in the list for reverse iteration.
virtual void insert (LinkedList *object)
 Insert object, method in derived object.
void insertHead (LinkedList *object)
 Insert object in front of our object.
void insertTail (LinkedList *object)
 Insert object behind our object.
bool is_head (void)
 Test if we are at the head of a list.
bool is_tail (void)
 Test if we are at the end of a list.
void operator *= (LinkedList *object)
 Insert object in list with our object.
void operator+= (LinkedList *object)
 Insert object behind our object.
void operator-= (LinkedList *object)
 Insert object in front of our object.

Protected Member Functions

 LinkedList ()
 Construct an unlinked object.
 LinkedList (OrderedIndex *index)
 Construct and add our object to an existing double linked list at end.
virtual ~LinkedList ()
 Delete linked list object.

Protected Attributes

LinkedListPrev
OrderedIndexRoot

Friends

class ObjectQueue

Detailed Description

A double linked list object.

This is used as a base class for objects that will be organized through ordered double linked lists which allow convenient insertion and deletion of list members anywhere in the list.

Author:
David Sugar <dyfet@gnutelephony.org>

Definition at line 769 of file linked.h.


Constructor & Destructor Documentation

ucommon::LinkedList::LinkedList ( OrderedIndex index  )  [protected]

Construct and add our object to an existing double linked list at end.

Parameters:
index of linked list we are listed in.

virtual ucommon::LinkedList::~LinkedList (  )  [protected, virtual]

Delete linked list object.

If it is a member of a list of objects, then the list is reformed around us.


Member Function Documentation

void ucommon::LinkedList::enlist ( OrderedIndex index  )  [virtual]

Attach our object to a linked list.

The default strategy is to add to tail.

Parameters:
index of linked list we are joining.

Reimplemented from ucommon::OrderedObject.

void ucommon::LinkedList::enlistHead ( OrderedIndex index  ) 

Attach our object to the start of a linked list though an ordered index.

If we are already attached to a list we are delisted first.

Parameters:
index of linked list we are joining.

Reimplemented from ucommon::OrderedObject.

void ucommon::LinkedList::enlistTail ( OrderedIndex index  ) 

Attach our object to the end of a linked list though an ordered index.

If we are already attached to a list we are delisted first.

Parameters:
index of linked list we are joining.

Reimplemented from ucommon::OrderedObject.

LinkedList* ucommon::LinkedList::getNext ( void   )  [inline]

Get next node in the list when iterating.

Returns:
next node in list.

Reimplemented from ucommon::OrderedObject.

Definition at line 846 of file linked.h.

LinkedList* ucommon::LinkedList::getPrev ( void   )  [inline]

Get previous node in the list for reverse iteration.

Returns:
previous node in list.

Definition at line 839 of file linked.h.

virtual void ucommon::LinkedList::insert ( LinkedList object  )  [virtual]

Insert object, method in derived object.

Parameters:
object to add to list.

void ucommon::LinkedList::insertHead ( LinkedList object  ) 

Insert object in front of our object.

Parameters:
object to add to list.

void ucommon::LinkedList::insertTail ( LinkedList object  ) 

Insert object behind our object.

Parameters:
object to add to list.

bool ucommon::LinkedList::is_head ( void   )  [inline]

Test if we are at the head of a list.

Returns:
true if we are the first node in a list.

Definition at line 825 of file linked.h.

bool ucommon::LinkedList::is_tail ( void   )  [inline]

Test if we are at the end of a list.

Returns:
true if we are the last node in a list.

Definition at line 832 of file linked.h.

void ucommon::LinkedList::operator *= ( LinkedList object  )  [inline]

Insert object in list with our object.

Parameters:
object to add to list.

Definition at line 885 of file linked.h.

void ucommon::LinkedList::operator+= ( LinkedList object  )  [inline]

Insert object behind our object.

Parameters:
object to add to list.

Definition at line 871 of file linked.h.

void ucommon::LinkedList::operator-= ( LinkedList object  )  [inline]

Insert object in front of our object.

Parameters:
object to add to list.

Definition at line 878 of file linked.h.


The documentation for this class was generated from the following file:
Generated on 14 Aug 2013 for UCommon by  doxygen 1.4.7