Files
UnrealEngine/Engine/Source/Runtime/Online/BackgroundHTTP/Private/BackgroundHttpModule.cpp
2025-05-18 13:04:45 +08:00

56 lines
1.5 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "BackgroundHttpModule.h"
#include "BackgroundHttp.h"
#include "PlatformBackgroundHttp.h"
#include "Modules/ModuleManager.h"
#include "Interfaces/IHttpRequest.h"
IMPLEMENT_MODULE(FBackgroundHttpModule, BackgroundHTTP);
FBackgroundHttpModule* FBackgroundHttpModule::Singleton = NULL;
void FBackgroundHttpModule::StartupModule()
{
Singleton = this;
FPlatformBackgroundHttp::Initialize();
BackgroundHttpManager = FPlatformBackgroundHttp::CreatePlatformBackgroundHttpManager();
if (ensureAlwaysMsgf(BackgroundHttpManager.IsValid(), TEXT("Invalid result from FPlatformBackgroundHttp::CreatePlatformBackgroundHttpManager! Ensure this platform has an implementation supplied!")))
{
BackgroundHttpManager->Initialize();
}
}
void FBackgroundHttpModule::ShutdownModule()
{
FPlatformBackgroundHttp::Shutdown();
BackgroundHttpManager.Reset();
Singleton = nullptr;
}
FBackgroundHttpModule& FBackgroundHttpModule::Get()
{
if (Singleton == NULL)
{
check(IsInGameThread());
FModuleManager::LoadModuleChecked<FBackgroundHttpModule>("BackgroundHTTP");
}
check(Singleton != NULL);
return *Singleton;
}
FBackgroundHttpRequestPtr FBackgroundHttpModule::CreateBackgroundRequest()
{
// Create the platform specific Background Http request instance
return FPlatformBackgroundHttp::ConstructBackgroundRequest();
}
FBackgroundHttpManagerPtr FBackgroundHttpModule::GetBackgroundHttpManager()
{
return BackgroundHttpManager;
}