Files
UnrealEngine/Engine/Plugins/Mutable/Source/MutableValidation/Private/MuV/CustomizableObjectCompilationUtility.h
2025-05-18 13:04:45 +08:00

31 lines
1.4 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "UObject/StrongObjectPtr.h"
#include "Templates/SharedPointer.h"
// Forward declarations
class UCustomizableObject;
struct FCompilationOptions;
/**
* Helper class that allows the calling commandlet to treat the asynchronous compilation of a CO as a synchronous operation.
*/
class FCustomizableObjectCompilationUtility : public TSharedFromThis<FCustomizableObjectCompilationUtility>
{
public:
/**
* Run the asyncronous compilation of the provided CO but as part of this sync method.
* @param InCustomizableObject The Customizable Object we want to synchronously compile
* @param bShouldLogMutableLogs Enables or disables the logging of Log category logs relevant to the CO compilation. Required to avoid a MongoDB limitation with the duplication of MongoDB document names.
* @param InCompilationOptionsOverride The configuration for the compilation of the CO we want to use instead of the one part of the CO.
* @return True if the compilation was successful and false if it failed.
*/
bool CompileCustomizableObject(UCustomizableObject& InCustomizableObject, const bool bShouldLogMutableLogs = true, const FCompilationOptions* InCompilationOptionsOverride = nullptr );
private:
/** The CO that is currently being compiled. */
TStrongObjectPtr<UCustomizableObject> CustomizableObject;
};