Files
UnrealEngineUWP/Engine/Source/Developer/DerivedDataCache/Public/DerivedDataBuild.h
Devin Doucette cf09b53604 DDC: Added UE::DerivedData::FBuildOutput
FBuildOutput and the associated builder type define the output of a derived data build as a collection of payloads and diagnostic messages.

#rb Zousar.Shaker
#rnx
#preflight 609c0fc05b35c60001cbc2e3

[CL 16304655 by Devin Doucette in ue5-main branch]
2021-05-12 15:46:19 -04:00

65 lines
2.1 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Containers/StringFwd.h"
class FCbObject;
namespace UE::DerivedData { class FBuildDefinition; }
namespace UE::DerivedData { class FBuildDefinitionBuilder; }
namespace UE::DerivedData { class FBuildOutput; }
namespace UE::DerivedData { class FBuildOutputBuilder; }
namespace UE::DerivedData { class FCacheRecord; }
namespace UE::DerivedData
{
/**
* Interface to the build system.
*
* This is only a preview of a portion of the interface and does not support build execution.
*/
class IBuild
{
public:
virtual ~IBuild() = default;
/**
* Create a build definition builder.
*
* @param Name The name by which to identify this definition for logging and profiling.
* @param Function The name of the build function with which to build this definition.
*/
virtual FBuildDefinitionBuilder CreateDefinition(FStringView Name, FStringView Function) = 0;
/**
* Load a build definition from compact binary.
*
* @param Name The name by which to identify this definition for logging and profiling.
* @param Definition An object saved from a build definition. Holds a reference and is cloned if not owned.
* @return A valid build definition, or a build definition with an empty key on error.
*/
virtual FBuildDefinition LoadDefinition(FStringView Name, FCbObject&& Definition) = 0;
/**
* Create a build output builder.
*
* @param Name The name by which to identify this output for logging and profiling.
* @param Function The name of the build function that produced this output.
*/
virtual FBuildOutputBuilder CreateOutput(FStringView Name, FStringView Function) = 0;
/**
* Load a build output.
*
* @param Name The name by which to identify this output for logging and profiling.
* @param Function The name of the build function that produced this output.
* @param Output The saved output to load.
*/
virtual FBuildOutput LoadOutput(FStringView Name, FStringView Function, const FCbObject& Output) = 0;
virtual FBuildOutput LoadOutput(FStringView Name, FStringView Function, const FCacheRecord& Output) = 0;
};
} // UE::DerivedData