55 lines
1006 B
C++
55 lines
1006 B
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "Modules/ModuleInterface.h"
|
|
|
|
#define UE_API MSQUICRUNTIME_API
|
|
|
|
|
|
class FMsQuicRuntimeModule
|
|
: public IModuleInterface
|
|
{
|
|
|
|
public:
|
|
|
|
/**
|
|
* Initializes the runtime by loading the MsQuic DLL if it's not loaded already.
|
|
*/
|
|
static UE_API bool InitRuntime();
|
|
|
|
public:
|
|
|
|
// IModuleInterface interface override
|
|
|
|
UE_API virtual void ShutdownModule() override;
|
|
|
|
private:
|
|
|
|
/**
|
|
* Load the appropriate MsQuic DLL/So for this platform.
|
|
*/
|
|
static bool LoadMsQuicDll();
|
|
|
|
/**
|
|
* Frees the DLL handle.
|
|
*/
|
|
static void FreeMsQuicDll();
|
|
|
|
private:
|
|
|
|
/** Holds the MsQuic library dll handle. */
|
|
static inline void* MsQuicLibraryHandle = nullptr;
|
|
|
|
/** Defines the MsQuic version to be used. */
|
|
static inline const FString MSQUIC_VERSION = "v220";
|
|
|
|
/** Defines the MsQuic binaries path. */
|
|
static inline const FString MSQUIC_BINARIES_PATH
|
|
= "Binaries/ThirdParty/MsQuic/" + MSQUIC_VERSION;
|
|
|
|
};
|
|
|
|
#undef UE_API
|