Files
UnrealEngine/Engine/Source/Editor/UnrealEd/Private/Cooker/DiffWriterLinkerLoadHeader.h
2025-05-18 13:04:45 +08:00

47 lines
1.8 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "DiffWriterArchive.h"
namespace UE::DiffWriter
{
/**
* Context object for DumpTableDifferences when we are using EPackageHeaderFormat::PackageFileSummary and so the
* header information comes from FLinkerLoad.
*/
struct FDiffWriterLinkerLoadHeader
{
public:
FLinkerLoad* Linker = nullptr;
const FMessageCallback& MessageCallback;
public:
// Constructor
FDiffWriterLinkerLoadHeader(FLinkerLoad* InLinker, const FMessageCallback& InMessageCallback);
// API for DumpTableDifferences
FString GetTableKey(const FObjectExport& Export);
FString GetTableKey(const FObjectImport& Import);
FString GetTableKey(const FName& Name);
FString GetTableKey(FNameEntryId Id);
FString GetTableKeyForIndex(FPackageIndex Index);
FString ConvertItemToText(const FObjectExport& Export);
FString ConvertItemToText(const FName& Name);
FString ConvertItemToText(FNameEntryId Id);
FString ConvertItemToText(const FObjectImport& Import);
bool CompareTableItem(FDiffWriterLinkerLoadHeader& DestContext, const FName& SourceName, const FName& DestName);
bool CompareTableItem(FDiffWriterLinkerLoadHeader& DestContext, FNameEntryId SourceName, FNameEntryId DestName);
bool CompareTableItem(FDiffWriterLinkerLoadHeader& DestContext, const FObjectImport& SourceImport,
const FObjectImport& DestImport);
bool CompareTableItem(FDiffWriterLinkerLoadHeader& DestContext, const FObjectExport& SourceExport,
const FObjectExport& DestExport);
bool ComparePackageIndices(FDiffWriterLinkerLoadHeader& DestContext, const FPackageIndex& SourceIndex,
const FPackageIndex& DestIndex);
bool IsImportMapIdentical(FDiffWriterLinkerLoadHeader& DestContext);
bool IsExportMapIdentical(FDiffWriterLinkerLoadHeader& DestContext);
void LogMessage(ELogVerbosity::Type Verbosity, FStringView Message);
};
}