Files
UnrealEngineUWP/Engine/Source/Developer/IoStoreUtilities/Private/ZenFileSystemManifest.h
T
dan engelbrecht 2f8823f7dc Pass along path to project file when zen server is running locally so we can detect when it is removed and garbage-collect any projectstore entries on the zen side.
Allow Cook to remote Zen, if we detect that we are targetting a zenservice on a different machine we change the local file references to attachment based references.
#rb stefan.boberg
#preflight 63491c31ad0f7e2f20230b39

[CL 22525021 by dan engelbrecht in ue5-main branch]
2022-10-14 08:17:43 -04:00

58 lines
1.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "IO/IoDispatcher.h"
class ITargetPlatform;
class FArchive;
class FZenFileSystemManifest
{
public:
struct FManifestEntry
{
FString ServerPath;
FString ClientPath;
FIoChunkId FileChunkId;
};
FZenFileSystemManifest(const ITargetPlatform& InTargetPlatform, FString InCookDirectory);
int32 Generate();
const FManifestEntry& CreateManifestEntry(const FString& Filename);
const FManifestEntry& AddManifestEntry(const FIoChunkId& FileChunkId, FString ServerPath, FString ClientPath);
TArrayView<const FManifestEntry> ManifestEntries() const
{
return Entries;
}
bool Save(const TCHAR* Filename);
int32 NumEntries() const
{
return Entries.Num();
}
const FString& ServerRootPath() const
{
return ServerRoot;
}
private:
static void GetExtensionDirs(TArray<FString>& OutExtensionDirs, const TCHAR* BaseDir, const TCHAR* SubDir, const TArray<FString>& PlatformDirectoryNames);
const ITargetPlatform& TargetPlatform;
FString CookDirectory;
FString ServerRoot;
TMap<FString, int32> ServerPathToEntry;
TArray<FManifestEntry> Entries;
static const FManifestEntry InvalidEntry;
};