ucommon  7.0.0
About: GNU uCommon C++ is a portable and optimized class framework for writing C++ applications that need to use threads and support concurrent synchronization, and that use sockets, XML parsing, object serialization, thread-optimized string and data structure classes, etc..
  Fossies Dox: ucommon-7.0.0.tar.gz  ("inofficial" and yet experimental doxygen-generated source code documentation)  

ucommon::linked_pointer< T > Class Template Reference

#include <linked.h>

Public Member Functions

 linked_pointer (T *pointer)
 
 linked_pointer (const linked_pointer &pointer)
 
 linked_pointer (LinkedObject *pointer)
 
 linked_pointer (const LinkedObject *pointer)
 
 linked_pointer (OrderedIndex *index)
 
 linked_pointer ()
 
void operator= (T *pointer)
 
void operator= (linked_pointer &pointer)
 
void operator= (OrderedIndex *index)
 
void operator= (LinkedObject *pointer)
 
T * operator-> () const
 
T * operator* () const
 
 operator T* () const
 
void prev (void)
 
void next (void)
 
T * getNext (void) const
 
T * getPrev (void) const
 
void operator++ ()
 
void operator-- ()
 
bool is_next (void) const
 
bool is_prev (void) const
 
 operator bool () const
 
bool operator! () const
 
bool is () const
 
LinkedObject ** root (void) const
 

Private Attributes

T * ptr
 

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

Definition at line 991 of file linked.h.

Constructor & Destructor Documentation

◆ linked_pointer() [1/6]

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 1001 of file linked.h.

References ucommon::linked_pointer< T >::ptr.

◆ linked_pointer() [2/6]

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 1009 of file linked.h.

References ucommon::linked_pointer< T >::ptr.

◆ linked_pointer() [3/6]

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 1017 of file linked.h.

References ucommon::linked_pointer< T >::ptr.

◆ linked_pointer() [4/6]

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

Definition at line 1021 of file linked.h.

References ucommon::linked_pointer< T >::ptr.

◆ linked_pointer() [5/6]

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 1029 of file linked.h.

References ucommon::OrderedIndex::begin(), and ucommon::linked_pointer< T >::ptr.

◆ linked_pointer() [6/6]

template<class T>
ucommon::linked_pointer< T >::linked_pointer ( )
inline

Create a linked pointer not attached to a list.

Definition at line 1036 of file linked.h.

References ucommon::linked_pointer< T >::ptr.

Member Function Documentation

◆ getNext()

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 1114 of file linked.h.

References ucommon::linked_pointer< T >::ptr.

◆ getPrev()

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 1123 of file linked.h.

References ucommon::linked_pointer< T >::ptr.

◆ is()

template<class T>
bool ucommon::linked_pointer< T >::is ( ) const
inline

Definition at line 1173 of file linked.h.

References ucommon::linked_pointer< T >::ptr.

◆ is_next()

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 1145 of file linked.h.

References ucommon::linked_pointer< T >::ptr.

◆ is_prev()

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 1153 of file linked.h.

References ucommon::linked_pointer< T >::ptr.

◆ next()

◆ operator bool()

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 1161 of file linked.h.

References ucommon::linked_pointer< T >::ptr.

◆ operator T*()

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 1092 of file linked.h.

References ucommon::linked_pointer< T >::ptr.

◆ operator!()

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

References ucommon::linked_pointer< T >::ptr.

◆ operator*()

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 1084 of file linked.h.

References ucommon::linked_pointer< T >::ptr.

◆ operator++()

template<class T>
void ucommon::linked_pointer< T >::operator++ ( void  )
inline

Move (iterate) pointer to next member in linked list.

Definition at line 1130 of file linked.h.

References ucommon::linked_pointer< T >::ptr.

◆ operator--()

template<class T>
void ucommon::linked_pointer< T >::operator-- ( void  )
inline

Move (iterate) pointer to previous member in double linked list.

Definition at line 1137 of file linked.h.

References ucommon::linked_pointer< T >::ptr.

◆ operator->()

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 1076 of file linked.h.

References ucommon::linked_pointer< T >::ptr.

◆ operator=() [1/4]

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 1052 of file linked.h.

References ucommon::linked_pointer< T >::ptr.

◆ operator=() [2/4]

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 1068 of file linked.h.

References ucommon::linked_pointer< T >::ptr.

◆ operator=() [3/4]

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 1060 of file linked.h.

References ucommon::OrderedIndex::begin(), and ucommon::linked_pointer< T >::ptr.

◆ operator=() [4/4]

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 1044 of file linked.h.

References ucommon::linked_pointer< T >::ptr.

◆ prev()

template<class T>
void ucommon::linked_pointer< T >::prev ( void  )
inline

Move (iterate) pointer to previous member in double linked list.

Definition at line 1099 of file linked.h.

References ucommon::linked_pointer< T >::ptr.

◆ root()

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 1181 of file linked.h.

References ucommon::linked_pointer< T >::ptr.

Member Data Documentation

◆ ptr

template<class T>
T* ucommon::linked_pointer< T >::ptr
private

Definition at line 994 of file linked.h.

Referenced by ucommon::linked_pointer< T >::getNext(), ucommon::linked_pointer< T >::getPrev(), ucommon::linked_pointer< sockaddr_struct >::in(), ucommon::linked_pointer< T >::is(), ucommon::linked_pointer< T >::is_next(), ucommon::linked_pointer< T >::is_prev(), ucommon::linked_pointer< T >::linked_pointer(), ucommon::linked_pointer< sockaddr_struct >::linked_pointer(), ucommon::linked_pointer< T >::next(), ucommon::linked_pointer< sockaddr_struct >::next(), ucommon::linked_pointer< T >::operator bool(), ucommon::linked_pointer< sockaddr_struct >::operator bool(), ucommon::linked_pointer< sockaddr_struct >::operator const struct sockaddr *(), ucommon::linked_pointer< sockaddr_struct >::operator const struct sockaddr_in *(), ucommon::linked_pointer< T >::operator T*(), ucommon::linked_pointer< T >::operator!(), ucommon::linked_pointer< sockaddr_struct >::operator!(), ucommon::linked_pointer< sockaddr_struct >::operator()(), ucommon::linked_pointer< T >::operator*(), ucommon::linked_pointer< sockaddr_struct >::operator*(), ucommon::linked_pointer< T >::operator++(), ucommon::linked_pointer< T >::operator--(), ucommon::linked_pointer< T >::operator->(), ucommon::linked_pointer< sockaddr_struct >::operator->(), ucommon::linked_pointer< T >::operator=(), ucommon::linked_pointer< sockaddr_struct >::operator=(), ucommon::linked_pointer< T >::prev(), ucommon::linked_pointer< T >::root(), and ucommon::linked_pointer< sockaddr_struct >::set().


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