32 , BuildFiles(ListHelpers::GetFileList(Manifest))
33 , OtherBuildFiles(ListHelpers::GetFileList(OtherManifest))
41 if (LoadedFile.
IsValid() ==
false)
46 return LoadedFile.
Get();
58 if (LoadedChunks.Contains(ChunkPart.
Guid) ==
false)
92 for (
const FString& BuildFilename : (
bUseOther ? OtherBuildFiles : BuildFiles))
95 check(FileManifest !=
nullptr);
133 check(OutData.
Num() == ExpectedSize);
138 if (BuildLocation.IsEmpty())
149 if (BuildLocation.IsEmpty())
160 if (BuildLocation.IsEmpty())
166 const FFilenameId&
FilenameId = ChunkBuildReference.Get<1>();
167 const uint64& FileOffset = ChunkBuildReference.Get<3>();
181 if (BuildLocation.IsEmpty())
195 if (BuildLocation.IsEmpty())
204 for (
const FChunkPart& ChunkPart : FileManifest.ChunkParts)
207 if (ChunkPart.Guid.IsValid())
223 if (BuildLocation.IsEmpty())
244 if (BuildLocation.IsEmpty())
256 if (
ChunkNode->GetValue().ChunkPart.Guid.IsValid())
272 if (BuildLocation.IsEmpty())
276 const FScannerFilesListNode* Node =
ChunkDList.GetHead();
279 const FScannerFileElement& Element = Node->GetValue();
282 const FFilenameId&
FilenameId = Element.Get<1>();
283 const uint64& FileOffset = Element.Get<3>();
291 Node = Node->GetNextNode();
303 check(
FileNode->GetValue().Manifest->Filename == FileManifest.Filename);
305 check(FileManifest.ChunkParts.Num() ==
FileNode->GetValue().ChunkParts.Num());
307 for (
const FChunkPart& ChunkPart : FileManifest.ChunkParts)
311 check(ChunkPart.Offset ==
ChunkNode->GetValue().ChunkPart.Offset);
359 const FString BuildLocation;
360 const FString OtherBuildLocation;
361 const FString CloudDir;
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition BlockStructure.h:37
const FBlockEntry * GetHead() const
Definition BlockStructure.cpp:181
Definition BuildDataVerifier.h:22
void GetChunkData(const FChunkPart &ChunkPart, TArray< uint8 > &OutData, FParallelChunkWriterSummaries *ChunkWriterSummaries=nullptr)
Definition BuildDataVerifier.h:49
FBuildDataVerifier(IFileSystem *InFileSystem, IChunkDataSerialization *InChunkDataSerialization, const FString &InBuildLocation, const FString &InOtherBuildLocation, const FString &InCloudDir, const FBuildPatchAppManifest &InManifest, const FBuildPatchAppManifest &InOtherManifest)
Definition BuildDataVerifier.h:24
void GetBuildData(const FBlockStructure &BlockStructure, TArray< uint8 > &OutData, bool bUseOther=false)
Definition BuildDataVerifier.h:123
FArchive * LoadFile(const FString &BuildFile, bool bUseOther)
Definition BuildDataVerifier.h:37
void CheckDataAndAssert(const FScannerFilesList &ChunkDList, const IDeltaChunkEnumeration *DeltaChunkEnumeration, const TArray< uint8 > &ScannerData, bool bUseOther=false)
Definition BuildDataVerifier.h:270
void GetBuildData(const FBlockRange &BlockRange, TArray< uint8 > &OutData, bool bUseOther=false)
Definition BuildDataVerifier.h:88
void CheckDataAndAssert(const FBlockStructure &BlockStructure, const FBlockStructure &OtherBlockStructure)
Definition BuildDataVerifier.h:179
void CheckDataAndAssert(const FBlockStructure &BlockStructure, const FSHAHash &SHAHash)
Definition BuildDataVerifier.h:147
void GetFileData(const FString &BuildFilename, const FBlockRange &BlockRange, TArray< uint8 > &OutData, bool bUseOther=false)
Definition BuildDataVerifier.h:78
void CheckDataAndAssert(const FBlockStructure &BlockStructure, const FChunkPart &ChunkPart, bool bUseOther=false)
Definition BuildDataVerifier.h:221
void CheckDataAndAssert(const IDeltaChunkEnumeration *DeltaChunkEnumeration, const FChunkBuildReference &ChunkBuildReference)
Definition BuildDataVerifier.h:158
void CheckDataAndAssert(const FBlockStructure &BlockStructure, const uint8 *Data)
Definition BuildDataVerifier.h:136
void FindDifferences(const FFileManifestList &FileManifestListA, const FFileManifestList &FileManifestListB)
Definition BuildDataVerifier.h:322
void CheckDataAndAssert(const FFileManifestList &FileManifestList, FParallelChunkWriterSummaries *ChunkWriterSummaries=nullptr)
Definition BuildDataVerifier.h:193
void CheckDataAndAssert(FChunkSearcher::FChunkDList &ChunkDList, bool bUseOther=false)
Definition BuildDataVerifier.h:242
void FindDifferences(const FFileManifestList &FileManifestList, FChunkSearcher::FFileDListNode *FileHead)
Definition BuildDataVerifier.h:295
FFileDList::TDoubleLinkedListNode FFileDListNode
Definition ChunkSearch.h:114
Definition ChunkData.h:358
virtual IChunkDataAccess * LoadFromFile(const FString &Filename, EChunkLoadResult &OutLoadResult) const =0
Definition DeltaEnumeration.h:25
Definition FileSystem.h:51
virtual TUniquePtr< FArchive > CreateFileReader(const TCHAR *Filename, EReadFlags ReadFlags=EReadFlags::None) const =0
Definition Archive.h:1208
Definition BuildPatchManifest.h:64
virtual const BuildPatchServices::FChunkInfo * GetChunkInfo(const FGuid &ChunkGuid) const
Definition BuildPatchManifest.cpp:1069
Definition SecureHash.h:226
UE_FORCEINLINE_HINT SizeType AddUninitialized()
Definition Array.h:1664
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT ElementType * GetData() UE_LIFETIMEBOUND
Definition Array.h:1027
void Append(const TArray< OtherElementType, OtherAllocatorType > &Source)
Definition Array.h:2412
void SetNumUninitialized(SizeType NewNum, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:2369
const ElementType & GetValue() const
Definition List.h:452
Definition UnrealString.h.inl:34
Definition UniquePtr.h:107
bool IsValid() const
Definition UniquePtr.h:280
UE_FORCEINLINE_HINT T * Get() const
Definition UniquePtr.h:324
Definition BuildPatchFileConstructor.h:28
FSHAHash GetShaForDataSet(const uint8 *Data, uint32 Size)
Definition ChunkDeltaOptimiser.cpp:59
Definition BlockStructure.h:10
Definition BlockRange.h:13
static FBlockRange FromIntersection(const FBlockRange &RangeA, const FBlockRange &RangeB)
Definition BlockRange.h:57
static FBlockRange FromFirstAndSize(uint64 InFirst, uint64 InSize)
Definition BlockRange.h:42
Definition ChunkData.h:188
uint32 Offset
Definition ChunkData.h:217
FGuid Guid
Definition ChunkData.h:215
uint32 Size
Definition ChunkData.h:219
bool IsPadding() const
Definition ChunkData.h:202
uint8 GetPaddingByte() const
Definition ChunkData.h:210
Definition ManifestData.h:159
TArray< FFileManifest > FileList
Definition ManifestData.h:173
Definition ManifestData.h:140
uint64 FileSize
Definition ManifestData.h:155
TArray< FChunkPart > ChunkParts
Definition ManifestData.h:153
Definition ChunkWriter.h:26
Definition ChunkData.h:330
uint8 * GetData() const
Definition ChunkData.cpp:427
static FString GetDataFilename(const FBuildPatchAppManifestRef &Manifest, const FGuid &DataGUID)
Definition BuildPatchUtil.cpp:96
static FString GetChunkNewFilename(BuildPatchServices::EFeatureLevel FeatureLevel, const FGuid &ChunkGUID, const uint64 &ChunkHash)
Definition BuildPatchUtil.cpp:19
bool IsValid() const
Definition Guid.h:318
static UE_FORCEINLINE_HINT int32 Memcmp(const void *Buf1, const void *Buf2, SIZE_T Count)
Definition UnrealMemory.h:114
static UE_FORCEINLINE_HINT void * Memset(void *Dest, uint8 Char, SIZE_T Count)
Definition UnrealMemory.h:119