UCommon
Public Member Functions | Data Fields | Protected Member Functions
ucommon::object_value< T, O > Class Template Reference

Template for embedding a data structure into a reference counted object. More...

#include <object.h>

Inheritance diagram for ucommon::object_value< T, O >:
Inheritance graph
[legend]

Public Member Functions

 object_value ()
 Construct composite value object.
 object_value (T &existing)
 Construct composite value object and assign from existing data value.
 operator T & ()
 Retrieve data value by casting reference.
T & operator() ()
void operator() (T &data)
 Set data value by expression reference.
T & operator* ()
 Pointer reference to embedded data value.
void operator= (const T &data)
 Assign embedded data value.

Data Fields

value
 Embedded data value.

Protected Member Functions

void set (const T &object)
 Assign our value from a typed data object.

Detailed Description

template<typename T, class O = CountedObject>
class ucommon::object_value< T, O >

Template for embedding a data structure into a reference counted object.

This is a convenient means to create reference counted heap managed data structure. This template can be used for embedding data into other kinds of managed object classes in addition to reference counting. For example, it can be used to embed a data structure into a linked list, as shown in the linked_value template.

Author:
David Sugar <dyfet@gnutelephony.org>

Definition at line 316 of file object.h.


Constructor & Destructor Documentation

template<typename T , class O = CountedObject>
ucommon::object_value< T, O >::object_value ( T &  existing) [inline]

Construct composite value object and assign from existing data value.

Parameters:
existingtyped value to assign.

Definition at line 338 of file object.h.


Member Function Documentation

template<typename T , class O = CountedObject>
ucommon::object_value< T, O >::operator T & ( ) [inline]

Retrieve data value by casting reference.

Returns:
embedded value.

Definition at line 359 of file object.h.

template<typename T , class O = CountedObject>
void ucommon::object_value< T, O >::operator() ( T &  data) [inline]

Set data value by expression reference.

Parameters:
datavalue to assign.

Definition at line 369 of file object.h.

template<typename T , class O = CountedObject>
T& ucommon::object_value< T, O >::operator* ( ) [inline]

Pointer reference to embedded data value.

Returns:
embedded value.

Definition at line 345 of file object.h.

template<typename T , class O = CountedObject>
void ucommon::object_value< T, O >::operator= ( const T &  data) [inline]

Assign embedded data value.

Parameters:
datavalue to assign.

Reimplemented in ucommon::linked_value< T, O >, and ucommon::named_value< T, O >.

Definition at line 352 of file object.h.

template<typename T , class O = CountedObject>
void ucommon::object_value< T, O >::set ( const T &  object) [inline, protected]

Assign our value from a typed data object.

This is a helper method.

Parameters:
objectto assign our value from.

Definition at line 323 of file object.h.


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