Drag[en]gine Game Engine  1.21
deObjectReference Class Reference

Object reference holder. More...

#include <deObjectReference.h>

Inheritance diagram for deObjectReference:
deAnimationReference deAnimatorInstanceReference deAnimatorReference deAnimatorRuleReference deArchiveReference deBillboardReference deCameraReference deCanvasCanvasViewReference deCanvasImageReference deCanvasPaintReference deCanvasReference deCanvasRenderWorldReference deCanvasTextReference deCanvasVideoPlayerReference deCanvasViewReference deCaptureCanvasReference deColliderCollisionTestReference deColliderReference deComponentReference deConnectionReference deDebugDrawerReference deDecalReference deDynamicSkinReference deEffectReference deEnvMapProbeReference deFontReference deForceFieldReference deImageReference deLanguagePackReference deLightReference deLoggerReference deLumimeterReference deMicrophoneReference deModelReference deNavigationBlockerReference deNavigationSpaceReference deNavigatorReference deNetworkMessageReference deNetworkStateReference deNetworkValueReference deOcclusionMeshReference deParticleEmitterInstanceReference deParticleEmitterReference dePropFieldReference deRenderWindowReference deResourceReference deRigReference deServerReference deSkinReference deSkyInstanceReference deSkyReference deSoundDecoderReference deSoundLevelMeterReference deSoundReference deSpeakerReference deSynthesizerInstanceReference deSynthesizerReference deTouchSensorReference deVFSContainerReference deVideoAudioDecoderReference deVideoDecoderReference deVideoPlayerReference deVideoReference deVirtualFileSystemReference deWorldReference decBaseFileReaderReference decBaseFileWriterReference decMemoryFileReference decXmlDocumentReference decXmlElementReference

Public Member Functions

Constructors and Destructors
 deObjectReference ()
 Create empty object reference holder. More...
 
 deObjectReference (deObject *object)
 Create object reference holder with object. More...
 
 deObjectReference (const deObjectReference &reference)
 Create object reference holder with object from another holder. More...
 
 ~deObjectReference ()
 Clean up object reference holder. More...
 
Management
void TakeOver (deObject *object)
 Set object without adding reference. More...
 
bool operator! () const
 Object is NULL. More...
 
 operator bool () const
 Test if object is not NULL. More...
 
 operator deObject * () const
 Pointer to object. More...
 
 operator deObject & () const
 deObjectReference to object. More...
 
deObjectoperator-> () const
 Pointer to object. More...
 
deObjectReferenceoperator= (deObject *object)
 Store object. More...
 
deObjectReferenceoperator= (const deObjectReference &reference)
 Store object. More...
 
bool operator== (deObject *object) const
 Test if object is held by this holder. More...
 
bool operator== (const deObjectReference &reference) const
 Test if object is held by this holder. More...
 
bool operator!= (deObject *object) const
 Test if object is not held by this holder. More...
 
bool operator!= (const deObjectReference &reference) const
 Test if object is not held by this holder. More...
 

Detailed Description

Object reference holder.

Safe way to hold an object reference with correct reference handling. Storing NULL is allowed. Initial value is NULL.

Note
This class is designed to be used as stack or member object. Do not use it as pointer and memory allocate it. For this reason the destructor is on purpose not virtual.

Constructor & Destructor Documentation

◆ deObjectReference() [1/3]

deObjectReference::deObjectReference ( )

Create empty object reference holder.

◆ deObjectReference() [2/3]

deObjectReference::deObjectReference ( deObject object)

Create object reference holder with object.

deObjectReference is added if object is not NULL.

◆ deObjectReference() [3/3]

deObjectReference::deObjectReference ( const deObjectReference reference)

Create object reference holder with object from another holder.

deObjectReference is added if object in holder is not NULL.

◆ ~deObjectReference()

deObjectReference::~deObjectReference ( )

Clean up object reference holder.

Releases reference if object is not NULL.

Member Function Documentation

◆ operator bool()

deObjectReference::operator bool ( ) const

Test if object is not NULL.

◆ operator deObject &()

deObjectReference::operator deObject & ( ) const

deObjectReference to object.

Exceptions
deeNullPointerif object is NULL.

◆ operator deObject *()

deObjectReference::operator deObject * ( ) const
inline

Pointer to object.

◆ operator!()

bool deObjectReference::operator! ( ) const

Object is NULL.

◆ operator!=() [1/2]

bool deObjectReference::operator!= ( const deObjectReference reference) const
inline

Test if object is not held by this holder.

◆ operator!=() [2/2]

bool deObjectReference::operator!= ( deObject object) const
inline

Test if object is not held by this holder.

◆ operator->()

deObject* deObjectReference::operator-> ( ) const

Pointer to object.

Exceptions
deeNullPointerif object is NULL.

◆ operator=() [1/2]

deObjectReference& deObjectReference::operator= ( const deObjectReference reference)

Store object.

If an object is already held its reference is release and the new object stored. If the new object is not NULL a reference is added.

◆ operator=() [2/2]

deObjectReference& deObjectReference::operator= ( deObject object)

Store object.

If an object is already held its reference is release and the new object stored. If the new object is not NULL a reference is added.

◆ operator==() [1/2]

bool deObjectReference::operator== ( const deObjectReference reference) const
inline

Test if object is held by this holder.

◆ operator==() [2/2]

bool deObjectReference::operator== ( deObject object) const
inline

Test if object is held by this holder.

◆ TakeOver()

void deObjectReference::TakeOver ( deObject object)

Set object without adding reference.

Use this method if the object to hold has been added a reference already. This is the case with created objects as well as certain methods returning newly created objects. In all these cases the object has to be held without adding a reference. For all other situations use the constructor or assignment operator.

It is allowed for object to be a NULL object.


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