UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FSubsystemCollectionBase Class Reference

#include <SubsystemCollection.h>

+ Inheritance diagram for FSubsystemCollectionBase:

Classes

struct  FSubsystemArray
 

Public Member Functions

ENGINE_API void Initialize (UObject *NewOuter)
 
ENGINE_API void Deinitialize ()
 
bool IsInitialized () const
 
const UClassGetBaseType () const
 
ENGINE_API USubsystemInitializeDependency (TSubclassOf< USubsystem > SubsystemClass)
 
template<typename TSubsystemClass >
TSubsystemClassInitializeDependency ()
 
ENGINE_API void AddReferencedObjects (UObject *Referencer, FReferenceCollector &Collector)
 

Static Public Member Functions

static ENGINE_API void ActivateExternalSubsystem (UClass *SubsystemClass)
 
static ENGINE_API void DeactivateExternalSubsystem (UClass *SubsystemClass)
 

Protected Member Functions

ENGINE_API FSubsystemCollectionBase (UClass *InBaseType)
 
ENGINE_API FSubsystemCollectionBase ()
 
virtual ENGINE_API ~FSubsystemCollectionBase ()
 
ENGINE_API USubsystemGetSubsystemInternal (UClass *SubsystemClass) const
 
ENGINE_API FSubsystemArrayFindAndPopulateSubsystemArrayInternal (UClass *SubsystemClass) const
 
ENGINE_API TArray< USubsystem * > GetSubsystemArrayCopy (UClass *SubsystemClass) const
 
ENGINE_API void ForEachSubsystem (TFunctionRef< void(USubsystem *)> Operation) const
 
ENGINE_API void ForEachSubsystemOfClass (UClass *SubsystemClass, TFunctionRef< void(USubsystem *)> Operation) const
 
ENGINE_API void RemoveSubsystemsInPackages (TConstArrayView< UPackage * > Packages)
 

Friends

class FSubsystemModuleWatcher
 

Constructor & Destructor Documentation

◆ FSubsystemCollectionBase() [1/2]

FSubsystemCollectionBase::FSubsystemCollectionBase ( UClass InBaseType)
protected

protected constructor - for use by the template only(FSubsystemCollection<TBaseType>)

◆ FSubsystemCollectionBase() [2/2]

FSubsystemCollectionBase::FSubsystemCollectionBase ( )
protected

protected constructor - Use the FSubsystemCollection<TBaseType> class

◆ ~FSubsystemCollectionBase()

FSubsystemCollectionBase::~FSubsystemCollectionBase ( )
protectedvirtual

destructor will be called from virtual ~FGCObject in GC cleanup

Member Function Documentation

◆ ActivateExternalSubsystem()

void FSubsystemCollectionBase::ActivateExternalSubsystem ( UClass SubsystemClass)
static

Registers and adds instances of the specified Subsystem class to all existing SubsystemCollections of the correct type. Should be used by specific subsystems in plug ins when plugin is activated.

◆ AddReferencedObjects()

void FSubsystemCollectionBase::AddReferencedObjects ( UObject Referencer,
FReferenceCollector Collector 
)

Collect references held by this collection

◆ DeactivateExternalSubsystem()

void FSubsystemCollectionBase::DeactivateExternalSubsystem ( UClass SubsystemClass)
static

Unregisters and removed instances of the specified Subsystem class from all existing SubsystemCollections of the correct type. Should be used by specific subsystems in plug ins when plugin is deactivated.

◆ Deinitialize()

void FSubsystemCollectionBase::Deinitialize ( )

◆ FindAndPopulateSubsystemArrayInternal()

FSubsystemCollectionBase::FSubsystemArray & FSubsystemCollectionBase::FindAndPopulateSubsystemArrayInternal ( UClass SubsystemClass) const
protected

◆ ForEachSubsystem()

void FSubsystemCollectionBase::ForEachSubsystem ( TFunctionRef< void(USubsystem *)>  Operation) const
protected

Run the given operation on each registered subsystem. Any new subsystems registered during this operation will also be visited. It is not permitted to remove subsystems (e.g. by calling DeactivateExternalSubsystem) during this operation.

◆ ForEachSubsystemOfClass()

void FSubsystemCollectionBase::ForEachSubsystemOfClass ( UClass SubsystemClass,
TFunctionRef< void(USubsystem *)>  Operation 
) const
protected

Perform an operation on all subsystems that derive from the given class

◆ GetBaseType()

const UClass * FSubsystemCollectionBase::GetBaseType ( ) const
inline

Get the collection BaseType

◆ GetSubsystemArrayCopy()

TArray< USubsystem * > FSubsystemCollectionBase::GetSubsystemArrayCopy ( UClass SubsystemClass) const
protected

Get a list of Subsystems by type

◆ GetSubsystemInternal()

USubsystem * FSubsystemCollectionBase::GetSubsystemInternal ( UClass SubsystemClass) const
protected

Get a Subsystem by type

◆ Initialize()

void FSubsystemCollectionBase::Initialize ( UObject NewOuter)

Initialize the collection of systems, systems will be created and initialized

◆ InitializeDependency() [1/2]

TSubsystemClass * FSubsystemCollectionBase::InitializeDependency ( )
inline

Only call from Initialize() of Systems to ensure initialization order Note: Dependencies only work within a collection

◆ InitializeDependency() [2/2]

USubsystem * FSubsystemCollectionBase::InitializeDependency ( TSubclassOf< USubsystem SubsystemClass)

Only call from Initialize() of Systems to ensure initialization order Note: Dependencies only work within a collection

◆ IsInitialized()

bool FSubsystemCollectionBase::IsInitialized ( ) const
inline

Returns true if collection was already initialized

◆ RemoveSubsystemsInPackages()

void FSubsystemCollectionBase::RemoveSubsystemsInPackages ( TConstArrayView< UPackage * >  Packages)
protected

Remove all subsystems in this list of packages

Friends And Related Symbol Documentation

◆ FSubsystemModuleWatcher


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