AGX Dynamics 2.41.1.2
Loading...
Searching...
No Matches
agx::observer_ptr< T > Class Template Reference

Smart pointer for observed objects, that automatically set pointers to them to null when they deleted. More...

#include <observer_ptr.h>

+ Inheritance diagram for agx::observer_ptr< T >:

Public Types

typedef T element_type
 The type of the referenced class.
 

Public Member Functions

 observer_ptr ()
 Constructor.
 
 observer_ptr (const observer_ptr &rp)
 Copy constructor.
 
 observer_ptr (T *t)
 Constructor, create an observer_ptr and listen to the object t for when it is deleted.
 
virtual ~observer_ptr ()
 Destructor.
 
T * get () const
 
bool isValid () const
 
virtual void objectDeleted (void *)
 
 operator T* () const
 Cast operator that will cast the observer_ptr to its native type.
 
bool operator! () const
 
template<typename U >
bool operator!= (observer_ptr< U > const &rp) const
 
template<typename U >
bool operator!= (U *p) const
 
template<typename U >
bool operator!= (U const *p) const
 
T & operator* () const
 
T * operator-> () const
 automatic cast to native pointer and use the dereferencing operator
 
bool operator< (const observer_ptr &rp) const
 
observer_ptroperator= (const observer_ptr &rp)
 Assignment operator.
 
observer_ptroperator= (T *ptr)
 
template<typename U >
bool operator== (observer_ptr< U > const &rp) const
 
template<typename U >
bool operator== (U *p) const
 
template<typename U >
bool operator== (U const *p) const
 

Detailed Description

template<class T>
class agx::observer_ptr< T >

Smart pointer for observed objects, that automatically set pointers to them to null when they deleted.

class MyClass : public Referenced
{};
ref_ptr<MyClass> r = new MyClass;
// Keep an observer pointer to the object too.
// AND all observer pointers will be informed about this and hence set to 0.
r = null;
if (o.isValid()) // Now the observer_pointer is no longer valid.
// should not happen
Base class providing referencing counted objects.
Definition: Referenced.h:120
Smart pointer for observed objects, that automatically set pointers to them to null when they deleted...
Definition: observer_ptr.h:61
bool isValid() const
Definition: observer_ptr.h:288
Smart pointer for handling referenced counted objects.
Definition: ref_ptr.h:30
T * get() const
Definition: ref_ptr.h:256

Definition at line 60 of file observer_ptr.h.

Member Typedef Documentation

◆ element_type

template<class T >
typedef T agx::observer_ptr< T >::element_type

The type of the referenced class.

Definition at line 65 of file observer_ptr.h.

Constructor & Destructor Documentation

◆ observer_ptr() [1/3]

template<typename T >
agx::observer_ptr< T >::observer_ptr

Constructor.

Definition at line 136 of file observer_ptr.h.

◆ observer_ptr() [2/3]

template<typename T >
agx::observer_ptr< T >::observer_ptr ( T *  t)

Constructor, create an observer_ptr and listen to the object t for when it is deleted.

Definition at line 142 of file observer_ptr.h.

◆ observer_ptr() [3/3]

template<typename T >
agx::observer_ptr< T >::observer_ptr ( const observer_ptr< T > &  rp)

Copy constructor.

Definition at line 148 of file observer_ptr.h.

◆ ~observer_ptr()

template<typename T >
agx::observer_ptr< T >::~observer_ptr
virtual

Destructor.

Definition at line 154 of file observer_ptr.h.

Member Function Documentation

◆ get()

template<typename T >
T * agx::observer_ptr< T >::get
Returns
a native pointer to the referenced object

Definition at line 276 of file observer_ptr.h.

Referenced by agx::PointerParameter::get(), agxSDK::PickResult::getGeometryPtr(), and agx::ScalarParameter::set().

◆ isValid()

template<typename T >
bool agx::observer_ptr< T >::isValid
Returns
true if the referenced pointer is == null

Definition at line 288 of file observer_ptr.h.

◆ objectDeleted()

template<typename T >
void agx::observer_ptr< T >::objectDeleted ( void *  )
virtual

Reimplemented in agxPowerLine::Actuator1DOF::ConstraintObserver.

Definition at line 185 of file observer_ptr.h.

◆ operator T*()

template<typename T >
agx::observer_ptr< T >::operator T*

Cast operator that will cast the observer_ptr to its native type.

Definition at line 210 of file observer_ptr.h.

◆ operator!()

template<typename T >
bool agx::observer_ptr< T >::operator!
Returns
true if the referenced pointer is == null

Definition at line 282 of file observer_ptr.h.

◆ operator!=() [1/3]

template<typename T >
template<typename U >
bool agx::observer_ptr< T >::operator!= ( observer_ptr< U > const &  rp) const
Returns
true if the two observer pointers are NOT referencing the same object (address)

Definition at line 224 of file observer_ptr.h.

◆ operator!=() [2/3]

template<typename T >
template<typename U >
bool agx::observer_ptr< T >::operator!= ( U *  p) const
Returns
true if the pointer is NOT pointing at the same object as this observer pointer

Definition at line 252 of file observer_ptr.h.

◆ operator!=() [3/3]

template<typename T >
template<typename U >
bool agx::observer_ptr< T >::operator!= ( U const *  p) const
Returns
true if the pointer is NOT pointing at the same object as this observer pointer

Definition at line 238 of file observer_ptr.h.

◆ operator*()

template<typename T >
T & agx::observer_ptr< T >::operator*
Returns
a reference to the referenced object

Definition at line 264 of file observer_ptr.h.

◆ operator->()

template<typename T >
T * agx::observer_ptr< T >::operator->

automatic cast to native pointer and use the dereferencing operator

Definition at line 270 of file observer_ptr.h.

◆ operator<()

template<typename T >
bool agx::observer_ptr< T >::operator< ( const observer_ptr< T > &  rp) const
Returns
true if the pointer this is pointing to an address which is less than the one rp is referencing.

Definition at line 258 of file observer_ptr.h.

◆ operator=() [1/2]

template<typename T >
observer_ptr< T > & agx::observer_ptr< T >::operator= ( const observer_ptr< T > &  rp)

Assignment operator.

Definition at line 162 of file observer_ptr.h.

◆ operator=() [2/2]

template<typename T >
observer_ptr< T > & agx::observer_ptr< T >::operator= ( T *  ptr)

Definition at line 173 of file observer_ptr.h.

◆ operator==() [1/3]

template<typename T >
template<typename U >
bool agx::observer_ptr< T >::operator== ( observer_ptr< U > const &  rp) const
Returns
true if the two observer pointers are referencing the same object (address)

Definition at line 217 of file observer_ptr.h.

◆ operator==() [2/3]

template<typename T >
template<typename U >
bool agx::observer_ptr< T >::operator== ( U *  p) const
Returns
true if the pointer is pointing at the same object as this observer pointer

Definition at line 245 of file observer_ptr.h.

◆ operator==() [3/3]

template<typename T >
template<typename U >
bool agx::observer_ptr< T >::operator== ( U const *  p) const
Returns
true if the pointer is pointing at the same object as this observer pointer

Definition at line 231 of file observer_ptr.h.


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