UCommon
ucommon::linked_value< T, O > Class Template Reference

Template value class to embed data structure into a linked list. More...

#include <linked.h>

Inheritance diagram for ucommon::linked_value< T, O >:
Collaboration diagram for ucommon::linked_value< T, O >:

Public Member Functions

 linked_value ()
 Create embedded value object unlinked.
 
 linked_value (LinkedObject **root)
 Construct embedded object on a linked list.
 
 linked_value (LinkedObject **root, const T &typed_value)
 Assign embedded value from related type and link to list.
 
 linked_value (OrderedIndex *index)
 Construct embedded object on an ordered list.
 
 linked_value (OrderedIndex *index, const T &typed_value)
 Assign embedded value from related type and add to list.
 
 operator T& ()
 
void operator() (const T data)
 
T & operator* ()
 
linked_valueoperator= (const T &typed_value)
 Assign embedded value from related type.
 
void set (const T &typed_value)
 
- Public Member Functions inherited from ucommon::LinkedObject
void delist (LinkedObject **root)
 Locate and remove ourselves from a list of objects.
 
void enlist (LinkedObject **root)
 Add our object to an existing linked list through a pointer.
 
LinkedObjectgetNext (void) const
 Get next effective object when iterating.
 
bool is_member (LinkedObject *list) const
 Search to see if we are a member of a specific list.
 
virtual void release (void)
 Release list, mark as no longer linked.
 
virtual void retain (void)
 Retain by marking as self referenced list.
 
- Public Member Functions inherited from ucommon::ObjectProtocol
ObjectProtocolcopy (void)
 Retain (increase retention of) object when copying.
 
void operator++ (void)
 Increase retention operator.
 
void operator-- (void)
 Decrease retention operator.
 
virtual ~ObjectProtocol ()
 Required virtual destructor.
 

Data Fields

value
 

Protected Member Functions

 linked_value (const linked_value &)
 
linked_valueoperator= (const linked_value &)
 
- Protected Member Functions inherited from ucommon::LinkedObject
 LinkedObject ()
 Construct base class unattached to anyone.
 
 LinkedObject (const LinkedObject &from)
 
 LinkedObject (LinkedObject **root)
 Construct base class attached to a chain of objects.
 

Additional Inherited Members

- Static Public Member Functions inherited from ucommon::LinkedObject
static unsigned count (const LinkedObject *root)
 Count the number of linked objects in a list.
 
static LinkedObjectgetIndexed (LinkedObject *root, unsigned index)
 Get member by index.
 
static void purge (LinkedObject *root)
 Release all objects from a list.
 
- Protected Attributes inherited from ucommon::LinkedObject
LinkedObjectNext
 

Detailed Description

template<typename T, class O = LinkedObject>
class ucommon::linked_value< T, O >

Template value class to embed data structure into a linked list.

This is used to form a class which can be linked together using either an ordered index or simple linked pointer chain and that contains a member value object. Most of the core logic for this template is found in and derived from the object_value template.

Author
David Sugar dyfet.nosp@m.@gnu.nosp@m.telep.nosp@m.hony.nosp@m..org
Examples
linked.cpp.

Definition at line 909 of file linked.h.

Constructor & Destructor Documentation

◆ linked_value() [1/5]

template<typename T , class O = LinkedObject>
ucommon::linked_value< T, O >::linked_value ( )
inline

Create embedded value object unlinked.

Definition at line 920 of file linked.h.

◆ linked_value() [2/5]

template<typename T , class O = LinkedObject>
ucommon::linked_value< T, O >::linked_value ( LinkedObject ** root)
inline

Construct embedded object on a linked list.

Parameters
rootnode or pointer for list.

Definition at line 926 of file linked.h.

Here is the call graph for this function:

◆ linked_value() [3/5]

template<typename T , class O = LinkedObject>
ucommon::linked_value< T, O >::linked_value ( OrderedIndex * index)
inline

Construct embedded object on an ordered list.

Parameters
indexpointer for the ordered list.

Definition at line 934 of file linked.h.

◆ linked_value() [4/5]

template<typename T , class O = LinkedObject>
ucommon::linked_value< T, O >::linked_value ( LinkedObject ** root,
const T & typed_value )
inline

Assign embedded value from related type and link to list.

Parameters
rootnode or pointer for list.
typed_valueto assign.

Definition at line 943 of file linked.h.

Here is the call graph for this function:

◆ linked_value() [5/5]

template<typename T , class O = LinkedObject>
ucommon::linked_value< T, O >::linked_value ( OrderedIndex * index,
const T & typed_value )
inline

Assign embedded value from related type and add to list.

Parameters
indexto list our object on.
typed_valueto assign.

Definition at line 953 of file linked.h.

Member Function Documentation

◆ operator T&()

template<typename T , class O = LinkedObject>
ucommon::linked_value< T, O >::operator T& ( )
inline

Definition at line 975 of file linked.h.

◆ operator()()

template<typename T , class O = LinkedObject>
void ucommon::linked_value< T, O >::operator() ( const T data)
inline

Definition at line 979 of file linked.h.

◆ operator*()

template<typename T , class O = LinkedObject>
T & ucommon::linked_value< T, O >::operator* ( )
inline

Definition at line 971 of file linked.h.

◆ operator=()

template<typename T , class O = LinkedObject>
linked_value & ucommon::linked_value< T, O >::operator= ( const T & typed_value)
inline

Assign embedded value from related type.

Parameters
typed_valueto assign.

Definition at line 966 of file linked.h.

◆ set()

template<typename T , class O = LinkedObject>
void ucommon::linked_value< T, O >::set ( const T & typed_value)
inline

Definition at line 958 of file linked.h.

Field Documentation

◆ value

template<typename T , class O = LinkedObject>
T ucommon::linked_value< T, O >::value

Definition at line 915 of file linked.h.


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