UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IPackageWriter Class Referenceabstract

#include <PackageWriter.h>

+ Inheritance diagram for IPackageWriter:

Classes

struct  FAdditionalFileInfo
 
struct  FBeginPackageInfo
 
struct  FBulkDataInfo
 
struct  FCapabilities
 
struct  FCommitAttachmentInfo
 
struct  FCommitPackageInfo
 
struct  FLinkerAdditionalDataInfo
 
struct  FPackageInfo
 
struct  FPackageTrailerInfo
 

Public Types

enum class  EWriteOptions {
  None = 0 , WritePackage = 0x01 , WriteSidecars = 0x02 , Write = WritePackage | WriteSidecars ,
  ComputeHash = 0x04 , SaveForDiff = 0x08
}
 
enum class  ECommitStatus {
  Success , Canceled , NothingToCook , Error ,
  NotCommitted
}
 

Public Member Functions

virtual ~IPackageWriter ()=default
 
virtual FCapabilities GetCapabilities () const
 
virtual void BeginPackage (const FBeginPackageInfo &Info)=0
 
virtual void CommitPackage (FCommitPackageInfo &&Info)=0
 
virtual void WritePackageData (const FPackageInfo &Info, FLargeMemoryWriter &ExportsArchive, const TArray< FFileRegion > &FileRegions)=0
 
virtual void WriteBulkData (const FBulkDataInfo &Info, const FIoBuffer &BulkData, const TArray< FFileRegion > &FileRegions)=0
 
virtual void WriteAdditionalFile (const FAdditionalFileInfo &Info, const FIoBuffer &FileData)=0
 
virtual void WriteLinkerAdditionalData (const FLinkerAdditionalDataInfo &Info, const FIoBuffer &Data, const TArray< FFileRegion > &FileRegions)=0
 
virtual int64 GetExportsFooterSize ()
 
virtual void WritePackageTrailer (const FPackageTrailerInfo &Info, const FIoBuffer &Data)=0
 
virtual TUniquePtr< FLargeMemoryWriterCreateLinkerArchive (FName PackageName, UObject *Asset, uint16 MultiOutputIndex)=0
 
virtual TUniquePtr< FLargeMemoryWriterCreateLinkerExportsArchive (FName PackageName, UObject *Asset, uint16 MultiOutputIndex)=0
 
virtual void RegisterDeterminismHelper (UObject *SourceObject, const TRefCountPtr< UE::Cook::IDeterminismHelper > &DeterminismHelper)
 
virtual bool IsPreSaveCompleted () const
 
virtual ICookedPackageWriterAsCookedPackageWriter ()
 

Detailed Description

Interface for SavePackage to write packages to storage.

Member Enumeration Documentation

◆ ECommitStatus

Enumerator
Success 
Canceled 
NothingToCook 
Error 
NotCommitted 

◆ EWriteOptions

Enumerator
None 
WritePackage 
WriteSidecars 
Write 
ComputeHash 
SaveForDiff 

Constructor & Destructor Documentation

◆ ~IPackageWriter()

virtual IPackageWriter::~IPackageWriter ( )
virtualdefault

Member Function Documentation

◆ AsCookedPackageWriter()

virtual ICookedPackageWriter * IPackageWriter::AsCookedPackageWriter ( )
inlinevirtual

Downcast function for IPackageWriters that implement the ICookedPackageWriters inherited interface.

Reimplemented in ICookedPackageWriter.

◆ BeginPackage()

virtual void IPackageWriter::BeginPackage ( const FBeginPackageInfo Info)
pure virtual

Mark the beginning of a package store transaction for the specified package

This must be called before any data is produced for a given package

Implemented in TPackageWriterToSharedBuffer< FBasePackageWriter >.

◆ CommitPackage()

virtual void IPackageWriter::CommitPackage ( FCommitPackageInfo &&  Info)
pure virtual

Finalize a package started with BeginPackage()

Implemented in TPackageWriterToSharedBuffer< FBasePackageWriter >.

◆ CreateLinkerArchive()

virtual TUniquePtr< FLargeMemoryWriter > IPackageWriter::CreateLinkerArchive ( FName  PackageName,
UObject Asset,
uint16  MultiOutputIndex 
)
pure virtual

Create the FLargeMemoryWriter to which the Header and Exports are written during the save.

Implemented in FBasePackageWriter, and FBaseCookedPackageWriter.

◆ CreateLinkerExportsArchive()

virtual TUniquePtr< FLargeMemoryWriter > IPackageWriter::CreateLinkerExportsArchive ( FName  PackageName,
UObject Asset,
uint16  MultiOutputIndex 
)
pure virtual

Returns an archive to be used when serializing exports.

Implemented in FBasePackageWriter, and FBaseCookedPackageWriter.

◆ GetCapabilities()

virtual FCapabilities IPackageWriter::GetCapabilities ( ) const
inlinevirtual

Return capabilities/settings this PackageWriter has/requires

◆ GetExportsFooterSize()

virtual int64 IPackageWriter::GetExportsFooterSize ( )
inlinevirtual

Report the size of the Footer that is added after Exports and BulkData but before the PackageTrailer

◆ IsPreSaveCompleted()

virtual bool IPackageWriter::IsPreSaveCompleted ( ) const
inlinevirtual

Report whether PreSave was already called by the PackageWriter before the current UPackage::Save call.

◆ RegisterDeterminismHelper()

virtual void IPackageWriter::RegisterDeterminismHelper ( UObject SourceObject,
const TRefCountPtr< UE::Cook::IDeterminismHelper > &  DeterminismHelper 
)
inlinevirtual

Overridden by PackageWriters that handle bDeterminismDebug=true. A system will call this function to register their callback class for adding determinism diagnostics for the given object to the package save.

◆ WriteAdditionalFile()

virtual void IPackageWriter::WriteAdditionalFile ( const FAdditionalFileInfo Info,
const FIoBuffer FileData 
)
pure virtual

Write separate files written by UObjects during cooking via UObject::CookAdditionalFiles.

Implemented in TPackageWriterToSharedBuffer< FBasePackageWriter >.

◆ WriteBulkData()

virtual void IPackageWriter::WriteBulkData ( const FBulkDataInfo Info,
const FIoBuffer BulkData,
const TArray< FFileRegion > &  FileRegions 
)
pure virtual

Write bulk data for the current package

Implemented in TPackageWriterToSharedBuffer< FBasePackageWriter >.

◆ WriteLinkerAdditionalData()

virtual void IPackageWriter::WriteLinkerAdditionalData ( const FLinkerAdditionalDataInfo Info,
const FIoBuffer Data,
const TArray< FFileRegion > &  FileRegions 
)
pure virtual

Write separate data written by UObjects via FLinkerSave::AdditionalDataToAppend.

Implemented in TPackageWriterToSharedBuffer< FBasePackageWriter >.

◆ WritePackageData()

virtual void IPackageWriter::WritePackageData ( const FPackageInfo Info,
FLargeMemoryWriter ExportsArchive,
const TArray< FFileRegion > &  FileRegions 
)
pure virtual

Write package data (exports and serialized header)

This may only be called after a BeginPackage() call has been made to signal the start of a package store transaction

Implemented in TPackageWriterToSharedBuffer< FBasePackageWriter >.

◆ WritePackageTrailer()

virtual void IPackageWriter::WritePackageTrailer ( const FPackageTrailerInfo Info,
const FIoBuffer Data 
)
pure virtual

Write the PackageTrailer, a separate segment for some bulkdata that is written the end of the file.

Implemented in TPackageWriterToSharedBuffer< FBasePackageWriter >.


The documentation for this class was generated from the following file: