Nemiver  0.3
Public Member Functions | Protected Attributes | List of all members
nemiver::common::SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor > Class Template Reference

#include <nmv-safe-ptr.h>

Public Member Functions

 SafePtr (const PointerType *a_pointer, bool a_do_ref=false)
 
 SafePtr ()
 
 SafePtr (const SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor > &a_safe_ptr)
 
 ~SafePtr ()
 
SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor > & operator= (const SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor > &a_safe_ptr)
 
PointerType & operator* () const
 
PointerType * operator-> () const
 
bool operator== (const SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor > &a_safe_ptr) const
 
bool operator== (const PointerType *a_ptr) const
 
bool operator! () const
 
 operator bool () const
 
bool operator!= (const PointerType *a_pointer)
 
bool operator!= (const SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor > &a_safe_ptr)
 
void reset ()
 
void reset (const PointerType *a_pointer, bool a_do_ref=false)
 
PointerType * get () const
 
PointerType * ref_and_get () const
 
template<class T >
SafePtr< T, ReferenceFunctor, UnreferenceFunctor > do_dynamic_cast ()
 
PointerType * release ()
 
void swap (SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor > &a_safe_ptr)
 
void reference ()
 
void unreference ()
 

Protected Attributes

PointerType * m_pointer
 

Constructor & Destructor Documentation

◆ SafePtr() [1/3]

template<class PointerType , class ReferenceFunctor = DefaultRef, class UnreferenceFunctor = DeleteFunctor<PointerType>>
nemiver::common::SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor >::SafePtr ( const PointerType *  a_pointer,
bool  a_do_ref = false 
)
inlineexplicit

◆ SafePtr() [2/3]

template<class PointerType , class ReferenceFunctor = DefaultRef, class UnreferenceFunctor = DeleteFunctor<PointerType>>
nemiver::common::SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor >::SafePtr ( )
inline

◆ SafePtr() [3/3]

template<class PointerType , class ReferenceFunctor = DefaultRef, class UnreferenceFunctor = DeleteFunctor<PointerType>>
nemiver::common::SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor >::SafePtr ( const SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor > &  a_safe_ptr)
inline

◆ ~SafePtr()

template<class PointerType , class ReferenceFunctor = DefaultRef, class UnreferenceFunctor = DeleteFunctor<PointerType>>
nemiver::common::SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor >::~SafePtr ( )
inline

Member Function Documentation

◆ do_dynamic_cast()

template<class PointerType , class ReferenceFunctor = DefaultRef, class UnreferenceFunctor = DeleteFunctor<PointerType>>
template<class T >
SafePtr<T, ReferenceFunctor, UnreferenceFunctor> nemiver::common::SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor >::do_dynamic_cast ( )
inline

◆ get()

template<class PointerType , class ReferenceFunctor = DefaultRef, class UnreferenceFunctor = DeleteFunctor<PointerType>>
PointerType* nemiver::common::SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor >::get ( ) const
inline

◆ operator bool()

template<class PointerType , class ReferenceFunctor = DefaultRef, class UnreferenceFunctor = DeleteFunctor<PointerType>>
nemiver::common::SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor >::operator bool ( ) const
inline

◆ operator!()

template<class PointerType , class ReferenceFunctor = DefaultRef, class UnreferenceFunctor = DeleteFunctor<PointerType>>
bool nemiver::common::SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor >::operator! ( ) const
inline

◆ operator!=() [1/2]

template<class PointerType , class ReferenceFunctor = DefaultRef, class UnreferenceFunctor = DeleteFunctor<PointerType>>
bool nemiver::common::SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor >::operator!= ( const PointerType *  a_pointer)
inline

◆ operator!=() [2/2]

template<class PointerType , class ReferenceFunctor = DefaultRef, class UnreferenceFunctor = DeleteFunctor<PointerType>>
bool nemiver::common::SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor >::operator!= ( const SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor > &  a_safe_ptr)
inline

◆ operator*()

template<class PointerType , class ReferenceFunctor = DefaultRef, class UnreferenceFunctor = DeleteFunctor<PointerType>>
PointerType& nemiver::common::SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor >::operator* ( ) const
inline

◆ operator->()

template<class PointerType , class ReferenceFunctor = DefaultRef, class UnreferenceFunctor = DeleteFunctor<PointerType>>
PointerType* nemiver::common::SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor >::operator-> ( ) const
inline

◆ operator=()

template<class PointerType , class ReferenceFunctor = DefaultRef, class UnreferenceFunctor = DeleteFunctor<PointerType>>
SafePtr<PointerType, ReferenceFunctor, UnreferenceFunctor>& nemiver::common::SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor >::operator= ( const SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor > &  a_safe_ptr)
inline

◆ operator==() [1/2]

template<class PointerType , class ReferenceFunctor = DefaultRef, class UnreferenceFunctor = DeleteFunctor<PointerType>>
bool nemiver::common::SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor >::operator== ( const PointerType *  a_ptr) const
inline

◆ operator==() [2/2]

template<class PointerType , class ReferenceFunctor = DefaultRef, class UnreferenceFunctor = DeleteFunctor<PointerType>>
bool nemiver::common::SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor >::operator== ( const SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor > &  a_safe_ptr) const
inline

◆ ref_and_get()

template<class PointerType , class ReferenceFunctor = DefaultRef, class UnreferenceFunctor = DeleteFunctor<PointerType>>
PointerType* nemiver::common::SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor >::ref_and_get ( ) const
inline

◆ reference()

template<class PointerType , class ReferenceFunctor = DefaultRef, class UnreferenceFunctor = DeleteFunctor<PointerType>>
void nemiver::common::SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor >::reference ( )
inline

◆ release()

template<class PointerType , class ReferenceFunctor = DefaultRef, class UnreferenceFunctor = DeleteFunctor<PointerType>>
PointerType* nemiver::common::SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor >::release ( )
inline

◆ reset() [1/2]

template<class PointerType , class ReferenceFunctor = DefaultRef, class UnreferenceFunctor = DeleteFunctor<PointerType>>
void nemiver::common::SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor >::reset ( )
inline

◆ reset() [2/2]

template<class PointerType , class ReferenceFunctor = DefaultRef, class UnreferenceFunctor = DeleteFunctor<PointerType>>
void nemiver::common::SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor >::reset ( const PointerType *  a_pointer,
bool  a_do_ref = false 
)
inline

◆ swap()

template<class PointerType , class ReferenceFunctor = DefaultRef, class UnreferenceFunctor = DeleteFunctor<PointerType>>
void nemiver::common::SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor >::swap ( SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor > &  a_safe_ptr)
inline

◆ unreference()

template<class PointerType , class ReferenceFunctor = DefaultRef, class UnreferenceFunctor = DeleteFunctor<PointerType>>
void nemiver::common::SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor >::unreference ( )
inline

Member Data Documentation

◆ m_pointer

template<class PointerType , class ReferenceFunctor = DefaultRef, class UnreferenceFunctor = DeleteFunctor<PointerType>>
PointerType* nemiver::common::SafePtr< PointerType, ReferenceFunctor, UnreferenceFunctor >::m_pointer
mutableprotected

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