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) const
 Get the next member in linked list.
T * getPrev (void) const
 Get the previous member in double linked list.
bool is_next (void) const
 Test for next member in linked list.
bool is_prev (void) const
 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 (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 (const LinkedObject *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 () const
 Test if linked pointer is set/we are not at end of list.
 operator T * () const
 Return object we point to by casting.
bool operator! () const
 Test if linked list is empty/we are at end of list.
T * operator* () const
 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-> () const
 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) const
 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>
Examples:
linked.cpp.

Definition at line 1293 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 1303 of file linked.h.

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

Create a copy of an existing linked pointer.

Parameters:
pointerto copy from.

Definition at line 1310 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 1317 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 1327 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  ) 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 1401 of file linked.h.

template<class T>
T* ucommon::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 1409 of file linked.h.

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

Test for next member in linked list.

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

Definition at line 1428 of file linked.h.

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

Test for previous member in double linked list.

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

Definition at line 1435 of file linked.h.

template<class T>
ucommon::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 1442 of file linked.h.

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

Return object we point to by casting.

Returns:
object linked pointer references.

Definition at line 1382 of file linked.h.

template<class T>
bool ucommon::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 1449 of file linked.h.

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

Return object we currently point to.

Returns:
object linked pointer references.

Definition at line 1375 of file linked.h.

template<class T>
T* ucommon::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 1368 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 1340 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 1347 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 1354 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 1361 of file linked.h.

template<class T>
LinkedObject** ucommon::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 1456 of file linked.h.


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