UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IModularFeatures.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreTypes.h"
6#include "Containers/Array.h"
7#include "UObject/NameTypes.h"
9#include "IModularFeature.h"
10
15{
16
17public:
18
25
28 {
29 }
30
31
39 inline bool IsModularFeatureAvailable( const FName Type )
40 {
41 return GetModularFeatureImplementationCount( Type ) > 0;
42 }
43
44
53 template< typename TModularFeature >
54 inline TModularFeature& GetModularFeature( const FName Type )
55 {
56 return static_cast<TModularFeature&>( *GetModularFeatureImplementation( Type, 0 ) );
57 }
58
59
67 template< typename TModularFeature >
78
79
80public:
81
83 virtual void LockModularFeatureList() = 0;
84
86 virtual void UnlockModularFeatureList() = 0;
87
99
108
118 virtual class IModularFeature* GetModularFeatureImplementation( const FName Type, const int32 Index ) = 0;
119
126 virtual void RegisterModularFeature( const FName Type, class IModularFeature* ModularFeature ) = 0;
127
128
135 virtual void UnregisterModularFeature( const FName Type, class IModularFeature* ModularFeature ) = 0;
136
144
152};
153
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition NameTypes.h:617
Definition IModularFeature.h:12
Definition IModularFeatures.h:15
virtual void RegisterModularFeature(const FName Type, class IModularFeature *ModularFeature)=0
static CORE_API IModularFeatures & Get()
Definition ModularFeatures.cpp:9
virtual void UnregisterModularFeature(const FName Type, class IModularFeature *ModularFeature)=0
DECLARE_EVENT_TwoParams(IModularFeatures, FOnModularFeatureRegistered, const FName &, class IModularFeature *)
virtual FOnModularFeatureRegistered & OnModularFeatureRegistered()=0
virtual void UnlockModularFeatureList()=0
TArray< TModularFeature * > GetModularFeatureImplementations(const FName Type)
Definition IModularFeatures.h:68
bool IsModularFeatureAvailable(const FName Type)
Definition IModularFeatures.h:39
virtual void LockModularFeatureList()=0
TModularFeature & GetModularFeature(const FName Type)
Definition IModularFeatures.h:54
DECLARE_EVENT_TwoParams(IModularFeatures, FOnModularFeatureUnregistered, const FName &, class IModularFeature *)
virtual class IModularFeature * GetModularFeatureImplementation(const FName Type, const int32 Index)=0
virtual int32 GetModularFeatureImplementationCount(const FName Type)=0
virtual ~IModularFeatures()
Definition IModularFeatures.h:27
virtual FOnModularFeatureUnregistered & OnModularFeatureUnregistered()=0
Definition Array.h:670
U16 Index
Definition radfft.cpp:71
Definition IModularFeatures.h:89
~FScopedLockModularFeatureList()
Definition IModularFeatures.h:91
FScopedLockModularFeatureList(const FScopedLockModularFeatureList &)=delete
FScopedLockModularFeatureList & operator=(const FScopedLockModularFeatureList &)=delete
FScopedLockModularFeatureList()
Definition IModularFeatures.h:90
FScopedLockModularFeatureList(FScopedLockModularFeatureList &&)=delete