Files
UnrealEngine/Engine/Source/Developer/DerivedDataCache/Public/DerivedDataBuildFunctionRegistry.h
2025-05-18 13:04:45 +08:00

32 lines
1016 B
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Containers/StringFwd.h"
struct FGuid;
template <typename FuncType> class TFunctionRef;
namespace UE::DerivedData { class IBuildFunction; }
namespace UE::DerivedData
{
/**
* A build function registry maintains a collection of build functions.
*/
class IBuildFunctionRegistry
{
public:
virtual ~IBuildFunctionRegistry() = default;
/** Find a function by name. Returns null if not found. Safe to call from a scheduled job or the main thread. */
virtual const IBuildFunction* FindFunction(FUtf8StringView Function) const = 0;
/** Find a function version by name. Returns zero if not found. Safe to call from any thread. */
virtual FGuid FindFunctionVersion(FUtf8StringView Function) const = 0;
/** Iterate the complete list of build function versions. Safe to call from any thread. */
virtual void IterateFunctionVersions(TFunctionRef<void(FUtf8StringView Name, const FGuid& Version)> Visitor) const = 0;
};
} // UE::DerivedData