Files
UnrealEngine/Engine/Plugins/Enterprise/DatasmithImporter/Source/DirectLinkExtension/Public/DirectLinkExtensionModule.h
2025-05-18 13:04:45 +08:00

61 lines
1.4 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "IDirectLinkManager.h"
#include "Modules/ModuleInterface.h"
#include "Modules/ModuleManager.h" // For inline LoadModuleChecked()
#define DIRECTLINKEXTENSION_MODULE_NAME TEXT("DirectLinkExtension")
namespace UE::DatasmithImporter
{
class IUriResolver;
}
namespace DirectLink
{
class FEndpoint;
}
class IDirectLinkExtensionModule : public IModuleInterface
{
public:
/**
* Singleton-like access to IDirectLinkEditorModule
*
* @return Returns IDirectLinkEditorModule singleton instance, loading the module on demand if needed
*/
static inline IDirectLinkExtensionModule& Get()
{
return FModuleManager::LoadModuleChecked<IDirectLinkExtensionModule>(DIRECTLINKEXTENSION_MODULE_NAME);
}
/**
* Checks to see if this module is loaded and ready.
*
* @return True if the module is loaded and ready to use
*/
static inline bool IsAvailable()
{
return FModuleManager::Get().IsModuleLoaded(DIRECTLINKEXTENSION_MODULE_NAME);
}
static DirectLink::FEndpoint& GetEndpoint()
{
return Get().GetManager().GetEndpoint();
}
/**
* Overwrite the UriResolver of the DirectLinkExtension module.
*/
virtual void OverwriteUriResolver(const TSharedRef<UE::DatasmithImporter::IUriResolver>& UriResolver) = 0;
/**
* Return the DirectLinkManager singleton.
*/
virtual UE::DatasmithImporter::IDirectLinkManager& GetManager() const = 0;
};