Ark Server API (ASA) - Wiki
Loading...
Searching...
No Matches
TSharedFromThis< ObjectType, Mode > Class Template Reference

#include <SharedPointer.h>

+ Collaboration diagram for TSharedFromThis< ObjectType, Mode >:

Public Member Functions

TSharedRef< ObjectType, Mode > AsShared ()
 
TSharedRef< ObjectType const, Mode > AsShared () const
 
TWeakPtr< ObjectType, Mode > AsWeak ()
 
TWeakPtr< ObjectType const, Mode > AsWeak () const
 
template<class SharedPtrType , class OtherType >
FORCEINLINE void UpdateWeakReferenceInternal (TSharedPtr< SharedPtrType, Mode > const *InSharedPtr, OtherType *InObject) const
 
template<class SharedRefType , class OtherType >
FORCEINLINE void UpdateWeakReferenceInternal (TSharedRef< SharedRefType, Mode > const *InSharedRef, OtherType *InObject) const
 
FORCEINLINE bool DoesSharedInstanceExist () const
 

Protected Member Functions

 TSharedFromThis ()
 
 TSharedFromThis (TSharedFromThis const &)
 
FORCEINLINE TSharedFromThisoperator= (TSharedFromThis const &)
 
 ~TSharedFromThis ()
 

Static Protected Member Functions

template<class OtherType >
static FORCEINLINE TSharedRef< OtherType, Mode > SharedThis (OtherType *ThisPtr)
 
template<class OtherType >
static FORCEINLINE TSharedRef< OtherType const, Mode > SharedThis (const OtherType *ThisPtr)
 

Private Attributes

TWeakPtr< ObjectType, Mode > WeakThis
 

Detailed Description

template<class ObjectType, ESPMode Mode>
class TSharedFromThis< ObjectType, Mode >

Derive your class from TSharedFromThis to enable access to a TSharedRef directly from an object instance that's already been allocated. Use the optional Mode template argument for thread-safety.

Definition at line 1551 of file SharedPointer.h.

Constructor & Destructor Documentation

◆ TSharedFromThis() [1/2]

template<class ObjectType , ESPMode Mode>
TSharedFromThis< ObjectType, Mode >::TSharedFromThis ( )
inlineprotected

Hidden stub constructor

Definition at line 1728 of file SharedPointer.h.

◆ TSharedFromThis() [2/2]

template<class ObjectType , ESPMode Mode>
TSharedFromThis< ObjectType, Mode >::TSharedFromThis ( TSharedFromThis< ObjectType, Mode > const & )
inlineprotected

Hidden stub copy constructor

Definition at line 1731 of file SharedPointer.h.

◆ ~TSharedFromThis()

template<class ObjectType , ESPMode Mode>
TSharedFromThis< ObjectType, Mode >::~TSharedFromThis ( )
inlineprotected

Hidden destructor

Definition at line 1740 of file SharedPointer.h.

Member Function Documentation

◆ AsShared() [1/2]

template<class ObjectType , ESPMode Mode>
TSharedRef< ObjectType, Mode > TSharedFromThis< ObjectType, Mode >::AsShared ( )
inline

Provides access to a shared reference to this object. Note that is only valid to call this after a shared reference (or shared pointer) to the object has already been created. Also note that it is illegal to call this in the object's destructor.

Returns
Returns this object as a shared pointer

Definition at line 1562 of file SharedPointer.h.

◆ AsShared() [2/2]

template<class ObjectType , ESPMode Mode>
TSharedRef< ObjectType const, Mode > TSharedFromThis< ObjectType, Mode >::AsShared ( ) const
inline

Provides access to a shared reference to this object (const.) Note that is only valid to call this after a shared reference (or shared pointer) to the object has already been created. Also note that it is illegal to call this in the object's destructor.

Returns
Returns this object as a shared pointer (const)

Definition at line 1589 of file SharedPointer.h.

◆ AsWeak() [1/2]

template<class ObjectType , ESPMode Mode>
TWeakPtr< ObjectType, Mode > TSharedFromThis< ObjectType, Mode >::AsWeak ( )
inline

Provides a weak reference to this object. Note that is only valid to call this after a shared reference (or shared pointer) to the object has already been created. Also note that it is illegal to call this in the object's destructor.

Returns
Returns this object as a shared pointer

Definition at line 1616 of file SharedPointer.h.

◆ AsWeak() [2/2]

template<class ObjectType , ESPMode Mode>
TWeakPtr< ObjectType const, Mode > TSharedFromThis< ObjectType, Mode >::AsWeak ( ) const
inline

Definition at line 1634 of file SharedPointer.h.

◆ DoesSharedInstanceExist()

template<class ObjectType , ESPMode Mode>
FORCEINLINE bool TSharedFromThis< ObjectType, Mode >::DoesSharedInstanceExist ( ) const
inline

Checks whether our referenced instance is valid (ie, whether it's safe to call AsShared). If this returns false, it means that your instance has either:

  • Not yet been assigned to a shared pointer (via MakeShared or MakeShareable).
  • Is currently within its constructor (so the shared instance isn't yet available).
  • Is currently within its destructor (so the shared instance is no longer available).

Definition at line 1720 of file SharedPointer.h.

◆ operator=()

Hidden stub assignment operator

Definition at line 1734 of file SharedPointer.h.

◆ SharedThis() [1/2]

template<class ObjectType , ESPMode Mode>
template<class OtherType >
static FORCEINLINE TSharedRef< OtherType const, Mode > TSharedFromThis< ObjectType, Mode >::SharedThis ( const OtherType * ThisPtr)
inlinestaticprotected

Provides access to a shared reference to an object, given the object's 'this' pointer. Uses the 'this' pointer to derive the object's actual type, then casts and returns an appropriately typed shared reference. Intentionally declared 'protected', as should only be called when the 'this' pointer can be passed.

Returns
Returns this object as a shared pointer (const)

Definition at line 1678 of file SharedPointer.h.

◆ SharedThis() [2/2]

template<class ObjectType , ESPMode Mode>
template<class OtherType >
static FORCEINLINE TSharedRef< OtherType, Mode > TSharedFromThis< ObjectType, Mode >::SharedThis ( OtherType * ThisPtr)
inlinestaticprotected

Provides access to a shared reference to an object, given the object's 'this' pointer. Uses the 'this' pointer to derive the object's actual type, then casts and returns an appropriately typed shared reference. Intentionally declared 'protected', as should only be called when the 'this' pointer can be passed.

Returns
Returns this object as a shared pointer

Definition at line 1664 of file SharedPointer.h.

◆ UpdateWeakReferenceInternal() [1/2]

template<class ObjectType , ESPMode Mode>
FORCEINLINE void TSharedFromThis< ObjectType, Mode >::UpdateWeakReferenceInternal ( TSharedPtr< SharedPtrType, Mode > const * InSharedPtr,
OtherType * InObject ) const
inline

INTERNAL USE ONLY – Do not call this method. Freshens the internal weak pointer object using the supplied object pointer along with the authoritative shared reference to the object. Note that until this function is called, calls to AsShared() will result in an empty pointer.

Definition at line 1691 of file SharedPointer.h.

◆ UpdateWeakReferenceInternal() [2/2]

template<class ObjectType , ESPMode Mode>
FORCEINLINE void TSharedFromThis< ObjectType, Mode >::UpdateWeakReferenceInternal ( TSharedRef< SharedRefType, Mode > const * InSharedRef,
OtherType * InObject ) const
inline

INTERNAL USE ONLY – Do not call this method. Freshens the internal weak pointer object using the supplied object pointer along with the authoritative shared reference to the object. Note that until this function is called, calls to AsShared() will result in an empty pointer.

Definition at line 1705 of file SharedPointer.h.

Member Data Documentation

◆ WeakThis

template<class ObjectType , ESPMode Mode>
TWeakPtr< ObjectType, Mode > TSharedFromThis< ObjectType, Mode >::WeakThis
mutableprivate

Weak reference to ourselves. If we're destroyed then this weak pointer reference will be destructed with ourselves. Note this is declared mutable only so that UpdateWeakReferenceInternal() can update it.

Definition at line 1746 of file SharedPointer.h.


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