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. More...
 
T * getPrev (void) const
 Get the previous member in double linked list. More...
 
bool is () const
 
bool is_next (void) const
 Test for next member in linked list. More...
 
bool is_prev (void) const
 Test for previous member in double linked list. More...
 
 linked_pointer (T *pointer)
 Create a linked pointer and assign to start of a list. More...
 
 linked_pointer (const linked_pointer &pointer)
 Create a copy of an existing linked pointer. More...
 
 linked_pointer (LinkedObject *pointer)
 Create a linked pointer assigned from a raw linked object pointer. More...
 
 linked_pointer (const LinkedObject *pointer)
 
 linked_pointer (OrderedIndex *index)
 Create a linked pointer to examine an ordered index. More...
 
 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. More...
 
 operator T * () const
 Return object we point to by casting. More...
 
bool operator! () const
 Test if linked list is empty/we are at end of list. More...
 
T * operator* () const
 Return object we currently point to. More...
 
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. More...
 
void operator= (T *pointer)
 Assign our typed iterative pointer from a matching typed object. More...
 
void operator= (linked_pointer &pointer)
 Assign our pointer from another pointer. More...
 
void operator= (OrderedIndex *index)
 Assign our pointer from the start of an ordered index. More...
 
void operator= (LinkedObject *pointer)
 Assign our pointer from a generic linked object pointer. More...
 
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. More...
 

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.nosp@m.@gnu.nosp@m.telep.nosp@m.hony.nosp@m..org
Examples:
linked.cpp.

Definition at line 1348 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 1358 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 1366 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 1374 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 1386 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 1471 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 1480 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 1502 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 1510 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 1518 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 1449 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 1526 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 1441 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 1433 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 1401 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 1409 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 1417 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 1425 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 1538 of file linked.h.


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