EM_Task/AssetRegistry/Private/DiskCachedAssetData.h
Boshuang Zhao 5144a49c9b add
2026-02-13 16:18:33 +08:00

50 lines
1.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "AssetRegistry/AssetData.h"
#include "PackageDependencyData.h"
class FDiskCachedAssetData
{
public:
FDateTime Timestamp;
FName Extension;
TArray<FAssetData> AssetDataList;
FPackageDependencyData DependencyData;
FDiskCachedAssetData()
{}
FDiskCachedAssetData(const FDateTime& InTimestamp, FName InExtension)
: Timestamp(InTimestamp), Extension(InExtension)
{}
/**
* Serialize as part of the registry cache. This is not meant to be serialized as part of a package so it does not handle versions normally
* To version this data change FAssetRegistryVersion or CacheSerializationVersion
*/
template <class Archive>
void SerializeForCache(Archive&& Ar)
{
Ar << Timestamp;
Ar << Extension;
int32 AssetDataCount = AssetDataList.Num();
Ar << AssetDataCount;
if (Ar.IsLoading())
{
AssetDataList.SetNum(AssetDataCount);
}
for (int32 i = 0; i < AssetDataCount; i++)
{
AssetDataList[i].SerializeForCache(Ar);
}
DependencyData.SerializeForCache(Ar);
}
};