Ark Server API (ASA) - Wiki
Loading...
Searching...
No Matches
TMulticastDelegate< void(ParamTypes...), UserPolicy > Class Template Reference
+ Inheritance diagram for TMulticastDelegate< void(ParamTypes...), UserPolicy >:
+ Collaboration diagram for TMulticastDelegate< void(ParamTypes...), UserPolicy >:

Public Types

using FDelegate = TDelegate<void(ParamTypes...), UserPolicy>
 
using FDelegate = TDelegate<void(ParamTypes...), UserPolicy>
 

Public Member Functions

FDelegateHandle Add (FDelegate &&InNewDelegate)
 
FDelegateHandle Add (const FDelegate &InNewDelegate)
 
template<typename... VarTypes>
FDelegateHandle AddStatic (typename TBaseStaticDelegateInstance< void(ParamTypes...), UserPolicy, std::decay_t< VarTypes >... >::FFuncPtr InFunc, VarTypes &&... Vars)
 
template<typename FunctorType , typename... VarTypes>
FDelegateHandle AddLambda (FunctorType &&InFunctor, VarTypes &&... Vars)
 
template<typename UserClass , typename FunctorType , typename... VarTypes>
FDelegateHandle AddWeakLambda (UserClass *InUserObject, FunctorType &&InFunctor, VarTypes &&... Vars)
 
template<typename UserClass , typename... VarTypes>
FDelegateHandle AddRaw (UserClass *InUserObject, typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
 
template<typename UserClass , typename... VarTypes>
FDelegateHandle AddRaw (const UserClass *InUserObject, typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
 
template<typename UserClass , ESPMode Mode, typename... VarTypes>
FDelegateHandle AddSP (const TSharedRef< UserClass, Mode > &InUserObjectRef, typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
 
template<typename UserClass , ESPMode Mode, typename... VarTypes>
FDelegateHandle AddSP (const TSharedRef< UserClass, Mode > &InUserObjectRef, typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
 
template<typename UserClass , typename... VarTypes>
FDelegateHandle AddSP (UserClass *InUserObject, typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
 
template<typename UserClass , typename... VarTypes>
FDelegateHandle AddSP (const UserClass *InUserObject, typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
 
template<typename UserClass , typename... VarTypes>
FDelegateHandle AddThreadSafeSP (const TSharedRef< UserClass, ESPMode::ThreadSafe > &InUserObjectRef, typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
 
template<typename UserClass , typename... VarTypes>
FDelegateHandle AddThreadSafeSP (const TSharedRef< UserClass, ESPMode::ThreadSafe > &InUserObjectRef, typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
 
template<typename UserClass , typename... VarTypes>
FDelegateHandle AddThreadSafeSP (UserClass *InUserObject, typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
 
template<typename UserClass , typename... VarTypes>
FDelegateHandle AddThreadSafeSP (const UserClass *InUserObject, typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
 
template<typename UObjectTemplate , typename... VarTypes>
FDelegateHandle AddUFunction (UObjectTemplate *InUserObject, const FName &InFunctionName, VarTypes &&... Vars)
 
template<typename UObjectTemplate , typename... VarTypes>
FDelegateHandle AddUFunction (TObjectPtr< UObjectTemplate > InUserObject, const FName &InFunctionName, VarTypes &&... Vars)
 
template<typename UserClass , typename... VarTypes>
FDelegateHandle AddUObject (UserClass *InUserObject, typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
 
template<typename UserClass , typename... VarTypes>
FDelegateHandle AddUObject (const UserClass *InUserObject, typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
 
template<typename UserClass , typename... VarTypes>
FDelegateHandle AddUObject (TObjectPtr< UserClass > InUserObject, typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
 
template<typename UserClass , typename... VarTypes>
FDelegateHandle AddUObject (TObjectPtr< UserClass > InUserObject, typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
 
bool Remove (FDelegateHandle Handle)
 
 TMulticastDelegate ()
 
 TMulticastDelegate (const TMulticastDelegate &Other)
 
TMulticastDelegateoperator= (const TMulticastDelegate &Other)
 
void Broadcast (ParamTypes... Params) const
 
FDelegateHandle Add (FDelegate &&InNewDelegate)
 
FDelegateHandle Add (const FDelegate &InNewDelegate)
 
template<typename... VarTypes>
FDelegateHandle AddStatic (typename TBaseStaticDelegateInstance< void(ParamTypes...), UserPolicy, std::decay_t< VarTypes >... >::FFuncPtr InFunc, VarTypes &&... Vars)
 
template<typename FunctorType , typename... VarTypes>
FDelegateHandle AddLambda (FunctorType &&InFunctor, VarTypes &&... Vars)
 
template<typename UserClass , typename FunctorType , typename... VarTypes>
FDelegateHandle AddWeakLambda (UserClass *InUserObject, FunctorType &&InFunctor, VarTypes &&... Vars)
 
template<typename UserClass , typename... VarTypes>
FDelegateHandle AddRaw (UserClass *InUserObject, typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
 
template<typename UserClass , typename... VarTypes>
FDelegateHandle AddRaw (const UserClass *InUserObject, typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
 
template<typename UserClass , ESPMode Mode, typename... VarTypes>
FDelegateHandle AddSP (const TSharedRef< UserClass, Mode > &InUserObjectRef, typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
 
template<typename UserClass , ESPMode Mode, typename... VarTypes>
FDelegateHandle AddSP (const TSharedRef< UserClass, Mode > &InUserObjectRef, typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
 
template<typename UserClass , typename... VarTypes>
FDelegateHandle AddSP (UserClass *InUserObject, typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
 
template<typename UserClass , typename... VarTypes>
FDelegateHandle AddSP (const UserClass *InUserObject, typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
 
template<typename UserClass , typename... VarTypes>
FDelegateHandle AddThreadSafeSP (const TSharedRef< UserClass, ESPMode::ThreadSafe > &InUserObjectRef, typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
 
template<typename UserClass , typename... VarTypes>
FDelegateHandle AddThreadSafeSP (const TSharedRef< UserClass, ESPMode::ThreadSafe > &InUserObjectRef, typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
 
template<typename UserClass , typename... VarTypes>
FDelegateHandle AddThreadSafeSP (UserClass *InUserObject, typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
 
template<typename UserClass , typename... VarTypes>
FDelegateHandle AddThreadSafeSP (const UserClass *InUserObject, typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
 
template<typename UObjectTemplate , typename... VarTypes>
FDelegateHandle AddUFunction (UObjectTemplate *InUserObject, const FName &InFunctionName, VarTypes &&... Vars)
 
template<typename UObjectTemplate , typename... VarTypes>
FDelegateHandle AddUFunction (TObjectPtr< UObjectTemplate > InUserObject, const FName &InFunctionName, VarTypes &&... Vars)
 
template<typename UserClass , typename... VarTypes>
FDelegateHandle AddUObject (UserClass *InUserObject, typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
 
template<typename UserClass , typename... VarTypes>
FDelegateHandle AddUObject (const UserClass *InUserObject, typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
 
template<typename UserClass , typename... VarTypes>
FDelegateHandle AddUObject (TObjectPtr< UserClass > InUserObject, typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
 
template<typename UserClass , typename... VarTypes>
FDelegateHandle AddUObject (TObjectPtr< UserClass > InUserObject, typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
 
bool Remove (FDelegateHandle Handle)
 
 TMulticastDelegate ()
 
 TMulticastDelegate (const TMulticastDelegate &Other)
 
TMulticastDelegateoperator= (const TMulticastDelegate &Other)
 
void Broadcast (ParamTypes... Params) const
 

Private Types

using Super = typename UserPolicy::FMulticastDelegateExtras
 
using InvocationListType = typename Super::InvocationListType
 
using DelegateInstanceInterfaceType = IBaseDelegateInstance<void (ParamTypes...), UserPolicy>
 
using Super = typename UserPolicy::FMulticastDelegateExtras
 
using InvocationListType = typename Super::InvocationListType
 
using DelegateInstanceInterfaceType = IBaseDelegateInstance<void (ParamTypes...), UserPolicy>
 

Detailed Description

template<typename... ParamTypes, typename UserPolicy>
class TMulticastDelegate< void(ParamTypes...), UserPolicy >

Definition at line 690 of file DelegateSignatureImpl.inl.

Member Typedef Documentation

◆ DelegateInstanceInterfaceType [1/2]

template<typename... ParamTypes, typename UserPolicy >
using TMulticastDelegate< void(ParamTypes...), UserPolicy >::DelegateInstanceInterfaceType = IBaseDelegateInstance<void (ParamTypes...), UserPolicy>
private

Definition at line 694 of file DelegateSignatureImpl.inl.

◆ DelegateInstanceInterfaceType [2/2]

template<typename... ParamTypes, typename UserPolicy >
using TMulticastDelegate< void(ParamTypes...), UserPolicy >::DelegateInstanceInterfaceType = IBaseDelegateInstance<void (ParamTypes...), UserPolicy>
private

Definition at line 694 of file DelegateSignatureImpl.inl.

◆ FDelegate [1/2]

template<typename... ParamTypes, typename UserPolicy >
using TMulticastDelegate< void(ParamTypes...), UserPolicy >::FDelegate = TDelegate<void(ParamTypes...), UserPolicy>

Type definition for unicast delegate classes whose delegate instances are compatible with this delegate.

Definition at line 698 of file DelegateSignatureImpl.inl.

◆ FDelegate [2/2]

template<typename... ParamTypes, typename UserPolicy >
using TMulticastDelegate< void(ParamTypes...), UserPolicy >::FDelegate = TDelegate<void(ParamTypes...), UserPolicy>

Type definition for unicast delegate classes whose delegate instances are compatible with this delegate.

Definition at line 698 of file DelegateSignatureImpl.inl.

◆ InvocationListType [1/2]

template<typename... ParamTypes, typename UserPolicy >
using TMulticastDelegate< void(ParamTypes...), UserPolicy >::InvocationListType = typename Super::InvocationListType
private

Definition at line 693 of file DelegateSignatureImpl.inl.

◆ InvocationListType [2/2]

template<typename... ParamTypes, typename UserPolicy >
using TMulticastDelegate< void(ParamTypes...), UserPolicy >::InvocationListType = typename Super::InvocationListType
private

Definition at line 693 of file DelegateSignatureImpl.inl.

◆ Super [1/2]

template<typename... ParamTypes, typename UserPolicy >
using TMulticastDelegate< void(ParamTypes...), UserPolicy >::Super = typename UserPolicy::FMulticastDelegateExtras
private

Definition at line 692 of file DelegateSignatureImpl.inl.

◆ Super [2/2]

template<typename... ParamTypes, typename UserPolicy >
using TMulticastDelegate< void(ParamTypes...), UserPolicy >::Super = typename UserPolicy::FMulticastDelegateExtras
private

Definition at line 692 of file DelegateSignatureImpl.inl.

Constructor & Destructor Documentation

◆ TMulticastDelegate() [1/4]

template<typename... ParamTypes, typename UserPolicy >
TMulticastDelegate< void(ParamTypes...), UserPolicy >::TMulticastDelegate ( )
inline

Hidden default constructor.

Definition at line 954 of file DelegateSignatureImpl.inl.

◆ TMulticastDelegate() [2/4]

template<typename... ParamTypes, typename UserPolicy >
TMulticastDelegate< void(ParamTypes...), UserPolicy >::TMulticastDelegate ( const TMulticastDelegate< void(ParamTypes...), UserPolicy > & Other)
inline

Hidden copy constructor (for proper deep copies).

Parameters
OtherThe multicast delegate to copy from.

Definition at line 961 of file DelegateSignatureImpl.inl.

◆ TMulticastDelegate() [3/4]

template<typename... ParamTypes, typename UserPolicy >
TMulticastDelegate< void(ParamTypes...), UserPolicy >::TMulticastDelegate ( )
inline

Hidden default constructor.

Definition at line 954 of file DelegateSignatureImpl.inl.

◆ TMulticastDelegate() [4/4]

template<typename... ParamTypes, typename UserPolicy >
TMulticastDelegate< void(ParamTypes...), UserPolicy >::TMulticastDelegate ( const TMulticastDelegate< void(ParamTypes...), UserPolicy > & Other)
inline

Hidden copy constructor (for proper deep copies).

Parameters
OtherThe multicast delegate to copy from.

Definition at line 961 of file DelegateSignatureImpl.inl.

Member Function Documentation

◆ Add() [1/4]

template<typename... ParamTypes, typename UserPolicy >
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::Add ( const FDelegate & InNewDelegate)
inline

Adds a delegate instance to this multicast delegate's invocation list.

Parameters
DelegateThe delegate to add.

Definition at line 730 of file DelegateSignatureImpl.inl.

◆ Add() [2/4]

template<typename... ParamTypes, typename UserPolicy >
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::Add ( const FDelegate & InNewDelegate)
inline

Adds a delegate instance to this multicast delegate's invocation list.

Parameters
DelegateThe delegate to add.

Definition at line 730 of file DelegateSignatureImpl.inl.

◆ Add() [3/4]

template<typename... ParamTypes, typename UserPolicy >
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::Add ( FDelegate && InNewDelegate)
inline

Adds a delegate instance to this multicast delegate's invocation list.

Parameters
DelegateThe delegate to add.

Definition at line 720 of file DelegateSignatureImpl.inl.

◆ Add() [4/4]

template<typename... ParamTypes, typename UserPolicy >
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::Add ( FDelegate && InNewDelegate)
inline

Adds a delegate instance to this multicast delegate's invocation list.

Parameters
DelegateThe delegate to add.

Definition at line 720 of file DelegateSignatureImpl.inl.

◆ AddLambda() [1/2]

template<typename... ParamTypes, typename UserPolicy >
template<typename FunctorType , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddLambda ( FunctorType && InFunctor,
VarTypes &&... Vars )
inline

Adds a C++ lambda delegate technically this works for any functor types, but lambdas are the primary use case

Parameters
InFunctorFunctor (e.g. Lambda)

Definition at line 753 of file DelegateSignatureImpl.inl.

◆ AddLambda() [2/2]

template<typename... ParamTypes, typename UserPolicy >
template<typename FunctorType , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddLambda ( FunctorType && InFunctor,
VarTypes &&... Vars )
inline

Adds a C++ lambda delegate technically this works for any functor types, but lambdas are the primary use case

Parameters
InFunctorFunctor (e.g. Lambda)

Definition at line 753 of file DelegateSignatureImpl.inl.

◆ AddRaw() [1/4]

template<typename... ParamTypes, typename UserPolicy >
template<typename UserClass , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddRaw ( const UserClass * InUserObject,
typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc,
VarTypes &&... Vars )
inline

Definition at line 788 of file DelegateSignatureImpl.inl.

◆ AddRaw() [2/4]

template<typename... ParamTypes, typename UserPolicy >
template<typename UserClass , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddRaw ( const UserClass * InUserObject,
typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc,
VarTypes &&... Vars )
inline

Definition at line 788 of file DelegateSignatureImpl.inl.

◆ AddRaw() [3/4]

template<typename... ParamTypes, typename UserPolicy >
template<typename UserClass , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddRaw ( UserClass * InUserObject,
typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc,
VarTypes &&... Vars )
inline

Adds a raw C++ pointer delegate.

Raw pointer doesn't use any sort of reference, so may be unsafe to call if the object was deleted out from underneath your delegate. Be careful when calling Execute()!

Parameters
InUserObjectUser object to bind to
InFuncClass method function address

Definition at line 781 of file DelegateSignatureImpl.inl.

◆ AddRaw() [4/4]

template<typename... ParamTypes, typename UserPolicy >
template<typename UserClass , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddRaw ( UserClass * InUserObject,
typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc,
VarTypes &&... Vars )
inline

Adds a raw C++ pointer delegate.

Raw pointer doesn't use any sort of reference, so may be unsafe to call if the object was deleted out from underneath your delegate. Be careful when calling Execute()!

Parameters
InUserObjectUser object to bind to
InFuncClass method function address

Definition at line 781 of file DelegateSignatureImpl.inl.

◆ AddSP() [1/8]

template<typename... ParamTypes, typename UserPolicy >
template<typename UserClass , ESPMode Mode, typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddSP ( const TSharedRef< UserClass, Mode > & InUserObjectRef,
typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc,
VarTypes &&... Vars )
inline

Adds a shared pointer-based member function delegate.

Shared pointer delegates keep a weak reference to your object.

Parameters
InUserObjectRefUser object to bind to
InFuncClass method function address

Definition at line 802 of file DelegateSignatureImpl.inl.

◆ AddSP() [2/8]

template<typename... ParamTypes, typename UserPolicy >
template<typename UserClass , ESPMode Mode, typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddSP ( const TSharedRef< UserClass, Mode > & InUserObjectRef,
typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc,
VarTypes &&... Vars )
inline

Adds a shared pointer-based member function delegate.

Shared pointer delegates keep a weak reference to your object.

Parameters
InUserObjectRefUser object to bind to
InFuncClass method function address

Definition at line 802 of file DelegateSignatureImpl.inl.

◆ AddSP() [3/8]

template<typename... ParamTypes, typename UserPolicy >
template<typename UserClass , ESPMode Mode, typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddSP ( const TSharedRef< UserClass, Mode > & InUserObjectRef,
typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc,
VarTypes &&... Vars )
inline

Definition at line 809 of file DelegateSignatureImpl.inl.

◆ AddSP() [4/8]

template<typename... ParamTypes, typename UserPolicy >
template<typename UserClass , ESPMode Mode, typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddSP ( const TSharedRef< UserClass, Mode > & InUserObjectRef,
typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc,
VarTypes &&... Vars )
inline

Definition at line 809 of file DelegateSignatureImpl.inl.

◆ AddSP() [5/8]

template<typename... ParamTypes, typename UserPolicy >
template<typename UserClass , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddSP ( const UserClass * InUserObject,
typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc,
VarTypes &&... Vars )
inline

Definition at line 830 of file DelegateSignatureImpl.inl.

◆ AddSP() [6/8]

template<typename... ParamTypes, typename UserPolicy >
template<typename UserClass , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddSP ( const UserClass * InUserObject,
typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc,
VarTypes &&... Vars )
inline

Definition at line 830 of file DelegateSignatureImpl.inl.

◆ AddSP() [7/8]

template<typename... ParamTypes, typename UserPolicy >
template<typename UserClass , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddSP ( UserClass * InUserObject,
typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc,
VarTypes &&... Vars )
inline

Adds a shared pointer-based member function delegate.

Shared pointer delegates keep a weak reference to your object.

Parameters
InUserObjectUser object to bind to
InFuncClass method function address

Definition at line 823 of file DelegateSignatureImpl.inl.

◆ AddSP() [8/8]

template<typename... ParamTypes, typename UserPolicy >
template<typename UserClass , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddSP ( UserClass * InUserObject,
typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc,
VarTypes &&... Vars )
inline

Adds a shared pointer-based member function delegate.

Shared pointer delegates keep a weak reference to your object.

Parameters
InUserObjectUser object to bind to
InFuncClass method function address

Definition at line 823 of file DelegateSignatureImpl.inl.

◆ AddStatic() [1/2]

template<typename... ParamTypes, typename UserPolicy >
template<typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddStatic ( typename TBaseStaticDelegateInstance< void(ParamTypes...), UserPolicy, std::decay_t< VarTypes >... >::FFuncPtr InFunc,
VarTypes &&... Vars )
inline

Adds a raw C++ pointer global function delegate

Parameters
InFuncFunction pointer

Definition at line 741 of file DelegateSignatureImpl.inl.

◆ AddStatic() [2/2]

template<typename... ParamTypes, typename UserPolicy >
template<typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddStatic ( typename TBaseStaticDelegateInstance< void(ParamTypes...), UserPolicy, std::decay_t< VarTypes >... >::FFuncPtr InFunc,
VarTypes &&... Vars )
inline

Adds a raw C++ pointer global function delegate

Parameters
InFuncFunction pointer

Definition at line 741 of file DelegateSignatureImpl.inl.

◆ AddThreadSafeSP() [1/8]

template<typename... ParamTypes, typename UserPolicy >
template<typename UserClass , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddThreadSafeSP ( const TSharedRef< UserClass, ESPMode::ThreadSafe > & InUserObjectRef,
typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc,
VarTypes &&... Vars )
inline

Adds a shared pointer-based (thread-safe) member function delegate. Shared pointer delegates keep a weak reference to your object.

Parameters
InUserObjectRefUser object to bind to
InFuncClass method function address

Note: This function is redundant, but is retained for backwards compatibility. AddSP() works in both thread-safe and not-thread-safe modes and should be preferred.

Definition at line 844 of file DelegateSignatureImpl.inl.

◆ AddThreadSafeSP() [2/8]

template<typename... ParamTypes, typename UserPolicy >
template<typename UserClass , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddThreadSafeSP ( const TSharedRef< UserClass, ESPMode::ThreadSafe > & InUserObjectRef,
typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc,
VarTypes &&... Vars )
inline

Adds a shared pointer-based (thread-safe) member function delegate. Shared pointer delegates keep a weak reference to your object.

Parameters
InUserObjectRefUser object to bind to
InFuncClass method function address

Note: This function is redundant, but is retained for backwards compatibility. AddSP() works in both thread-safe and not-thread-safe modes and should be preferred.

Definition at line 844 of file DelegateSignatureImpl.inl.

◆ AddThreadSafeSP() [3/8]

template<typename... ParamTypes, typename UserPolicy >
template<typename UserClass , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddThreadSafeSP ( const TSharedRef< UserClass, ESPMode::ThreadSafe > & InUserObjectRef,
typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc,
VarTypes &&... Vars )
inline

Definition at line 851 of file DelegateSignatureImpl.inl.

◆ AddThreadSafeSP() [4/8]

template<typename... ParamTypes, typename UserPolicy >
template<typename UserClass , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddThreadSafeSP ( const TSharedRef< UserClass, ESPMode::ThreadSafe > & InUserObjectRef,
typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc,
VarTypes &&... Vars )
inline

Definition at line 851 of file DelegateSignatureImpl.inl.

◆ AddThreadSafeSP() [5/8]

template<typename... ParamTypes, typename UserPolicy >
template<typename UserClass , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddThreadSafeSP ( const UserClass * InUserObject,
typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc,
VarTypes &&... Vars )
inline

Definition at line 874 of file DelegateSignatureImpl.inl.

◆ AddThreadSafeSP() [6/8]

template<typename... ParamTypes, typename UserPolicy >
template<typename UserClass , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddThreadSafeSP ( const UserClass * InUserObject,
typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc,
VarTypes &&... Vars )
inline

Definition at line 874 of file DelegateSignatureImpl.inl.

◆ AddThreadSafeSP() [7/8]

template<typename... ParamTypes, typename UserPolicy >
template<typename UserClass , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddThreadSafeSP ( UserClass * InUserObject,
typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc,
VarTypes &&... Vars )
inline

Adds a shared pointer-based (thread-safe) member function delegate.

Shared pointer delegates keep a weak reference to your object.

Parameters
InUserObjectUser object to bind to
InFuncClass method function address

Note: This function is redundant, but is retained for backwards compatibility. AddSP() works in both thread-safe and not-thread-safe modes and should be preferred.

Definition at line 867 of file DelegateSignatureImpl.inl.

◆ AddThreadSafeSP() [8/8]

template<typename... ParamTypes, typename UserPolicy >
template<typename UserClass , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddThreadSafeSP ( UserClass * InUserObject,
typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc,
VarTypes &&... Vars )
inline

Adds a shared pointer-based (thread-safe) member function delegate.

Shared pointer delegates keep a weak reference to your object.

Parameters
InUserObjectUser object to bind to
InFuncClass method function address

Note: This function is redundant, but is retained for backwards compatibility. AddSP() works in both thread-safe and not-thread-safe modes and should be preferred.

Definition at line 867 of file DelegateSignatureImpl.inl.

◆ AddUFunction() [1/4]

template<typename... ParamTypes, typename UserPolicy >
template<typename UObjectTemplate , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddUFunction ( TObjectPtr< UObjectTemplate > InUserObject,
const FName & InFunctionName,
VarTypes &&... Vars )
inline

Definition at line 893 of file DelegateSignatureImpl.inl.

◆ AddUFunction() [2/4]

template<typename... ParamTypes, typename UserPolicy >
template<typename UObjectTemplate , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddUFunction ( TObjectPtr< UObjectTemplate > InUserObject,
const FName & InFunctionName,
VarTypes &&... Vars )
inline

Definition at line 893 of file DelegateSignatureImpl.inl.

◆ AddUFunction() [3/4]

template<typename... ParamTypes, typename UserPolicy >
template<typename UObjectTemplate , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddUFunction ( UObjectTemplate * InUserObject,
const FName & InFunctionName,
VarTypes &&... Vars )
inline

Adds a UFunction-based member function delegate.

UFunction delegates keep a weak reference to your object.

Parameters
InUserObjectUser object to bind to
InFunctionNameClass method function address

Definition at line 888 of file DelegateSignatureImpl.inl.

◆ AddUFunction() [4/4]

template<typename... ParamTypes, typename UserPolicy >
template<typename UObjectTemplate , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddUFunction ( UObjectTemplate * InUserObject,
const FName & InFunctionName,
VarTypes &&... Vars )
inline

Adds a UFunction-based member function delegate.

UFunction delegates keep a weak reference to your object.

Parameters
InUserObjectUser object to bind to
InFunctionNameClass method function address

Definition at line 888 of file DelegateSignatureImpl.inl.

◆ AddUObject() [1/8]

template<typename... ParamTypes, typename UserPolicy >
template<typename UserClass , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddUObject ( const UserClass * InUserObject,
typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc,
VarTypes &&... Vars )
inline

Definition at line 914 of file DelegateSignatureImpl.inl.

◆ AddUObject() [2/8]

template<typename... ParamTypes, typename UserPolicy >
template<typename UserClass , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddUObject ( const UserClass * InUserObject,
typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc,
VarTypes &&... Vars )
inline

Definition at line 914 of file DelegateSignatureImpl.inl.

◆ AddUObject() [3/8]

template<typename... ParamTypes, typename UserPolicy >
template<typename UserClass , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddUObject ( TObjectPtr< UserClass > InUserObject,
typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc,
VarTypes &&... Vars )
inline

Definition at line 919 of file DelegateSignatureImpl.inl.

◆ AddUObject() [4/8]

template<typename... ParamTypes, typename UserPolicy >
template<typename UserClass , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddUObject ( TObjectPtr< UserClass > InUserObject,
typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc,
VarTypes &&... Vars )
inline

Definition at line 919 of file DelegateSignatureImpl.inl.

◆ AddUObject() [5/8]

template<typename... ParamTypes, typename UserPolicy >
template<typename UserClass , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddUObject ( TObjectPtr< UserClass > InUserObject,
typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc,
VarTypes &&... Vars )
inline

Definition at line 926 of file DelegateSignatureImpl.inl.

◆ AddUObject() [6/8]

template<typename... ParamTypes, typename UserPolicy >
template<typename UserClass , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddUObject ( TObjectPtr< UserClass > InUserObject,
typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc,
VarTypes &&... Vars )
inline

Definition at line 926 of file DelegateSignatureImpl.inl.

◆ AddUObject() [7/8]

template<typename... ParamTypes, typename UserPolicy >
template<typename UserClass , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddUObject ( UserClass * InUserObject,
typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc,
VarTypes &&... Vars )
inline

Adds a UObject-based member function delegate.

UObject delegates keep a weak reference to your object.

Parameters
InUserObjectUser object to bind to
InFuncClass method function address

Definition at line 907 of file DelegateSignatureImpl.inl.

◆ AddUObject() [8/8]

template<typename... ParamTypes, typename UserPolicy >
template<typename UserClass , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddUObject ( UserClass * InUserObject,
typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc,
VarTypes &&... Vars )
inline

Adds a UObject-based member function delegate.

UObject delegates keep a weak reference to your object.

Parameters
InUserObjectUser object to bind to
InFuncClass method function address

Definition at line 907 of file DelegateSignatureImpl.inl.

◆ AddWeakLambda() [1/2]

template<typename... ParamTypes, typename UserPolicy >
template<typename UserClass , typename FunctorType , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddWeakLambda ( UserClass * InUserObject,
FunctorType && InFunctor,
VarTypes &&... Vars )
inline

Adds a weak object C++ lambda delegate technically this works for any functor types, but lambdas are the primary use case

Parameters
InUserObjectUser object to bind to
InFunctorFunctor (e.g. Lambda)

Definition at line 766 of file DelegateSignatureImpl.inl.

◆ AddWeakLambda() [2/2]

template<typename... ParamTypes, typename UserPolicy >
template<typename UserClass , typename FunctorType , typename... VarTypes>
FDelegateHandle TMulticastDelegate< void(ParamTypes...), UserPolicy >::AddWeakLambda ( UserClass * InUserObject,
FunctorType && InFunctor,
VarTypes &&... Vars )
inline

Adds a weak object C++ lambda delegate technically this works for any functor types, but lambdas are the primary use case

Parameters
InUserObjectUser object to bind to
InFunctorFunctor (e.g. Lambda)

Definition at line 766 of file DelegateSignatureImpl.inl.

◆ Broadcast() [1/2]

template<typename... ParamTypes, typename UserPolicy >
void TMulticastDelegate< void(ParamTypes...), UserPolicy >::Broadcast ( ParamTypes... Params) const
inline

Broadcasts this delegate to all bound objects, except to those that may have expired.

The constness of this method is a lie, but it allows for broadcasting from const functions.

Definition at line 986 of file DelegateSignatureImpl.inl.

◆ Broadcast() [2/2]

template<typename... ParamTypes, typename UserPolicy >
void TMulticastDelegate< void(ParamTypes...), UserPolicy >::Broadcast ( ParamTypes... Params) const
inline

Broadcasts this delegate to all bound objects, except to those that may have expired.

The constness of this method is a lie, but it allows for broadcasting from const functions.

Definition at line 986 of file DelegateSignatureImpl.inl.

◆ operator=() [1/2]

template<typename... ParamTypes, typename UserPolicy >
TMulticastDelegate & TMulticastDelegate< void(ParamTypes...), UserPolicy >::operator= ( const TMulticastDelegate< void(ParamTypes...), UserPolicy > & Other)
inline

Hidden assignment operator (for proper deep copies).

Parameters
OtherThe delegate to assign from.
Returns
This instance.

Definition at line 972 of file DelegateSignatureImpl.inl.

◆ operator=() [2/2]

template<typename... ParamTypes, typename UserPolicy >
TMulticastDelegate & TMulticastDelegate< void(ParamTypes...), UserPolicy >::operator= ( const TMulticastDelegate< void(ParamTypes...), UserPolicy > & Other)
inline

Hidden assignment operator (for proper deep copies).

Parameters
OtherThe delegate to assign from.
Returns
This instance.

Definition at line 972 of file DelegateSignatureImpl.inl.

◆ Remove() [1/2]

template<typename... ParamTypes, typename UserPolicy >
bool TMulticastDelegate< void(ParamTypes...), UserPolicy >::Remove ( FDelegateHandle Handle)
inline

Removes a delegate instance from this multi-cast delegate's invocation list (performance is O(N)).

Note that the order of the delegate instances may not be preserved!

Parameters
HandleThe handle of the delegate instance to remove.
Returns
true if the delegate was successfully removed.

Definition at line 941 of file DelegateSignatureImpl.inl.

◆ Remove() [2/2]

template<typename... ParamTypes, typename UserPolicy >
bool TMulticastDelegate< void(ParamTypes...), UserPolicy >::Remove ( FDelegateHandle Handle)
inline

Removes a delegate instance from this multi-cast delegate's invocation list (performance is O(N)).

Note that the order of the delegate instances may not be preserved!

Parameters
HandleThe handle of the delegate instance to remove.
Returns
true if the delegate was successfully removed.

Definition at line 941 of file DelegateSignatureImpl.inl.


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