CL_SharedPtr< Type > Class Template Reference
[clanCore System]

CL_SharedPtr. More...

#include <sharedptr.h>

Inheritance diagram for CL_SharedPtr< Type >:

CL_SharedPtr_Link List of all members.

Public Member Functions

 CL_SharedPtr ()
 CL_SharedPtr (const CL_SharedPtr< Type > &copy)
 CL_SharedPtr (const CL_UnknownSharedPtr &copy)
template<typename InitType>
 CL_SharedPtr (InitType *ptr)
template<typename InitType>
 CL_SharedPtr (InitType *ptr, CL_Mutex *ref_mutex)
template<typename InitType>
 CL_SharedPtr (InitType *ptr, CL_MemoryPool *memory_pool)
template<typename InitType>
 CL_SharedPtr (InitType *ptr, CL_MemoryPool *memory_pool, CL_Mutex *ref_mutex)
template<typename InitType>
 CL_SharedPtr (InitType *ptr, void(*free_callback)(InitType *ptr))
template<typename InitType>
 CL_SharedPtr (InitType *ptr, void(*free_callback)(InitType *ptr), CL_Mutex *ref_mutex)
template<typename InitType, typename FreeClass>
 CL_SharedPtr (InitType *ptr, FreeClass *free_class, void(FreeClass::*free_callback)(InitType *ptr))
template<typename InitType, typename FreeClass>
 CL_SharedPtr (InitType *ptr, FreeClass *free_class, void(FreeClass::*free_callback)(InitType *ptr), CL_Mutex *ref_mutex)
 CL_SharedPtr (const CL_SharedPtr_Link &link, Type *ptr)
 ~CL_SharedPtr ()
CL_SharedPtroperator= (const CL_SharedPtr &copy)
bool disconnect ()
 Disconnect from linked list and unset the pointer.
bool is_null () const
 Tests if the pointer is unset.
Type * get ()
 Retrieves the pointer.
const Type * get () const
 Retrieves the pointer.
 operator Type * ()
 operator const Type * () const
 operator CL_UnknownSharedPtr ()
 operator CL_UnknownSharedPtr () const
Type * operator-> ()
const Type * operator-> () const
template<typename OtherType>
bool operator== (OtherType *other) const
template<typename OtherType>
bool operator!= (OtherType *other) const
template<typename OtherType>
bool operator< (OtherType *other) const
template<typename OtherType>
bool operator<= (OtherType *other) const
template<typename OtherType>
bool operator> (OtherType *other) const
template<typename OtherType>
bool operator>= (OtherType *other) const
template<typename Type>
void create_deleter (Type *instance)
template<typename Type>
void create_deleter (Type *ptr, CL_MemoryPool *pool)
template<typename Type>
void create_deleter (Type *ptr, void(*free_callback)(Type *ptr))
template<typename Type, typename FreeClass>
void create_deleter (Type *ptr, FreeClass *free_class, void(FreeClass::*free_callback)(Type *ptr))
void call_deleter ()
void connect (const CL_SharedPtr_Link &copy)
void set_weak_link ()
bool is_invalid_weak_link () const

Public Attributes

Type * ptr
CL_Mutexmutex

Detailed Description

template<typename Type>
class CL_SharedPtr< Type >

CL_SharedPtr.


Constructor & Destructor Documentation

template<typename Type>
CL_SharedPtr< Type >::CL_SharedPtr  )  [inline]
 

template<typename Type>
CL_SharedPtr< Type >::CL_SharedPtr const CL_SharedPtr< Type > &  copy  )  [inline]
 

template<typename Type>
CL_SharedPtr< Type >::CL_SharedPtr const CL_UnknownSharedPtr copy  )  [inline, explicit]
 

template<typename Type>
template<typename InitType>
CL_SharedPtr< Type >::CL_SharedPtr InitType *  ptr  )  [inline, explicit]
 

template<typename Type>
template<typename InitType>
CL_SharedPtr< Type >::CL_SharedPtr InitType *  ptr,
CL_Mutex ref_mutex
[inline, explicit]
 

template<typename Type>
template<typename InitType>
CL_SharedPtr< Type >::CL_SharedPtr InitType *  ptr,
CL_MemoryPool memory_pool
[inline, explicit]
 

template<typename Type>
template<typename InitType>
CL_SharedPtr< Type >::CL_SharedPtr InitType *  ptr,
CL_MemoryPool memory_pool,
CL_Mutex ref_mutex
[inline, explicit]
 

template<typename Type>
template<typename InitType>
CL_SharedPtr< Type >::CL_SharedPtr InitType *  ptr,
void(*)(InitType *ptr free_callback
[inline, explicit]
 

template<typename Type>
template<typename InitType>
CL_SharedPtr< Type >::CL_SharedPtr InitType *  ptr,
void(*)(InitType *ptr free_callback,
CL_Mutex ref_mutex
[inline, explicit]
 

template<typename Type>
template<typename InitType, typename FreeClass>
CL_SharedPtr< Type >::CL_SharedPtr InitType *  ptr,
FreeClass *  free_class,
void(FreeClass::*)(InitType *ptr free_callback
[inline, explicit]
 

template<typename Type>
template<typename InitType, typename FreeClass>
CL_SharedPtr< Type >::CL_SharedPtr InitType *  ptr,
FreeClass *  free_class,
void(FreeClass::*)(InitType *ptr free_callback,
CL_Mutex ref_mutex
[inline, explicit]
 

template<typename Type>
CL_SharedPtr< Type >::CL_SharedPtr const CL_SharedPtr_Link link,
Type *  ptr
[inline]
 

template<typename Type>
CL_SharedPtr< Type >::~CL_SharedPtr  )  [inline]
 


Member Function Documentation

void CL_SharedPtr_Link::call_deleter  )  [inline, inherited]
 

void CL_SharedPtr_Link::connect const CL_SharedPtr_Link copy  )  [inline, inherited]
 

template<typename Type, typename FreeClass>
void CL_SharedPtr_Link::create_deleter Type *  ptr,
FreeClass *  free_class,
void(FreeClass::*)(Type *ptr)  free_callback
[inline, inherited]
 

template<typename Type>
void CL_SharedPtr_Link::create_deleter Type *  ptr,
void(*)(Type *ptr)  free_callback
[inline, inherited]
 

template<typename Type>
void CL_SharedPtr_Link::create_deleter Type *  ptr,
CL_MemoryPool pool
[inline, inherited]
 

template<typename Type>
void CL_SharedPtr_Link::create_deleter Type *  instance  )  [inline, inherited]
 

template<typename Type>
bool CL_SharedPtr< Type >::disconnect  )  [inline]
 

Disconnect from linked list and unset the pointer.

If the list is empty or only contains weak links, then the pointer destructor is called

Returns:
true if the list is empty or only contains weak links (ie the pointer destructor was called)

Reimplemented from CL_SharedPtr_Link.

template<typename Type>
const Type* CL_SharedPtr< Type >::get  )  const [inline]
 

Retrieves the pointer.

Returns:
The pointer (May be NULL, if it has not been set)

template<typename Type>
Type* CL_SharedPtr< Type >::get  )  [inline]
 

Retrieves the pointer.

Returns:
The pointer (May be NULL, if it has not been set)

bool CL_SharedPtr_Link::is_invalid_weak_link  )  const [inline, inherited]
 

template<typename Type>
bool CL_SharedPtr< Type >::is_null  )  const [inline]
 

Tests if the pointer is unset.

Returns:
true, pointer not set

template<typename Type>
CL_SharedPtr< Type >::operator CL_UnknownSharedPtr  )  const [inline]
 

template<typename Type>
CL_SharedPtr< Type >::operator CL_UnknownSharedPtr  )  [inline]
 

template<typename Type>
CL_SharedPtr< Type >::operator const Type *  )  const [inline]
 

template<typename Type>
CL_SharedPtr< Type >::operator Type *  )  [inline]
 

template<typename Type>
template<typename OtherType>
bool CL_SharedPtr< Type >::operator!= OtherType *  other  )  const [inline]
 

template<typename Type>
const Type* CL_SharedPtr< Type >::operator->  )  const [inline]
 

template<typename Type>
Type* CL_SharedPtr< Type >::operator->  )  [inline]
 

template<typename Type>
template<typename OtherType>
bool CL_SharedPtr< Type >::operator< OtherType *  other  )  const [inline]
 

template<typename Type>
template<typename OtherType>
bool CL_SharedPtr< Type >::operator<= OtherType *  other  )  const [inline]
 

template<typename Type>
CL_SharedPtr& CL_SharedPtr< Type >::operator= const CL_SharedPtr< Type > &  copy  )  [inline]
 

template<typename Type>
template<typename OtherType>
bool CL_SharedPtr< Type >::operator== OtherType *  other  )  const [inline]
 

template<typename Type>
template<typename OtherType>
bool CL_SharedPtr< Type >::operator> OtherType *  other  )  const [inline]
 

template<typename Type>
template<typename OtherType>
bool CL_SharedPtr< Type >::operator>= OtherType *  other  )  const [inline]
 

void CL_SharedPtr_Link::set_weak_link  )  [inline, inherited]
 


Member Data Documentation

CL_Mutex* CL_SharedPtr_Link::mutex [mutable, inherited]
 

template<typename Type>
Type* CL_SharedPtr< Type >::ptr
 


The documentation for this class was generated from the following file:
Generated on Thu Dec 3 02:39:40 2009 for ClanLib by  doxygen 1.4.6