32 void* InterfacePointer =
nullptr;
82 return ObjectPointer ? InterfacePointer :
nullptr;
91 if ( ObjectPointer ==
nullptr )
119 Collector.AddReferencedObject(ObjectPointer);
137template <
typename InInterfaceType>
159 UE_REQUIRES(std::is_convertible_v<U, UObjectType*>)
167 if constexpr (std::is_base_of<InInterfaceType, std::remove_pointer_t<std::remove_reference_t<U>>>::value)
186 UE_REQUIRES(std::is_convertible_v<OtherInterfaceType*, InInterfaceType*>)
199 template <
typename ObjectType>
205 if constexpr (std::is_base_of<InInterfaceType, ObjectType>::value)
239 UE_REQUIRES(std::is_convertible_v<U, UObjectType*>)
252 UE_REQUIRES(std::is_convertible_v<OtherInterfaceType*, InInterfaceType*>)
263 template <
typename ObjectType>
275 UE_REQUIRES(std::is_convertible_v<OtherInterface*, InInterfaceType*>)
283 UE_REQUIRES(std::is_convertible_v<OtherInterface*, InInterfaceType*>)
383 return Interface.Serialize(Ar, InInterfaceType::UClassType::StaticClass());
387template <
typename InterfaceType>
typename TCopyQualifiersFromTo< From, To >::Type TCopyQualifiersFromTo_T
Definition CopyQualifiersFromTo.h:17
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
T * ToRawPtr(const TObjectPtr< T > &Ptr)
Definition ObjectPtr.h:1000
const bool
Definition NetworkReplayStreaming.h:178
#define UE_REQUIRES(...)
Definition Requires.h:86
UEBinkAudioDecodeInterface * Interface
Definition binka_ue_decode_test.cpp:24
Definition Archive.h:1208
Definition UObjectGlobals.h:2492
Definition ScriptInterface.h:22
UE_FORCEINLINE_HINT void SetInterface(void *InInterfacePointer)
Definition ScriptInterface.h:100
UE_FORCEINLINE_HINT void * GetInterface() const
Definition ScriptInterface.h:78
void SetObject(UObject *InObjectPointer)
Definition ScriptInterface.h:88
UE_FORCEINLINE_HINT bool operator!=(const FScriptInterface &Other) const
Definition ScriptInterface.h:112
UE_FORCEINLINE_HINT bool operator==(const FScriptInterface &Other) const
Definition ScriptInterface.h:108
friend uint32 GetTypeHash(const FScriptInterface &Instance)
Definition ScriptInterface.h:122
FScriptInterface()=default
FScriptInterface(const FScriptInterface &)=default
UE_FORCEINLINE_HINT UObject * GetObject() const
Definition ScriptInterface.h:62
FScriptInterface(UObject *InObjectPointer, void *InInterfacePointer)
Definition ScriptInterface.h:49
FScriptInterface & operator=(const FScriptInterface &)=default
void AddReferencedObjects(FReferenceCollector &Collector)
Definition ScriptInterface.h:117
UE_FORCEINLINE_HINT TObjectPtr< UObject > & GetObjectRef()
Definition ScriptInterface.h:70
Definition ScriptInterface.h:139
UE_FORCEINLINE_HINT void SetInterface(InInterfaceType *InInterfacePointer)
Definition ScriptInterface.h:343
UE_FORCEINLINE_HINT InInterfaceType & operator*() const
Definition ScriptInterface.h:327
TScriptInterface & operator=(U &&Source)
Definition ScriptInterface.h:241
UE_FORCEINLINE_HINT bool operator==(TYPE_OF_NULLPTR) const
Definition ScriptInterface.h:305
UE_FORCEINLINE_HINT bool operator!=(TYPE_OF_NULLPTR) const
Definition ScriptInterface.h:309
TScriptInterface & operator=(const TScriptInterface< OtherInterfaceType > &Other)
Definition ScriptInterface.h:254
UE_FORCEINLINE_HINT InInterfaceType * GetInterface() const
Definition ScriptInterface.h:335
TScriptInterface(TObjectPtr< ObjectType > SourceObject)
Definition ScriptInterface.h:200
TScriptInterface(const TScriptInterface &)=default
InInterfaceType InterfaceType
Definition ScriptInterface.h:141
TScriptInterface(const TScriptInterface< OtherInterfaceType > &Other)
Definition ScriptInterface.h:188
UE_FORCEINLINE_HINT InInterfaceType * operator->() const
Definition ScriptInterface.h:317
UE_FORCEINLINE_HINT UObjectType * GetObject() const
Definition ScriptInterface.h:351
TCopyQualifiersFromTo_T< InterfaceType, UObject > UObjectType
Definition ScriptInterface.h:142
UE_FORCEINLINE_HINT bool operator!=(const OtherInterface *Other) const
Definition ScriptInterface.h:285
TScriptInterface & operator=(TObjectPtr< ObjectType > SourceObject)
Definition ScriptInterface.h:264
UE_FORCEINLINE_HINT bool operator!=(const TScriptInterface &Other) const
Definition ScriptInterface.h:297
TScriptInterface & operator=(const TScriptInterface &)=default
TScriptInterface(TYPE_OF_NULLPTR)
Definition ScriptInterface.h:152
TScriptInterface(U &&Source)
Definition ScriptInterface.h:161
UE_FORCEINLINE_HINT bool operator==(const OtherInterface *Other) const
Definition ScriptInterface.h:277
UE_FORCEINLINE_HINT void SetObject(UObjectType *InObjectPointer)
Definition ScriptInterface.h:367
friend FArchive & operator<<(FArchive &Ar, TScriptInterface &Interface)
Definition ScriptInterface.h:381
TScriptInterface()=default
UE_FORCEINLINE_HINT bool operator==(const TScriptInterface &Other) const
Definition ScriptInterface.h:293
TScriptInterface & operator=(TYPE_OF_NULLPTR)
Definition ScriptInterface.h:228
UE_FORCEINLINE_HINT TObjectPtr< UObjectType > & GetObjectRef()
Definition ScriptInterface.h:359
Definition UnrealTypeTraits.h:267
Definition UnrealTypeTraits.h:283
Definition IsPODType.h:12
@ Value
Definition IsPODType.h:13
Definition UnrealTypeTraits.h:172
Definition ObjectPtr.h:488
FORCEINLINE T * Get() const
Definition ObjectPtr.h:664