QtlMovie 1.12 (A specialized FFmpeg front-end)
QtlSmartPointer< T, MUTEXLOCKER >::SmartShared Class Reference

Shared implementation of the smart pointer. More...

Public Member Functions

 SmartShared (T *p=0)
 Constructor. More...
 
 ~SmartShared ()
 Destructor. More...
 
SmartSharedattach ()
 Increment reference count and return this. More...
 
template<typename NEWMUTEXLOCKER >
QtlSmartPointer< T, NEWMUTEXLOCKER > changeMutex ()
 
int count ()
 
void detach ()
 Decrement reference count and deallocate this if needed. More...
 
template<typename ST >
QtlSmartPointer< ST, MUTEXLOCKER > downcast ()
 
bool isNull ()
 
T * pointer ()
 
T * release ()
 
void reset (T *p=0)
 
template<typename ST >
QtlSmartPointer< ST, MUTEXLOCKER > upcast ()
 

Private Member Functions

 SmartShared () Q_DECL_EQ_DELETE
 

Private Attributes

MUTEXLOCKER::Mutex _mutex
 Protect the SmartShared. More...
 
T * _ptr
 Pointer to actual object. More...
 
int _refCount
 Reference counter. More...
 

Detailed Description

template<typename T, class MUTEXLOCKER>
class QtlSmartPointer< T, MUTEXLOCKER >::SmartShared

Shared implementation of the smart pointer.

All smart pointer objects which reference the same T object share one single SmartShared object.

Constructor & Destructor Documentation

◆ SmartShared() [1/2]

template<typename T, class MUTEXLOCKER>
QtlSmartPointer< T, MUTEXLOCKER >::SmartShared::SmartShared ( T *  p = 0)
inline

Constructor.

Initial reference count is 1.

Parameters
[in]pA pointer to an unmanaged object of class T.

◆ ~SmartShared()

template<typename T , class MUTEXLOCKER >
QtlSmartPointer< T, MUTEXLOCKER >::SmartShared::~SmartShared ( )

Destructor.

Deallocate actual object (if any).

◆ SmartShared() [2/2]

template<typename T, class MUTEXLOCKER>
QtlSmartPointer< T, MUTEXLOCKER >::SmartShared::SmartShared ( )
private

Member Function Documentation

◆ attach()

template<typename T , class MUTEXLOCKER >
QtlSmartPointer< T, MUTEXLOCKER >::SmartShared * QtlSmartPointer< T, MUTEXLOCKER >::SmartShared::attach ( )

Increment reference count and return this.

Returns
This object.

◆ detach()

template<typename T , class MUTEXLOCKER >
void QtlSmartPointer< T, MUTEXLOCKER >::SmartShared::detach ( )

Decrement reference count and deallocate this if needed.

◆ release()

template<typename T , class MUTEXLOCKER >
T * QtlSmartPointer< T, MUTEXLOCKER >::SmartShared::release ( )

◆ reset()

template<typename T, class MUTEXLOCKER >
void QtlSmartPointer< T, MUTEXLOCKER >::SmartShared::reset ( T *  p = 0)

◆ pointer()

template<typename T , class MUTEXLOCKER >
T * QtlSmartPointer< T, MUTEXLOCKER >::SmartShared::pointer ( )

◆ count()

template<typename T , class MUTEXLOCKER >
int QtlSmartPointer< T, MUTEXLOCKER >::SmartShared::count ( )

◆ isNull()

template<typename T , class MUTEXLOCKER >
bool QtlSmartPointer< T, MUTEXLOCKER >::SmartShared::isNull ( )

◆ downcast()

template<typename T , class MUTEXLOCKER >
template<typename ST >
QtlSmartPointer< ST, MUTEXLOCKER > QtlSmartPointer< T, MUTEXLOCKER >::SmartShared::downcast ( )

◆ upcast()

template<typename T , class MUTEXLOCKER >
template<typename ST >
QtlSmartPointer< ST, MUTEXLOCKER > QtlSmartPointer< T, MUTEXLOCKER >::SmartShared::upcast ( )

◆ changeMutex()

template<typename T , class MUTEXLOCKER >
template<typename NEWMUTEXLOCKER >
QtlSmartPointer< T, NEWMUTEXLOCKER > QtlSmartPointer< T, MUTEXLOCKER >::SmartShared::changeMutex ( )

Member Data Documentation

◆ _ptr

template<typename T, class MUTEXLOCKER>
T* QtlSmartPointer< T, MUTEXLOCKER >::SmartShared::_ptr
private

Pointer to actual object.

◆ _refCount

template<typename T, class MUTEXLOCKER>
int QtlSmartPointer< T, MUTEXLOCKER >::SmartShared::_refCount
private

Reference counter.

◆ _mutex

template<typename T, class MUTEXLOCKER>
MUTEXLOCKER::Mutex QtlSmartPointer< T, MUTEXLOCKER >::SmartShared::_mutex
private

Protect the SmartShared.


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