TrinityCore
Trinity::unique_strong_ref_ptr< T > Class Template Reference

Result of unique_weak_ptr::lock() function, this class holds a temporary strong reference to held object to prevent it from being deallocated by another thread while it is being actively accessed. This class is non-movable and non-copypable and is intended only for short lived local variables. More...

#include <UniqueTrackablePtr.h>

Public Types

using element_type = T
 
using pointer = T *
 

Public Member Functions

 unique_strong_ref_ptr (unique_strong_ref_ptr const &)=delete
 
 unique_strong_ref_ptr (unique_strong_ref_ptr &&)=delete
 
unique_strong_ref_ptroperator= (unique_strong_ref_ptr const &)=delete
 
unique_strong_ref_ptroperator= (unique_strong_ref_ptr &&)=delete
 
 ~unique_strong_ref_ptr ()=default
 
element_typeoperator* () const
 
pointer operator-> () const
 
pointer get () const
 
 operator bool () const
 
 operator unique_weak_ptr< T > () const
 

Private Member Functions

 unique_strong_ref_ptr (std::shared_ptr< element_type > ptr)
 

Private Attributes

std::shared_ptr< element_type_ptr
 

Friends

template<typename T0 >
class unique_weak_ptr
 
template<class To , class From >
unique_strong_ref_ptr< To > static_pointer_cast (unique_strong_ref_ptr< From > const &other)
 
template<class To , class From >
unique_strong_ref_ptr< To > static_pointer_cast (unique_strong_ref_ptr< From > &&other)
 
template<class To , class From >
unique_strong_ref_ptr< To > const_pointer_cast (unique_strong_ref_ptr< From > const &other)
 
template<class To , class From >
unique_strong_ref_ptr< To > const_pointer_cast (unique_strong_ref_ptr< From > &&other)
 
template<class To , class From >
unique_strong_ref_ptr< To > reinterpret_pointer_cast (unique_strong_ref_ptr< From > const &other)
 
template<class To , class From >
unique_strong_ref_ptr< To > reinterpret_pointer_cast (unique_strong_ref_ptr< From > &&other)
 
template<class To , class From >
unique_strong_ref_ptr< To > dynamic_pointer_cast (unique_strong_ref_ptr< From > const &other)
 
template<class To , class From >
unique_strong_ref_ptr< To > dynamic_pointer_cast (unique_strong_ref_ptr< From > &&other)
 

Detailed Description

template<typename T>
class Trinity::unique_strong_ref_ptr< T >

Result of unique_weak_ptr::lock() function, this class holds a temporary strong reference to held object to prevent it from being deallocated by another thread while it is being actively accessed. This class is non-movable and non-copypable and is intended only for short lived local variables.

Template Parameters
TType of held object

Definition at line 246 of file UniqueTrackablePtr.h.

Member Typedef Documentation

◆ element_type

template<typename T >
using Trinity::unique_strong_ref_ptr< T >::element_type = T

Definition at line 249 of file UniqueTrackablePtr.h.

◆ pointer

template<typename T >
using Trinity::unique_strong_ref_ptr< T >::pointer = T*

Definition at line 250 of file UniqueTrackablePtr.h.

Constructor & Destructor Documentation

◆ unique_strong_ref_ptr() [1/3]

template<typename T >
Trinity::unique_strong_ref_ptr< T >::unique_strong_ref_ptr ( unique_strong_ref_ptr< T > const &  )
delete

◆ unique_strong_ref_ptr() [2/3]

template<typename T >
Trinity::unique_strong_ref_ptr< T >::unique_strong_ref_ptr ( unique_strong_ref_ptr< T > &&  )
delete

◆ ~unique_strong_ref_ptr()

template<typename T >
Trinity::unique_strong_ref_ptr< T >::~unique_strong_ref_ptr ( )
default

◆ unique_strong_ref_ptr() [3/3]

template<typename T >
Trinity::unique_strong_ref_ptr< T >::unique_strong_ref_ptr ( std::shared_ptr< element_type ptr)
inlineprivate

Definition at line 314 of file UniqueTrackablePtr.h.

Member Function Documentation

◆ get()

template<typename T >
pointer Trinity::unique_strong_ref_ptr< T >::get ( ) const
inline

Definition at line 269 of file UniqueTrackablePtr.h.

+ Here is the caller graph for this function:

◆ operator bool()

template<typename T >
Trinity::unique_strong_ref_ptr< T >::operator bool ( ) const
inlineexplicit

Definition at line 274 of file UniqueTrackablePtr.h.

◆ operator unique_weak_ptr< T >()

template<typename T >
Trinity::unique_strong_ref_ptr< T >::operator unique_weak_ptr< T > ( ) const
inline

Definition at line 279 of file UniqueTrackablePtr.h.

◆ operator*()

template<typename T >
element_type & Trinity::unique_strong_ref_ptr< T >::operator* ( ) const
inline

Definition at line 259 of file UniqueTrackablePtr.h.

◆ operator->()

template<typename T >
pointer Trinity::unique_strong_ref_ptr< T >::operator-> ( ) const
inline

Definition at line 264 of file UniqueTrackablePtr.h.

◆ operator=() [1/2]

template<typename T >
unique_strong_ref_ptr & Trinity::unique_strong_ref_ptr< T >::operator= ( unique_strong_ref_ptr< T > &&  )
delete

◆ operator=() [2/2]

template<typename T >
unique_strong_ref_ptr & Trinity::unique_strong_ref_ptr< T >::operator= ( unique_strong_ref_ptr< T > const &  )
delete

Friends And Related Function Documentation

◆ const_pointer_cast [1/2]

template<typename T >
template<class To , class From >
unique_strong_ref_ptr< To > const_pointer_cast ( unique_strong_ref_ptr< From > &&  other)
friend

Definition at line 464 of file UniqueTrackablePtr.h.

◆ const_pointer_cast [2/2]

template<typename T >
template<class To , class From >
unique_strong_ref_ptr< To > const_pointer_cast ( unique_strong_ref_ptr< From > const &  other)
friend

Definition at line 458 of file UniqueTrackablePtr.h.

◆ dynamic_pointer_cast [1/2]

template<typename T >
template<class To , class From >
unique_strong_ref_ptr< To > dynamic_pointer_cast ( unique_strong_ref_ptr< From > &&  other)
friend

Definition at line 488 of file UniqueTrackablePtr.h.

◆ dynamic_pointer_cast [2/2]

template<typename T >
template<class To , class From >
unique_strong_ref_ptr< To > dynamic_pointer_cast ( unique_strong_ref_ptr< From > const &  other)
friend

Definition at line 482 of file UniqueTrackablePtr.h.

◆ reinterpret_pointer_cast [1/2]

template<typename T >
template<class To , class From >
unique_strong_ref_ptr< To > reinterpret_pointer_cast ( unique_strong_ref_ptr< From > &&  other)
friend

Definition at line 476 of file UniqueTrackablePtr.h.

◆ reinterpret_pointer_cast [2/2]

template<typename T >
template<class To , class From >
unique_strong_ref_ptr< To > reinterpret_pointer_cast ( unique_strong_ref_ptr< From > const &  other)
friend

Definition at line 470 of file UniqueTrackablePtr.h.

◆ static_pointer_cast [1/2]

template<typename T >
template<class To , class From >
unique_strong_ref_ptr< To > static_pointer_cast ( unique_strong_ref_ptr< From > &&  other)
friend

Definition at line 452 of file UniqueTrackablePtr.h.

◆ static_pointer_cast [2/2]

template<typename T >
template<class To , class From >
unique_strong_ref_ptr< To > static_pointer_cast ( unique_strong_ref_ptr< From > const &  other)
friend

Definition at line 446 of file UniqueTrackablePtr.h.

◆ unique_weak_ptr

template<typename T >
template<typename T0 >
friend class unique_weak_ptr
friend

Definition at line 288 of file UniqueTrackablePtr.h.

Member Data Documentation

◆ _ptr

template<typename T >
std::shared_ptr<element_type> Trinity::unique_strong_ref_ptr< T >::_ptr
private

Definition at line 316 of file UniqueTrackablePtr.h.


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