EM_Task/UnrealEd/Private/Cooker/WorkerRequestsLocal.h

51 lines
1.9 KiB
C
Raw Normal View History

2026-02-13 16:18:33 +08:00
// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Containers/Array.h"
#include "Containers/Map.h"
#include "Containers/UnrealString.h"
#include "CookOnTheSide/CookOnTheFlyServer.h"
#include "CookRequests.h"
#include "Cooker/CookTypes.h"
#include "Cooker/CookPackageData.h"
#include "HAL/Platform.h"
#include "IWorkerRequests.h"
class FConfigFile;
class ITargetPlatform;
namespace UE
{
namespace Cook
{
struct FPackageData;
/** An IWorkerRequests for SingleProcess cooks: functions are passed through to the CookOnTheFlyServer. */
class FWorkerRequestsLocal: public IWorkerRequests
{
public:
FWorkerRequestsLocal(UCookOnTheFlyServer& InCOTFS);
virtual ECookMode::Type GetDirectorCookMode() override;
virtual ~FWorkerRequestsLocal() override;
virtual void OnRemoveSessionPlatform(const ITargetPlatform* TargetPlatform) override;
virtual bool DequeueCallbacks(TArray<FSchedulerCallback>& OutCallbacks) override;
virtual bool HasRequests() override;
virtual void AddCallback(FSchedulerCallback&& Callback) override;
virtual void EnqueueUnique(FFilePlatformRequest&& FileRequest, bool bForceFrontOfQueue = false) override;
virtual void DequeueAll(TArray<FSchedulerCallback>& OutCallbacks, TArray<FFilePlatformRequest>& OutCookRequests) override;
virtual EExternalRequestType DequeueRequest(TArray<FSchedulerCallback>& OutCallbacks, FFilePlatformRequest& OutToBuild) override;
virtual int32 GetNumRequests() const override;
virtual void RemapTargetPlatforms(const TMap<ITargetPlatform*, ITargetPlatform*>& Remap) override;
virtual bool AddToWaitAssign(FPackageData& PackageData, EPackageState TargetState) override;
virtual bool AssignRequests() override;
virtual bool DecideNextCookAction(FTickStackData& StackData, UCookOnTheFlyServer::ECookAction& CookAction);
private:
FExternalRequests ExternalRequests;
FPackageDataQueue WaitAssignQueue;
};
} // namespace Cook
} // namespace UE