Orfeo Toolbox  3.16
Public Types | Public Member Functions | Private Member Functions | Private Attributes
itk::AutoPointer< TObjectType > Class Template Reference

Implements an Automatic Pointer to an object. More...

#include <itkAutoPointer.h>

List of all members.

Public Types

typedef TObjectType ObjectType
typedef AutoPointer Self

Public Member Functions

 AutoPointer ()
 AutoPointer (AutoPointer &p)
 AutoPointer (ObjectType *p, bool takeOwnership)
 ~AutoPointer ()
ObjectTypeGetPointer () const
bool IsOwner (void) const
 operator bool () const
bool operator!= (const AutoPointer &r) const
ObjectTypeoperator-> () const
bool operator< (const AutoPointer &r) const
bool operator<= (const AutoPointer &r) const
AutoPointeroperator= (AutoPointer &r)
bool operator== (const AutoPointer &r) const
bool operator> (const AutoPointer &r) const
bool operator>= (const AutoPointer &r) const
ObjectTypeReleaseOwnership (void)
void Reset (void)
void TakeNoOwnership (ObjectType *objectptr)
void TakeOwnership (void)
void TakeOwnership (ObjectType *objectptr)

Private Member Functions

void Swap (AutoPointer &r) throw ()

Private Attributes

bool m_IsOwner
ObjectTypem_Pointer

Detailed Description

template<class TObjectType>
class itk::AutoPointer< TObjectType >

Implements an Automatic Pointer to an object.

AutoPointer is intended to facilitate the construction of objects on the fly for those objects that are not to be shared. An AutoPointer destroys its object when it goes out of scope. Ownership of the object is transferred from one AutoPointer to another AutoPointer when the assignement operator is used. An AutoPointer can release ownership of the object it holds.

This class follows the design of the std::auto_ptr class. The main reason for not using the std version is to avoid templated methods, which greatly increase the difficulty of wrapping for Tcl, Python and Java.

Definition at line 45 of file itkAutoPointer.h.


Member Typedef Documentation

template<class TObjectType >
typedef TObjectType itk::AutoPointer< TObjectType >::ObjectType

Extract information from template parameter.

Definition at line 49 of file itkAutoPointer.h.

template<class TObjectType >
typedef AutoPointer itk::AutoPointer< TObjectType >::Self

Definition at line 50 of file itkAutoPointer.h.


Constructor & Destructor Documentation

template<class TObjectType >
itk::AutoPointer< TObjectType >::AutoPointer ( )
inline

Constructor.

Definition at line 53 of file itkAutoPointer.h.

template<class TObjectType >
itk::AutoPointer< TObjectType >::AutoPointer ( AutoPointer< TObjectType > &  p)
inlineexplicit
template<class TObjectType >
itk::AutoPointer< TObjectType >::AutoPointer ( ObjectType p,
bool  takeOwnership 
)
inlineexplicit

Constructor to pointer p.

Definition at line 65 of file itkAutoPointer.h.

template<class TObjectType >
itk::AutoPointer< TObjectType >::~AutoPointer ( )
inline

Destructor.

Definition at line 70 of file itkAutoPointer.h.


Member Function Documentation

template<class TObjectType >
ObjectType* itk::AutoPointer< TObjectType >::GetPointer ( ) const
inline

Access function to pointer.

Definition at line 146 of file itkAutoPointer.h.

template<class TObjectType >
bool itk::AutoPointer< TObjectType >::IsOwner ( void  ) const
inline

Query for the ownership

Definition at line 124 of file itkAutoPointer.h.

Referenced by itk::AutoPointer< TObjectType >::AutoPointer().

template<class TObjectType >
itk::AutoPointer< TObjectType >::operator bool ( ) const
inline

Casting operator to boolean. This is used in conditional statments to check the content of the pointer against null

Definition at line 182 of file itkAutoPointer.h.

References NULL.

template<class TObjectType >
bool itk::AutoPointer< TObjectType >::operator!= ( const AutoPointer< TObjectType > &  r) const
inline

Comparison of pointers. NonEqual comparison.

Definition at line 154 of file itkAutoPointer.h.

References itk::AutoPointer< TObjectType >::m_Pointer.

template<class TObjectType >
ObjectType* itk::AutoPointer< TObjectType >::operator-> ( ) const
inline

Overload operator ->.

Definition at line 81 of file itkAutoPointer.h.

template<class TObjectType >
bool itk::AutoPointer< TObjectType >::operator< ( const AutoPointer< TObjectType > &  r) const
inline

Comparison of pointers. Less than comparison.

Definition at line 158 of file itkAutoPointer.h.

References itk::AutoPointer< TObjectType >::m_Pointer.

template<class TObjectType >
bool itk::AutoPointer< TObjectType >::operator<= ( const AutoPointer< TObjectType > &  r) const
inline

Comparison of pointers. Less than or equal to comparison.

Definition at line 166 of file itkAutoPointer.h.

References itk::AutoPointer< TObjectType >::m_Pointer.

template<class TObjectType >
AutoPointer& itk::AutoPointer< TObjectType >::operator= ( AutoPointer< TObjectType > &  r)
inline

Overload operator assignment.

Definition at line 174 of file itkAutoPointer.h.

References itk::AutoPointer< TObjectType >::Swap().

template<class TObjectType >
bool itk::AutoPointer< TObjectType >::operator== ( const AutoPointer< TObjectType > &  r) const
inline

Comparison of pointers. Equal comparison.

Definition at line 150 of file itkAutoPointer.h.

References itk::AutoPointer< TObjectType >::m_Pointer.

template<class TObjectType >
bool itk::AutoPointer< TObjectType >::operator> ( const AutoPointer< TObjectType > &  r) const
inline

Comparison of pointers. Greater than comparison.

Definition at line 162 of file itkAutoPointer.h.

References itk::AutoPointer< TObjectType >::m_Pointer.

template<class TObjectType >
bool itk::AutoPointer< TObjectType >::operator>= ( const AutoPointer< TObjectType > &  r) const
inline

Comparison of pointers. Greater than or equal to comparison.

Definition at line 170 of file itkAutoPointer.h.

References itk::AutoPointer< TObjectType >::m_Pointer.

template<class TObjectType >
ObjectType* itk::AutoPointer< TObjectType >::ReleaseOwnership ( void  )
inline

Release the pointer hold by the current AutoPointer and return the raw pointer so it can be hold by another AutoPointer. This operation is intended to be used for facilitating polymorphism.

Example: if class Cow derives from Mammal, AutoPointer<Cow> onecow = new Cow; AutoPointer<Mammal> onemammal = onecow.ReleaseOwnership();

Note that the AutoPointer still points to the object after the ReleaseOwnership operation, but it doesn't own the object any more.

Definition at line 139 of file itkAutoPointer.h.

Referenced by itk::AutoPointer< TObjectType >::AutoPointer().

template<class TObjectType >
void itk::AutoPointer< TObjectType >::Reset ( void  )
inline

Clear the AutoPointer. If it had a pointer the object is deleted and the pointer is set to null.

Definition at line 86 of file itkAutoPointer.h.

template<class TObjectType >
void itk::AutoPointer< TObjectType >::Swap ( AutoPointer< TObjectType > &  r) throw ()
inlineprivate

Function to print object pointed to. Exchange the content of two AutoPointers

Definition at line 198 of file itkAutoPointer.h.

Referenced by itk::AutoPointer< TObjectType >::operator=().

template<class TObjectType >
void itk::AutoPointer< TObjectType >::TakeNoOwnership ( ObjectType objectptr)
inline

Explicitly reject ownership

Definition at line 113 of file itkAutoPointer.h.

template<class TObjectType >
void itk::AutoPointer< TObjectType >::TakeOwnership ( void  )
inline

Explicitly set the ownership

Definition at line 98 of file itkAutoPointer.h.

Referenced by itk::QuadEdgeMeshPolygonCell< TCellInterface >::New().

template<class TObjectType >
void itk::AutoPointer< TObjectType >::TakeOwnership ( ObjectType objectptr)
inline

Explicitly set the ownership

Definition at line 102 of file itkAutoPointer.h.


Member Data Documentation

template<class TObjectType >
bool itk::AutoPointer< TObjectType >::m_IsOwner
private

Definition at line 208 of file itkAutoPointer.h.

template<class TObjectType >
ObjectType* itk::AutoPointer< TObjectType >::m_Pointer
private

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

Generated at Sun Feb 3 2013 01:09:14 for Orfeo Toolbox with doxygen 1.8.1.1