Files
UnrealEngine/Engine/Source/Runtime/Online/BuildPatchServices/Public/BuildPatchServicesSingleton.h
2025-05-18 13:04:45 +08:00

54 lines
1.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "BuildPatchSettings.h"
#include "CoreMinimal.h"
#include "Interfaces/IBuildPatchServicesModule.h"
#include "Modules/ModuleManager.h"
#include "UObject/NameTypes.h"
class FBuildPatchServices
{
public:
static bool IsAvailable()
{
return FModuleManager::Get().IsModuleLoaded(ModuleName);
}
static IBuildPatchServicesModule& Get()
{
return FModuleManager::Get().GetModuleChecked<IBuildPatchServicesModule>(ModuleName);
}
static const BuildPatchServices::FBuildPatchServicesInitSettings& GetSettings()
{
return InitSettings;
}
static void Set(
const FName& Value,
const BuildPatchServices::FBuildPatchServicesInitSettings& BuildPatchServicesInitSettings = BuildPatchServices::FBuildPatchServicesInitSettings())
{
if(IsAvailable())
{
Shutdown();
}
ModuleName = Value;
InitSettings = BuildPatchServicesInitSettings;
FModuleManager::Get().LoadModuleChecked<IBuildPatchServicesModule>(ModuleName);
}
static void Shutdown()
{
if(IsAvailable())
{
FModuleManager::Get().UnloadModule(ModuleName);
}
}
private:
static BUILDPATCHSERVICES_API FName ModuleName;
static BUILDPATCHSERVICES_API BuildPatchServices::FBuildPatchServicesInitSettings InitSettings;
};