Files
UnrealEngineUWP/Engine/Source/Developer/DerivedDataCache/Public/DerivedDataBuild.h
devin doucette 1ea1951917 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

#ROBOMERGE-SOURCE: CL 16304655 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v800-16297934)

[CL 16304661 by devin doucette in ue5-release-engine-test branch]
2021-05-12 15:46:35 -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