You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
#rb Zousar.Shaker #rnx #ROBOMERGE-SOURCE: CL 16870688 in //UE5/Main/... #ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935) [CL 16870691 by devin doucette in ue5-release-engine-test branch]
112 lines
2.9 KiB
C++
112 lines
2.9 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "DerivedDataBuildScheduler.h"
|
|
|
|
#include "DerivedDataBuildFunction.h"
|
|
#include "DerivedDataBuildFunctionFactory.h"
|
|
#include "DerivedDataBuildFunctionRegistry.h"
|
|
#include "Misc/Guid.h"
|
|
#include "Tasks/Task.h"
|
|
|
|
namespace UE::DerivedData::Private
|
|
{
|
|
|
|
class FBuildScheduler final : public IBuildScheduler
|
|
{
|
|
public:
|
|
void DispatchCacheQuery(IBuildJob* Job, const FBuildSchedulerParams& Params) final;
|
|
void DispatchCacheStore(IBuildJob* Job, const FBuildSchedulerParams& Params) final;
|
|
void DispatchResolveKey(IBuildJob* Job) final;
|
|
void DispatchResolveInputMeta(IBuildJob* Job) final;
|
|
void DispatchResolveInputData(IBuildJob* Job, const FBuildSchedulerParams& Params) final;
|
|
void DispatchExecuteRemote(IBuildJob* Job, const FBuildSchedulerParams& Params) final;
|
|
void DispatchExecuteLocal(IBuildJob* Job, const FBuildSchedulerParams& Params) final;
|
|
};
|
|
|
|
void FBuildScheduler::DispatchCacheQuery(IBuildJob* Job, const FBuildSchedulerParams& Params)
|
|
{
|
|
Job->Schedule();
|
|
}
|
|
|
|
void FBuildScheduler::DispatchCacheStore(IBuildJob* Job, const FBuildSchedulerParams& Params)
|
|
{
|
|
Job->Schedule();
|
|
}
|
|
|
|
void FBuildScheduler::DispatchResolveKey(IBuildJob* Job)
|
|
{
|
|
if (Job->GetPriority() == EPriority::Blocking)
|
|
{
|
|
Job->Schedule();
|
|
}
|
|
else
|
|
{
|
|
Tasks::Launch(TEXT("FBuildScheduler::DispatchResolveKey"),
|
|
[Job = TRequest(Job)] { Job->Schedule(); },
|
|
LowLevelTasks::ETaskPriority::BackgroundNormal);
|
|
}
|
|
}
|
|
|
|
void FBuildScheduler::DispatchResolveInputMeta(IBuildJob* Job)
|
|
{
|
|
if (Job->GetPriority() == EPriority::Blocking)
|
|
{
|
|
Job->Schedule();
|
|
}
|
|
else
|
|
{
|
|
Tasks::Launch(TEXT("FBuildScheduler::DispatchResolveInputMeta"),
|
|
[Job = TRequest(Job)] { Job->Schedule(); },
|
|
LowLevelTasks::ETaskPriority::BackgroundNormal);
|
|
}
|
|
}
|
|
|
|
void FBuildScheduler::DispatchResolveInputData(IBuildJob* Job, const FBuildSchedulerParams& Params)
|
|
{
|
|
if (Job->GetPriority() == EPriority::Blocking)
|
|
{
|
|
Job->Schedule();
|
|
}
|
|
else
|
|
{
|
|
Tasks::Launch(TEXT("FBuildScheduler::DispatchResolveInputData"),
|
|
[Job = TRequest(Job)] { Job->Schedule(); },
|
|
LowLevelTasks::ETaskPriority::BackgroundNormal);
|
|
}
|
|
}
|
|
|
|
void FBuildScheduler::DispatchExecuteRemote(IBuildJob* Job, const FBuildSchedulerParams& Params)
|
|
{
|
|
if (Job->GetPriority() == EPriority::Blocking)
|
|
{
|
|
Job->Schedule();
|
|
}
|
|
else
|
|
{
|
|
Tasks::Launch(TEXT("FBuildScheduler::DispatchExecuteRemote"),
|
|
[Job = TRequest(Job)] { Job->Schedule(); },
|
|
LowLevelTasks::ETaskPriority::BackgroundNormal);
|
|
}
|
|
}
|
|
|
|
void FBuildScheduler::DispatchExecuteLocal(IBuildJob* Job, const FBuildSchedulerParams& Params)
|
|
{
|
|
if (Job->GetPriority() == EPriority::Blocking)
|
|
{
|
|
Job->Schedule();
|
|
}
|
|
else
|
|
{
|
|
Tasks::Launch(TEXT("FBuildScheduler::DispatchExecuteLocal"),
|
|
[Job = TRequest(Job)] { Job->Schedule(); },
|
|
LowLevelTasks::ETaskPriority::BackgroundNormal);
|
|
}
|
|
}
|
|
|
|
IBuildScheduler* CreateBuildScheduler()
|
|
{
|
|
return new FBuildScheduler();
|
|
}
|
|
|
|
} // UE::DerivedData::Private
|