41 lines
1.1 KiB
C++
41 lines
1.1 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "Containers/StringFwd.h"
|
|
#include "CoreTypes.h"
|
|
|
|
struct FGuid;
|
|
|
|
namespace UE::DerivedData { class FBuildWorker; }
|
|
namespace UE::DerivedData { class IBuildWorkerExecutor; }
|
|
|
|
namespace UE::DerivedData
|
|
{
|
|
|
|
/**
|
|
* A build worker registry maintains a collection of build workers.
|
|
*/
|
|
class IBuildWorkerRegistry
|
|
{
|
|
public:
|
|
virtual ~IBuildWorkerRegistry() = default;
|
|
|
|
/**
|
|
* Finds a build worker that can execute the function at the version.
|
|
*
|
|
* @param Function The function to find a worker for.
|
|
* @param FunctionVersion The version required for the function.
|
|
* @param BuildSystemVersion The version required for the build system.
|
|
* @param OutWorkerExecutor The executor to use to execute the worker.
|
|
* @return A build worker and executor if a compatible pair was found, or null for both.
|
|
*/
|
|
virtual FBuildWorker* FindWorker(
|
|
const FUtf8SharedString& Function,
|
|
const FGuid& FunctionVersion,
|
|
const FGuid& BuildSystemVersion,
|
|
IBuildWorkerExecutor*& OutWorkerExecutor) const = 0;
|
|
};
|
|
|
|
} // UE::DerivedData
|