UCommon
Public Member Functions
ucommon::object_pointer< T, P > Class Template Reference

Typed smart pointer class. More...

#include <object.h>

Inherits P.

Public Member Functions

T * get (void) const
 Get pointer to object. More...
 
 object_pointer ()
 Create a pointer with no reference.
 
 object_pointer (T *object)
 Create a pointer with a reference to a heap object. More...
 
 operator bool () const
 See if pointer is set.
 
bool operator! () const
 See if pointer is not set.
 
T & operator() () const
 Reference object we are pointing to through function reference. More...
 
T * operator* () const
 Reference object we are pointing to through pointer indirection. More...
 
T * operator++ ()
 Iterate our pointer if we reference an array on the heap. More...
 
void operator-- ()
 Iterate our pointer if we reference an array on the heap. More...
 
T * operator-> () const
 Reference member of object we are pointing to. More...
 
void operator= (T *typed)
 Perform assignment operator to existing object. More...
 

Detailed Description

template<class T, class P = auto_object>
class ucommon::object_pointer< T, P >

Typed smart pointer class.

This is used to manage references to a specific typed object on the heap that is derived from the base Object class. This is most commonly used to manage references to reference counted heap objects so their heap usage can be auto-managed while there is active references to such objects. Pointers are usually created on the stack frame and used to reference an object during the life of a member function. They can be created in other objects that live on the heap and can be used to maintain active references so long as the object they are contained in remains in scope as well.

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

Definition at line 385 of file object.h.

Constructor & Destructor Documentation

template<class T , class P = auto_object>
ucommon::object_pointer< T, P >::object_pointer ( T *  object)
inline

Create a pointer with a reference to a heap object.

Parameters
objectwe are referencing.

Definition at line 397 of file object.h.

Member Function Documentation

template<class T , class P = auto_object>
T* ucommon::object_pointer< T, P >::get ( void  ) const
inline

Get pointer to object.

Returns
pointer or NULL if we are not referencing an object.

Definition at line 424 of file object.h.

template<class T , class P = auto_object>
T& ucommon::object_pointer< T, P >::operator() ( void  ) const
inline

Reference object we are pointing to through function reference.

Returns
object we are pointing to.

Definition at line 410 of file object.h.

template<class T , class P = auto_object>
T* ucommon::object_pointer< T, P >::operator* ( ) const
inline

Reference object we are pointing to through pointer indirection.

Returns
pointer to object we are pointing to.

Definition at line 403 of file object.h.

template<class T , class P = auto_object>
T* ucommon::object_pointer< T, P >::operator++ ( )
inline

Iterate our pointer if we reference an array on the heap.

Returns
next object in array.

Definition at line 431 of file object.h.

template<class T , class P = auto_object>
void ucommon::object_pointer< T, P >::operator-- ( )
inline

Iterate our pointer if we reference an array on the heap.

Returns
previous object in array.

Definition at line 438 of file object.h.

template<class T , class P = auto_object>
T* ucommon::object_pointer< T, P >::operator-> ( ) const
inline

Reference member of object we are pointing to.

Returns
reference to member of pointed object.

Definition at line 417 of file object.h.

template<class T , class P = auto_object>
void ucommon::object_pointer< T, P >::operator= ( T *  typed)
inline

Perform assignment operator to existing object.

Parameters
typedobject to assign.

Definition at line 445 of file object.h.


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