UCommon
Public Member Functions
ucommon::linked_pointer< T > Class Template Reference

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

#include <linked.h>

Public Member Functions

T * getNext (void)
 Get the next member in linked list.
T * getPrev (void)
 Get the previous member in double linked list.
bool isNext (void)
 Test for next member in linked list.
bool isPrev (void)
 Test for previous member in double linked list.
 linked_pointer (T *pointer)
 Create a linked pointer and assign to start of a list.
 linked_pointer (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 next (void)
 Move (iterate) pointer to next member in linked list.
 operator bool ()
 Test if linked pointer is set/we are not at end of list.
 operator T * ()
 Return object we point to by casting.
bool operator! ()
 Test if linked list is empty/we are at end of list.
T * operator* ()
 Return object we currently point to.
void operator++ ()
 Move (iterate) pointer to next member in linked list.
void operator-- ()
 Move (iterate) pointer to previous member in double linked list.
T * operator-> ()
 Return member from typed object our pointer references.
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.
void prev (void)
 Move (iterate) pointer to previous member in double linked list.
LinkedObject ** root (void)
 Return pointer to our linked pointer to use as root node of a chain.

Detailed Description

template<class T>
class ucommon::linked_pointer< T >

A smart pointer template 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 1276 of file linked.h.


Constructor & Destructor Documentation

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

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

Parameters:
pointerto first member of a linked list.

Definition at line 1286 of file linked.h.

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

Create a copy of an existing linked pointer.

Parameters:
pointerto copy from.

Definition at line 1293 of file linked.h.

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

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

Parameters:
pointerto linked object.

Definition at line 1300 of file linked.h.

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

Create a linked pointer to examine an ordered index.

Parameters:
indexof linked objects to iterate through.

Definition at line 1307 of file linked.h.

Here is the call graph for this function:


Member Function Documentation

template<class T >
T* ucommon::linked_pointer< T >::getNext ( void  ) [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 1381 of file linked.h.

template<class T >
T* ucommon::linked_pointer< T >::getPrev ( void  ) [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 1389 of file linked.h.

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

Test for next member in linked list.

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

Definition at line 1408 of file linked.h.

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

Test for previous member in double linked list.

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

Definition at line 1415 of file linked.h.

template<class T >
ucommon::linked_pointer< T >::operator bool ( ) [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 1422 of file linked.h.

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

Return object we point to by casting.

Returns:
object linked pointer references.

Definition at line 1362 of file linked.h.

template<class T >
bool ucommon::linked_pointer< T >::operator! ( ) [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 1429 of file linked.h.

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

Return object we currently point to.

Returns:
object linked pointer references.

Definition at line 1355 of file linked.h.

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

Return member from typed object our pointer references.

Returns:
evaluated member of object we point to.

Definition at line 1348 of file linked.h.

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

Assign our typed iterative pointer from a matching typed object.

Parameters:
pointerto typed object.

Definition at line 1320 of file linked.h.

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

Assign our pointer from another pointer.

Parameters:
pointerto assign from.

Definition at line 1327 of file linked.h.

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

Assign our pointer from the start of an ordered index.

Parameters:
indexto assign pointer from.

Definition at line 1334 of file linked.h.

Here is the call graph for this function:

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

Assign our pointer from a generic linked object pointer.

Parameters:
pointerof linked list.

Definition at line 1341 of file linked.h.

template<class T >
LinkedObject** ucommon::linked_pointer< T >::root ( void  ) [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 1436 of file linked.h.


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