UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
PackageWriterToSharedBuffer.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Map.h"
10#include "Templates/UniquePtr.h"
11
13{
14public:
15 struct FPackage;
16
19 const TArray<FFileRegion>& FileRegions);
21 const TArray<FFileRegion>& FileRegions);
23 const FIoBuffer& FileData);
25 const FIoBuffer& Data, const TArray<FFileRegion>& FileRegions);
27
72
79
80private:
81 mutable FRWLock MapLock;
83};
84
93template <typename BaseClass>
94class TPackageWriterToSharedBuffer : public BaseClass
95{
96public:
103
109 const TArray<FFileRegion>& FileRegions) override
110 {
112 }
114 const TArray<FFileRegion>& FileRegions) override
115 {
116 Records.WriteBulkData(Info, BulkData, FileRegions);
117 }
124 const FIoBuffer& Data, const TArray<FFileRegion>& FileRegions) override
125 {
126 Records.WriteLinkerAdditionalData(Info, Data, FileRegions);
127 }
129 {
131 }
138
139protected:
142
143protected:
149
160
162};
163
165class FPackageWriterToRecord : public TPackageWriterToSharedBuffer<FBasePackageWriter>
166{
167public:
169
170protected:
172 const FCommitPackageInfo& Info) override
173 {
175 }
176};
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition IoBuffer.h:15
Definition LargeMemoryWriter.h:17
Definition NameTypes.h:617
Definition PackageWriterToSharedBuffer.h:13
COREUOBJECT_API TUniquePtr< FPackage > FindAndRemoveRecordChecked(FName InPackageName)
Definition PackageWriterToSharedBuffer.cpp:110
COREUOBJECT_API void ValidateCommit(FPackage &Record, const IPackageWriter::FCommitPackageInfo &Info) const
Definition PackageWriterToSharedBuffer.cpp:121
COREUOBJECT_API void WritePackageData(const IPackageWriter::FPackageInfo &Info, FLargeMemoryWriter &ExportsArchive, const TArray< FFileRegion > &FileRegions)
Definition PackageWriterToSharedBuffer.cpp:31
COREUOBJECT_API void WriteLinkerAdditionalData(const IPackageWriter::FLinkerAdditionalDataInfo &Info, const FIoBuffer &Data, const TArray< FFileRegion > &FileRegions)
Definition PackageWriterToSharedBuffer.cpp:76
COREUOBJECT_API void WritePackageTrailer(const IPackageWriter::FPackageTrailerInfo &Info, const FIoBuffer &Data)
Definition PackageWriterToSharedBuffer.cpp:84
COREUOBJECT_API void WriteAdditionalFile(const IPackageWriter::FAdditionalFileInfo &Info, const FIoBuffer &FileData)
Definition PackageWriterToSharedBuffer.cpp:60
COREUOBJECT_API void WriteBulkData(const IPackageWriter::FBulkDataInfo &Info, const FIoBuffer &BulkData, const TArray< FFileRegion > &FileRegions)
Definition PackageWriterToSharedBuffer.cpp:53
COREUOBJECT_API FPackage & FindRecordChecked(FName InPackageName) const
Definition PackageWriterToSharedBuffer.cpp:98
COREUOBJECT_API void BeginPackage(FPackage *Record, const IPackageWriter::FBeginPackageInfo &Info)
Definition PackageWriterToSharedBuffer.cpp:19
Definition PackageWriterToSharedBuffer.h:166
FPackageWriterRecords::FPackage SavedRecord
Definition PackageWriterToSharedBuffer.h:168
virtual void CommitPackageInternal(FPackageWriterRecords::FPackage &&Record, const FCommitPackageInfo &Info) override
Definition PackageWriterToSharedBuffer.h:171
Definition SharedBuffer.h:341
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition PackageWriterToSharedBuffer.h:95
virtual void CommitPackageInternal(FPackageRecord &&Record, const IPackageWriter::FCommitPackageInfo &Info)=0
void ValidateCommit(FPackageRecord &Record, const IPackageWriter::FCommitPackageInfo &Info)
Definition PackageWriterToSharedBuffer.h:156
virtual void WritePackageTrailer(const IPackageWriter::FPackageTrailerInfo &Info, const FIoBuffer &Data) override
Definition PackageWriterToSharedBuffer.h:128
virtual void WritePackageData(const IPackageWriter::FPackageInfo &Info, FLargeMemoryWriter &ExportsArchive, const TArray< FFileRegion > &FileRegions) override
Definition PackageWriterToSharedBuffer.h:108
virtual void WriteBulkData(const IPackageWriter::FBulkDataInfo &Info, const FIoBuffer &BulkData, const TArray< FFileRegion > &FileRegions) override
Definition PackageWriterToSharedBuffer.h:113
virtual void BeginPackage(const IPackageWriter::FBeginPackageInfo &Info) override
Definition PackageWriterToSharedBuffer.h:104
virtual void CommitPackage(IPackageWriter::FCommitPackageInfo &&Info) override
Definition PackageWriterToSharedBuffer.h:132
virtual void WriteAdditionalFile(const IPackageWriter::FAdditionalFileInfo &Info, const FIoBuffer &FileData) override
Definition PackageWriterToSharedBuffer.h:118
virtual FPackageWriterRecords::FPackage * ConstructRecord()
Definition PackageWriterToSharedBuffer.h:145
FPackageRecord & FindRecordChecked(FName InPackageName)
Definition PackageWriterToSharedBuffer.h:151
virtual void WriteLinkerAdditionalData(const IPackageWriter::FLinkerAdditionalDataInfo &Info, const FIoBuffer &Data, const TArray< FFileRegion > &FileRegions) override
Definition PackageWriterToSharedBuffer.h:123
FPackageWriterRecords Records
Definition PackageWriterToSharedBuffer.h:161
Definition UniquePtr.h:107
Definition CriticalSection.h:14
Definition PackageWriterToSharedBuffer.h:41
IPackageWriter::FAdditionalFileInfo Info
Definition PackageWriterToSharedBuffer.h:42
FSharedBuffer Buffer
Definition PackageWriterToSharedBuffer.h:43
Definition PackageWriterToSharedBuffer.h:35
FSharedBuffer Buffer
Definition PackageWriterToSharedBuffer.h:37
IPackageWriter::FBulkDataInfo Info
Definition PackageWriterToSharedBuffer.h:36
TArray< FFileRegion > Regions
Definition PackageWriterToSharedBuffer.h:38
Definition PackageWriterToSharedBuffer.h:46
IPackageWriter::FLinkerAdditionalDataInfo Info
Definition PackageWriterToSharedBuffer.h:47
TArray< FFileRegion > Regions
Definition PackageWriterToSharedBuffer.h:49
FSharedBuffer Buffer
Definition PackageWriterToSharedBuffer.h:48
Definition PackageWriterToSharedBuffer.h:52
IPackageWriter::FPackageTrailerInfo Info
Definition PackageWriterToSharedBuffer.h:53
FSharedBuffer Buffer
Definition PackageWriterToSharedBuffer.h:54
Definition PackageWriterToSharedBuffer.h:57
TArray< FAdditionalFile > AdditionalFiles
Definition PackageWriterToSharedBuffer.h:68
TArray< FWritePackage > Packages
Definition PackageWriterToSharedBuffer.h:66
IPackageWriter::FBeginPackageInfo Begin
Definition PackageWriterToSharedBuffer.h:64
TArray< FBulkData > BulkDatas
Definition PackageWriterToSharedBuffer.h:67
TArray< FPackageTrailer > PackageTrailers
Definition PackageWriterToSharedBuffer.h:70
virtual ~FPackage()
Definition PackageWriterToSharedBuffer.h:59
TArray< FLinkerAdditionalData > LinkerAdditionalDatas
Definition PackageWriterToSharedBuffer.h:69
Definition PackageWriterToSharedBuffer.h:29
IPackageWriter::FPackageInfo Info
Definition PackageWriterToSharedBuffer.h:30
FSharedBuffer Buffer
Definition PackageWriterToSharedBuffer.h:31
TArray< FFileRegion > Regions
Definition PackageWriterToSharedBuffer.h:32
Definition PackageWriter.h:173
Definition PackageWriter.h:76
Definition PackageWriter.h:150
Definition PackageWriter.h:110
Definition PackageWriter.h:185
Definition PackageWriter.h:133
Definition PackageWriter.h:200