Files
UnrealEngineUWP/Engine/Source/Developer/IoStoreUtilities/Public/PackageStoreWriter.h
CarlMagnus Nordin d4a06b766c ZenCOTF:
*Let the game be in full control of what is getting cooked
*Removed artificial delays when waiting for DDC operations
*No longer relies on all requests being urgent
#rnx
#preflight 620d2f80f8655681e051eded
#rb pj.kack

[CL 19032506 by CarlMagnus Nordin in ue5-main branch]
2022-02-17 04:54:33 -05:00

76 lines
2.0 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "IO/PackageStore.h"
#include "Serialization/PackageWriter.h"
class IPackageStoreWriter : public ICookedPackageWriter
{
public:
/** Identify as a member of this interface from the ICookedPackageWriter api. */
virtual IPackageStoreWriter* AsPackageStoreWriter() override
{
return this;
}
struct FOplogCookInfo
{
struct FAttachment
{
const UTF8CHAR* Key;
FIoHash Hash;
};
ICookedPackageWriter::FCookedPackageInfo CookInfo;
TArray<FAttachment> Attachments;
bool bUpToDate = false;
};
/**
* Returns all cooked package store entries.
*/
virtual void GetEntries(TFunction<void(TArrayView<const FPackageStoreEntryResource>, TArrayView<const FOplogCookInfo>)>&&) = 0;
struct FEntryCreatedEventArgs
{
FName PlatformName;
const FPackageStoreEntryResource& Entry;
};
DECLARE_EVENT_OneParam(IPackageStoreWriter, FEntryCreatedEvent, const FEntryCreatedEventArgs&);
virtual FEntryCreatedEvent& OnEntryCreated() = 0;
/**
* Package commit event arguments
*/
struct FCommitEventArgs
{
FName PlatformName;
FName PackageName;
int32 EntryIndex = INDEX_NONE;
TArrayView<const FPackageStoreEntryResource> Entries;
TArrayView<const FOplogCookInfo> CookInfos;
TArray<FAdditionalFileInfo> AdditionalFiles;
};
/**
* Broadcasted after a package has been committed, i.e cooked.
*/
DECLARE_EVENT_OneParam(IPackageStoreWriter, FCommitEvent, const FCommitEventArgs&);
virtual FCommitEvent& OnCommit() = 0;
struct FMarkUpToDateEventArgs
{
FName PlatformName;
TArray<int32> PackageIndexes;
TArrayView<const FPackageStoreEntryResource> Entries;
TArrayView<const FOplogCookInfo> CookInfos;
TArray<FAdditionalFileInfo> AdditionalFiles;
};
/**
* Broadcasted after a set of packages have been found to be up to date.
*/
DECLARE_EVENT_OneParam(IPackageStoreWriter, FMarkUpToDateEvent, const FMarkUpToDateEventArgs&);
virtual FMarkUpToDateEvent& OnMarkUpToDate() = 0;
};