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 ()
 Create a linked pointer not attached to a list.
 linked_pointer (OrderedIndex *index)
 Create a linked pointer to examine an ordered index.
 linked_pointer (const LinkedObject *pointer)
 linked_pointer (LinkedObject *pointer)
 Create a linked pointer assigned from a raw linked object pointer.
 linked_pointer (const linked_pointer &pointer)
 Create a copy of an existing linked pointer.
 linked_pointer (T *pointer)
 Create a linked pointer and assign to start of 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= (LinkedObject *pointer)
 Assign our pointer from a generic linked object pointer.
void operator= (OrderedIndex *index)
 Assign our pointer from the start of an ordered index.
void operator= (linked_pointer &pointer)
 Assign our pointer from another pointer.
void operator= (T *pointer)
 Assign our typed iterative pointer from a matching typed object.
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>

Definition at line 1288 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:
pointer to first member of a linked list.

Definition at line 1298 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:
pointer to copy from.

Definition at line 1305 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:
pointer to linked object.

Definition at line 1312 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:
index of linked objects to iterate through.

Definition at line 1322 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 1396 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 1404 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 1423 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 1430 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 1437 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 1377 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 1444 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 1370 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 1363 of file linked.h.

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

Assign our pointer from a generic linked object pointer.

Parameters:
pointer of linked list.

Definition at line 1356 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:
index to assign pointer from.

Definition at line 1349 of file linked.h.

Here is the call graph for this function:

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

Assign our pointer from another pointer.

Parameters:
pointer to assign from.

Definition at line 1342 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:
pointer to typed object.

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


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

Generated on 30 Jul 2013 for UCommon by  doxygen 1.6.1