AI_Ref< TYPE > Class Template Reference
[Utilities]
#include <AI_Ref.h>
Inheritance diagram for AI_Ref< TYPE >:
Detailed Description
template<class TYPE>
class AI_Ref< TYPE >
AI_Ref implements safe pointers to AI_Referenced derived objects which will invalidate themselves when the target object goes away. nAutoRef works similarly to AI_Ref but is also NOH aware and as such takes pointers to nRoot derived objects. Usage of AI_Ref/nAutoRef helps you avoid dangling pointers and also protects against dereferencing a null pointer.Operations:
Assigning ptr to ref: ref=ptr OR ref.set(ptr)
Invalidating: ref=0 OR ref.invalidate() OR ref.set(0)
Checking if pointer is valid (non-null): ref.isvalid()
- Version:
- 2.0 AI_Ref was ripped from The Nebula Device and renamed to AI_Ref. Now it is possible to use the class inside and outside Nebula projects.
- 06-May-04 floh added more operator, so that AI_Ref's can be used more like normal C++ pointers
(C) 1999 RadonLabs GmbH
Public Member Functions | |
AI_Ref () | |
default constructor | |
AI_Ref (TYPE *o) | |
constructor with target object | |
AI_Ref (const AI_Ref &) | |
copy constructor | |
~AI_Ref () | |
destructor | |
AI_Ref & | operator= (TYPE *obj) |
assign TYPE pointer | |
AI_Ref & | operator= (const AI_Ref &rhs) |
assign AI_Ref object | |
bool | operator== (const AI_Ref &rhs) |
equality operator | |
bool | operator!= (const AI_Ref< TYPE > &rhs) |
inequality operator | |
bool | operator== (TYPE *obj) |
shortcut equality operator | |
bool | operator!= (TYPE *obj) |
shortcut inequality operator | |
TYPE * | operator-> () const |
override -> operator | |
TYPE & | operator * () const |
dereference operator | |
operator TYPE * () const | |
cast operator | |
bool | isvalid () const |
check if target object exists | |
void | invalidate () |
invalidate the ref | |
void | set (TYPE *obj) |
set target object | |
TYPE * | get () const |
get target object (safe) | |
TYPE * | get_unsafe () const |
get target object (unsafe, may return 0) | |
Protected Attributes | |
TYPE * | targetObject |
Constructor & Destructor Documentation
copy constructor
Member Function Documentation
assign TYPE pointer
template<class TYPE>
AI_Ref< TYPE > & AI_Ref< TYPE >::operator= | ( | const AI_Ref< TYPE > & | rhs | ) | [inline] |
assign AI_Ref object
Copy operator.
equality operator
Equality operator.
inequality operator
Inequality operator.
template<class TYPE>
bool AI_Ref< TYPE >::operator== | ( | TYPE * | obj | ) | [inline] |
shortcut equality operator
Equality operator.
template<class TYPE>
bool AI_Ref< TYPE >::operator!= | ( | TYPE * | obj | ) | [inline] |
shortcut inequality operator
Inequality operator.
template<class TYPE>
TYPE * AI_Ref< TYPE >::operator-> | ( | ) | const [inline] |
override -> operator
template<class TYPE>
TYPE & AI_Ref< TYPE >::operator * | ( | ) | const [inline] |
dereference operator
template<class TYPE>
AI_Ref< TYPE >::operator TYPE * | ( | ) | const [inline] |
cast operator
template<class TYPE>
bool AI_Ref< TYPE >::isvalid | ( | void | ) | const [inline] |
check if target object exists
template<class TYPE>
void AI_Ref< TYPE >::invalidate | ( | ) | [inline] |
invalidate the ref
template<class TYPE>
void AI_Ref< TYPE >::set | ( | TYPE * | obj | ) | [inline] |
set target object
template<class TYPE>
TYPE * AI_Ref< TYPE >::get | ( | ) | const [inline] |
get target object (safe)
template<class TYPE>
TYPE * AI_Ref< TYPE >::get_unsafe | ( | ) | const [inline] |
get target object (unsafe, may return 0)
Member Data Documentation
template<class TYPE>
TYPE* AI_Ref< TYPE >::targetObject [protected] |
The documentation for this class was generated from the following file: