51 lines
1.9 KiB
C++
51 lines
1.9 KiB
C++
// 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
|