ucc::linked_pointer< T > Class Template Reference

A templated smart pointer for iterating linked lists. More...

#include <linked.h>


Public Member Functions

 linked_pointer (T *pointer)
 Create a linked pointer and assign to start of a list.
 linked_pointer (const linked_pointer &pointer)
 Create a copy of an existing linked pointer.
 linked_pointer (LinkedObject *pointer)
 Create a linked pointer assigned from a raw linked object pointer.
 linked_pointer (OrderedIndex *index)
 Create a linked pointer to examine an ordered index.
 linked_pointer ()
 Create a linked pointer not attached to a list.
void operator= (T *pointer)
 Assign our typed iterative pointer from a matching typed object.
void operator= (linked_pointer &pointer)
 Assign our pointer from another pointer.
void operator= (OrderedIndex *index)
 Assign our pointer from the start of an ordered index.
void operator= (LinkedObject *pointer)
 Assign our pointer from a generic linked object pointer.
T * operator-> () const
 Return member from typed object our pointer references.
T * operator* () const
 Return object we currently point to.
 operator T * () const
 Return object we point to by casting.
void prev (void)
 Move (iterate) pointer to previous member in double linked list.
void next (void)
 Move (iterate) pointer to next member in linked list.
T * getNext (void) const
 Get the next member in linked list.
T * getPrev (void) const
 Get the previous member in double linked list.
void operator++ ()
 Move (iterate) pointer to next member in linked list.
void operator-- ()
 Move (iterate) pointer to previous member in double linked list.
bool isNext (void) const
 Test for next member in linked list.
bool isPrev (void) const
 Test for previous member in double linked list.
 operator bool () const
 Test if linked pointer is set/we are not at end of list.
bool operator! () const
 Test if linked list is empty/we are at end of list.
LinkedObject ** root (void) const
 Return pointer to our linked pointer to use as root node of a chain.


Detailed Description

template<class T>
class ucc::linked_pointer< T >

A templated smart pointer for iterating linked lists.

This class allows one to access a list of single or double linked objects and iterate through each member of a list.

Author:
David Sugar <dyfet@gnutelephony.org>

Definition at line 975 of file linked.h.


Constructor & Destructor Documentation

template<class T >
ucc::linked_pointer< T >::linked_pointer ( T *  pointer  )  [inline]

Create a linked pointer and assign to start of a list.

Parameters:
pointer to first member of a linked list.

Definition at line 985 of file linked.h.

template<class T >
ucc::linked_pointer< T >::linked_pointer ( const linked_pointer< T > &  pointer  )  [inline]

Create a copy of an existing linked pointer.

Parameters:
pointer to copy from.

Definition at line 992 of file linked.h.

template<class T >
ucc::linked_pointer< T >::linked_pointer ( LinkedObject pointer  )  [inline]

Create a linked pointer assigned from a raw linked object pointer.

Parameters:
pointer to linked object.

Definition at line 999 of file linked.h.

template<class T >
ucc::linked_pointer< T >::linked_pointer ( OrderedIndex index  )  [inline]

Create a linked pointer to examine an ordered index.

Parameters:
index of linked objects to iterate through.

Definition at line 1006 of file linked.h.

Here is the call graph for this function:


Member Function Documentation

template<class T >
T* ucc::linked_pointer< T >::getNext ( void   )  const [inline]

Get the next member in linked list.

Do not change who we point to.

Returns:
next member in list or NULL if end of list.

Definition at line 1080 of file linked.h.

template<class T >
T* ucc::linked_pointer< T >::getPrev ( void   )  const [inline]

Get the previous member in double linked list.

Do not change who we point to.

Returns:
previous member in list or NULL if start of list.

Definition at line 1088 of file linked.h.

template<class T >
bool ucc::linked_pointer< T >::isNext ( void   )  const [inline]

Test for next member in linked list.

Returns:
true if there is more members after current one.

Definition at line 1107 of file linked.h.

template<class T >
bool ucc::linked_pointer< T >::isPrev ( void   )  const [inline]

Test for previous member in double linked list.

Returns:
true if there is more members before current one.

Definition at line 1114 of file linked.h.

template<class T >
ucc::linked_pointer< T >::operator bool (  )  const [inline]

Test if linked pointer is set/we are not at end of list.

Returns:
true if we are not at end of list.

Definition at line 1121 of file linked.h.

template<class T >
ucc::linked_pointer< T >::operator T * (  )  const [inline]

Return object we point to by casting.

Returns:
object linked pointer references.

Definition at line 1061 of file linked.h.

template<class T >
bool ucc::linked_pointer< T >::operator! (  )  const [inline]

Test if linked list is empty/we are at end of list.

Returns:
true if we are at end of list.

Definition at line 1128 of file linked.h.

template<class T >
T* ucc::linked_pointer< T >::operator* (  )  const [inline]

Return object we currently point to.

Returns:
object linked pointer references.

Definition at line 1054 of file linked.h.

template<class T >
T* ucc::linked_pointer< T >::operator-> (  )  const [inline]

Return member from typed object our pointer references.

Returns:
evaluated member of object we point to.

Definition at line 1047 of file linked.h.

template<class T >
void ucc::linked_pointer< T >::operator= ( LinkedObject pointer  )  [inline]

Assign our pointer from a generic linked object pointer.

Parameters:
pointer of linked list.

Definition at line 1040 of file linked.h.

template<class T >
void ucc::linked_pointer< T >::operator= ( OrderedIndex index  )  [inline]

Assign our pointer from the start of an ordered index.

Parameters:
index to assign pointer from.

Definition at line 1033 of file linked.h.

Here is the call graph for this function:

template<class T >
void ucc::linked_pointer< T >::operator= ( linked_pointer< T > &  pointer  )  [inline]

Assign our pointer from another pointer.

Parameters:
pointer to assign from.

Definition at line 1026 of file linked.h.

template<class T >
void ucc::linked_pointer< T >::operator= ( T *  pointer  )  [inline]

Assign our typed iterative pointer from a matching typed object.

Parameters:
pointer to typed object.

Definition at line 1019 of file linked.h.

template<class T >
LinkedObject** ucc::linked_pointer< T >::root ( void   )  const [inline]

Return pointer to our linked pointer to use as root node of a chain.

Returns:
our object pointer as a root index.

Definition at line 1135 of file linked.h.


The documentation for this class was generated from the following file:

Generated on Tue Jul 28 21:43:28 2009 for UCommon by  doxygen 1.5.9