Files
UnrealEngineUWP/Engine/Source/Developer/DerivedDataCache/Public/DerivedDataBuildPolicy.h
Devin Doucette 0748494fc6 DDC: Exposed the cache key and build status in the build complete callback params
#rb Zousar.Shaker
#rnx
#preflight 60f5c7a78da1560001c68086

[CL 16888763 by Devin Doucette in ue5-main branch]
2021-07-19 16:46:58 -04:00

72 lines
2.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreTypes.h"
#include "Misc/EnumClassFlags.h"
namespace UE::DerivedData
{
/**
* Flags to control the behavior of build requests.
*
* The build policy flags can be combined to support a variety of usage patterns. Examples:
*
* Build(Default): allow cache get; build if missing; return every payload.
* Build(Build | CacheStore): never query the cache; always build; return every payload.
* Build(Cache | CacheSkipData): allow cache get; never build; skip every payload.
*
* BuildPayload(Default): allow cache get; build if missing; return one payload.
* BuildPayload(Build | CacheStore): never get from the cache; always build; return one payload.
* BuildPayload(Cache | CacheSkipData): allow cache get; never build; skip every payload.
*/
enum class EBuildPolicy : uint8
{
/** A value without any flags set. */
None = 0,
/** Allow local execution of the build function. */
BuildLocal = 1 << 0,
/** Allow remote execution of the build function if it has a registered build worker. */
BuildRemote = 1 << 1,
/** Allow local and remote execution of the build function. */
Build = BuildLocal | BuildRemote,
/** Allow a cache query to avoid having to build. */
CacheQuery = 1 << 2,
/** Allow a cache store to persist the build output. */
CacheStore = 1 << 3,
/** Allow a cache query and a cache store for the build. */
Cache = CacheQuery | CacheStore,
/** Skip fetching the payload data from the cache. */
SkipData = 1 << 4,
/** Allow cache query+store, allow local+remote build when missed or skipped, and fetch the payload(s). */
Default = Build | Cache,
};
ENUM_CLASS_FLAGS(EBuildPolicy);
/** Flags for build request completion callbacks. */
enum class EBuildStatus : uint32
{
/** A value without any flags set. */
None = 0,
/** The build function was executed locally. */
BuildLocal = 1 << 0,
/** The build function was executed remotely. */
BuildRemote = 1 << 1,
/** The build made a cache query request. */
CacheQuery = 1 << 2,
/** Valid build output was found in the cache. */
CacheQueryHit = 1 << 3,
};
ENUM_CLASS_FLAGS(EBuildStatus);
} // UE::DerivedData