Ogre::SharedPtr< T > Class Template Reference
[General]

Reference-counted shared pointer, used for objects where implicit destruction is required. More...

#include <OgreSharedPtr.h>

List of all members.

Public Member Functions

OGRE_AUTO_SHARED_MUTEX SharedPtr ()
 Constructor, does not initialise the SharedPtr.
template<class Y >
 SharedPtr (Y *rep, SharedPtrFreeMethod inFreeMethod=SPFM_DELETE)
 Constructor.
 SharedPtr (const SharedPtr &r)
SharedPtroperator= (const SharedPtr &r)
template<class Y >
 SharedPtr (const SharedPtr< Y > &r)
template<class Y >
SharedPtroperator= (const SharedPtr< Y > &r)
virtual ~SharedPtr ()
T & operator* () const
T * operator-> () const
T * get () const
void bind (T *rep, SharedPtrFreeMethod inFreeMethod=SPFM_DELETE)
 Binds rep to the SharedPtr.
bool unique () const
unsigned int useCount () const
unsigned int * useCountPointer () const
T * getPointer () const
SharedPtrFreeMethod freeMethod () const
bool isNull (void) const
void setNull (void)

Protected Member Functions

void release (void)
virtual void destroy (void)
virtual void swap (SharedPtr< T > &other)

Protected Attributes

T * pRep
unsigned int * pUseCount
SharedPtrFreeMethod useFreeMethod

Detailed Description

template<class T>
class Ogre::SharedPtr< T >

Reference-counted shared pointer, used for objects where implicit destruction is required.

Remarks:
This is a standard shared pointer implementation which uses a reference count to work out when to delete the object.
If OGRE_THREAD_SUPPORT is defined to be 1, use of this class is thread-safe.

Definition at line 60 of file OgreSharedPtr.h.


Constructor & Destructor Documentation

template<class T>
OGRE_AUTO_SHARED_MUTEX Ogre::SharedPtr< T >::SharedPtr (  ) 

Constructor, does not initialise the SharedPtr.

Remarks:
Dangerous! You have to call bind() before using the SharedPtr.

Definition at line 72 of file OgreSharedPtr.h.

template<class T>
template<class Y >
Ogre::SharedPtr< T >::SharedPtr ( Y *  rep,
SharedPtrFreeMethod  inFreeMethod = SPFM_DELETE 
) [explicit]

Constructor.

Parameters:
rep The pointer to take ownership of
freeMode The mechanism to use to free the pointer

Definition at line 82 of file OgreSharedPtr.h.

template<class T>
Ogre::SharedPtr< T >::SharedPtr ( const SharedPtr< T > &  r  ) 

Definition at line 93 of file OgreSharedPtr.h.

template<class T>
template<class Y >
Ogre::SharedPtr< T >::SharedPtr ( const SharedPtr< Y > &  r  ) 

Definition at line 124 of file OgreSharedPtr.h.

template<class T>
virtual Ogre::SharedPtr< T >::~SharedPtr (  )  [virtual]

Definition at line 154 of file OgreSharedPtr.h.


Member Function Documentation

template<class T>
void Ogre::SharedPtr< T >::bind ( T *  rep,
SharedPtrFreeMethod  inFreeMethod = SPFM_DELETE 
)

Binds rep to the SharedPtr.

Remarks:
Assumes that the SharedPtr is uninitialised!

Definition at line 167 of file OgreSharedPtr.h.

template<class T>
virtual void Ogre::SharedPtr< T >::destroy ( void   )  [protected, virtual]

Reimplemented in Ogre::MeshPtr.

Definition at line 223 of file OgreSharedPtr.h.

Referenced by Ogre::SharedPtr< Skeleton >::release().

template<class T>
SharedPtrFreeMethod Ogre::SharedPtr< T >::freeMethod (  )  const

Definition at line 181 of file OgreSharedPtr.h.

Referenced by Ogre::SharedPtr< Skeleton >::SharedPtr().

template<class T>
T* Ogre::SharedPtr< T >::get ( void   )  const

Definition at line 161 of file OgreSharedPtr.h.

Referenced by Ogre::operator!=(), and Ogre::operator==().

template<class T>
T* Ogre::SharedPtr< T >::getPointer (  )  const
template<class T>
bool Ogre::SharedPtr< T >::isNull ( void   )  const
template<class T>
T& Ogre::SharedPtr< T >::operator* (  )  const

Definition at line 159 of file OgreSharedPtr.h.

template<class T>
T* Ogre::SharedPtr< T >::operator-> (  )  const

Definition at line 160 of file OgreSharedPtr.h.

template<class T>
template<class Y >
SharedPtr& Ogre::SharedPtr< T >::operator= ( const SharedPtr< Y > &  r  ) 

Definition at line 145 of file OgreSharedPtr.h.

template<class T>
SharedPtr& Ogre::SharedPtr< T >::operator= ( const SharedPtr< T > &  r  ) 

Definition at line 113 of file OgreSharedPtr.h.

template<class T>
void Ogre::SharedPtr< T >::release ( void   )  [protected]
template<class T>
void Ogre::SharedPtr< T >::setNull ( void   ) 

Definition at line 185 of file OgreSharedPtr.h.

template<class T>
virtual void Ogre::SharedPtr< T >::swap ( SharedPtr< T > &  other  )  [protected, virtual]
template<class T>
bool Ogre::SharedPtr< T >::unique (  )  const

Definition at line 176 of file OgreSharedPtr.h.

template<class T>
unsigned int Ogre::SharedPtr< T >::useCount (  )  const

Definition at line 177 of file OgreSharedPtr.h.

template<class T>
unsigned int* Ogre::SharedPtr< T >::useCountPointer (  )  const

Member Data Documentation

template<class T>
T* Ogre::SharedPtr< T >::pRep [protected]
template<class T>
unsigned int* Ogre::SharedPtr< T >::pUseCount [protected]
template<class T>
SharedPtrFreeMethod Ogre::SharedPtr< T >::useFreeMethod [protected]

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

Copyright © 2012 Torus Knot Software Ltd
Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Fri May 25 23:40:23 2012