Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | Related Pages

Pointer Class Template Reference

#include <pointer.h>

Inheritance diagram for Pointer:

Inheritance graph
[legend]
Collaboration diagram for Pointer:

Collaboration graph
[legend]
List of all members.

Detailed Description

template<class T>
class NeoEngine::Pointer< T >

Smart pointer template for reference counted classes Reference counted objects MUST be accessed through smart pointers at all times to make sure reference counting scheme operates correctly. Failure to do so will result in strange and unpredictable behaviour and crashes. The smart pointer class takes care of reference counting management at creation, destruction and assignement of pointers, and lets the reference counting scheme correctly free objects that are no longer referenced.

Author:
Mattias Jansson (mattias@realityrift.com)


Public Member Functions

 Pointer (T *pkObject=0)
 Pointer (const Pointer< T > &rkPointer)
 ~Pointer ()
 operator const bool () const
 operator T * ()
 operator const T * () const
T & operator * ()
const T & operator * () const
T * operator-> ()
const T * operator-> () const
bool operator! () const
Pointer< T > & operator= (const Pointer< T > &rkPointer)
Pointer< T > & operator= (T *pkObject)
bool operator== (const Pointer< T > &rkPointer) const
bool operator== (const T *pkObject) const
bool operator!= (const Pointer< T > &rkPointer) const
bool operator!= (const T *pkObject) const
bool operator< (const Pointer< T > &rkPointer) const
bool operator< (const T *pkObject) const

Private Attributes

T * m_pkObject


Constructor & Destructor Documentation

Pointer T *  pkObject = 0  )  [inline]
 

Assign pointer and increase reference for object if not null

Parameters:
pkObject Pointer to object

Pointer const Pointer< T > &  rkPointer  )  [inline]
 

Assign pointer and increment reference for object if not null

Parameters:
rkPointer Pointer object ref

~Pointer  )  [inline]
 

Decrease reference for object if not null


Member Function Documentation

operator const bool  )  const [inline]
 

Returns:
true if pointer is valid, false if null

operator T *  )  [inline]
 

Returns:
Typecast to pointer to class

operator const T *  )  const [inline]
 

Returns:
Typecast to pointer to class

T & operator *  )  [inline]
 

Returns:
Typecast to pointer to class and dereference

const T & operator *  )  const [inline]
 

Returns:
Typecast to pointer to class and dereference

T * operator->  )  [inline]
 

Returns:
Typecast to pointer to class and dereference

const T * operator->  )  const [inline]
 

Returns:
Typecast to pointer to class and dereference

bool operator!  )  const [inline]
 

Returns:
True if invalid pointer (null), false if valid

Pointer< T > & operator= const Pointer< T > &  rkPointer  )  [inline]
 

Assignment of pointer, decrease reference count for old object and increase for current object

Parameters:
rkPointer Smart pointer to copy from
Returns:
Pointer ref (this)

Pointer< T > & operator= T *  pkObject  )  [inline]
 

Assignment of pointer, decrease reference count for old object and increase for current object

Parameters:
pkObject Pointer to object
Returns:
Pointer ref (this)

bool operator== const Pointer< T > &  rkPointer  )  const [inline]
 

Parameters:
rkPointer Reference smart pointer object
Returns:
True if pointers are equal, false if not

bool operator== const T *  pkObject  )  const [inline]
 

Parameters:
pkObject Pointer to reference object
Returns:
True if pointers are equal, false if not

bool operator!= const Pointer< T > &  rkPointer  )  const [inline]
 

Parameters:
rkPointer Reference smart pointer object
Returns:
True if pointers are not equal, false if equal

bool operator!= const T *  pkObject  )  const [inline]
 

Parameters:
pkObject Pointer to reference object
Returns:
True if pointers are not equal, false if equal

bool operator< const Pointer< T > &  rkPointer  )  const [inline]
 

Parameters:
rkPointer Reference smart pointer object
Returns:
True if pointer address is less that reference , false if equal

bool operator< const T *  pkObject  )  const [inline]
 

Parameters:
pkObject Pointer to reference object
Returns:
True if pointer address is less that reference, false if equal


Member Data Documentation

T* m_pkObject [private]
 

Pointer to object


The documentation for this class was generated from the following file:
Generated on Wed Jan 21 14:21:13 2004 for NeoEngine by doxygen 1.3.5