EM_Task/UnrealEd/Private/Cooker/WorkerRequestsRemote.h
Boshuang Zhao 5144a49c9b add
2026-02-13 16:18:33 +08:00

38 lines
1.6 KiB
C++

#pragma once
#include "IWorkerRequests.h"
#include "Cooker/CookPackageData.h"
namespace UE
{
namespace Cook
{
class FWorkerRequestsRemote: public IWorkerRequests
{
public:
FWorkerRequestsRemote(UCookOnTheFlyServer& InCOTFS);
~FWorkerRequestsRemote() 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;
ECookMode::Type GetDirectorCookMode() override;
virtual bool AssignRequests() override;
virtual bool DecideNextCookAction(FTickStackData& StackData, UCookOnTheFlyServer::ECookAction& CookAction);
virtual bool AddToWaitAssign(FPackageData& PackageData, EPackageState TargetState) override;
private:
uint32 DesiredWaitAssignQueueLength;
FCookWorkerClient& CookWorkerClient;
FExternalRequests ExternalRequests;
FPackageDataQueue WaitAssignQueue;
TSet<FPackageData*> LoadedPackages;
};
} // namespace Cook
} // namespace UE