Open CASCADE Technology
6.5.4
|
Purpose: This template class is used to define Handle adaptor for allocated dynamically objects of arbitrary type. More...
#include <NCollection_Handle.hxx>
Data Structures | |
class | Ptr |
Internal adaptor class wrapping actual type and enhancing it by reference counter inherited from Standard_Transient. | |
Public Member Functions | |
NCollection_Handle () | |
Default constructor; creates null handle. | |
NCollection_Handle (T *theObject) | |
Constructor of handle from pointer on newly allocated object. | |
T * | operator-> () |
Cast handle to contained type. | |
const T * | operator-> () const |
Cast handle to contained type. | |
T & | operator* () |
Cast handle to contained type. | |
const T & | operator* () const |
Cast handle to contained type. | |
Static Public Member Functions | |
static NCollection_Handle< T > | DownCast (const Handle< Standard_Transient > &theOther) |
Downcast arbitrary Handle to the argument type if contained object is Handle for this type; returns null otherwise. |
The advantage is that this handle will automatically destroy the object when last referred Handle is destroyed (i.e. it is a typical smart pointer), and that it can be handled as Handle(Standard_Transient) in OCCT components.
Use it as follows:
NCollection_Handle<T> aPtr = new T (...);
aPtr->Method(...);
Handle(Standard_Transient) aBase = aPtr; if ( aBase->IsKind(STANDARD_TYPE(NCollection_Handle)) ) { NCollection_Handle<T> aPtr2 = NCollection_Handle<T>::DownCast (aBase); if ( ! aPtr2.IsNull() ) aPtr2->Method2(); }
NCollection_Handle< T >::NCollection_Handle | ( | ) | [inline] |
NCollection_Handle< T >::NCollection_Handle | ( | T * | theObject | ) | [inline] |
static NCollection_Handle<T> NCollection_Handle< T >::DownCast | ( | const Handle< Standard_Transient > & | theOther | ) | [inline, static] |
T& NCollection_Handle< T >::operator* | ( | ) | [inline] |
const T& NCollection_Handle< T >::operator* | ( | ) | const [inline] |
T* NCollection_Handle< T >::operator-> | ( | ) | [inline] |
const T* NCollection_Handle< T >::operator-> | ( | ) | const [inline] |