93 lines
1.6 KiB
C++
93 lines
1.6 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "Misc/DateTime.h"
|
|
#include "UObject/NameTypes.h"
|
|
#include "HAL/ThreadSafeBool.h"
|
|
|
|
class FArchive;
|
|
|
|
/**
|
|
* Cache entry metadata.
|
|
*/
|
|
class FCacheEntryMetadata
|
|
{
|
|
public:
|
|
FCacheEntryMetadata(const FDateTime& InLastAccessTime
|
|
, int32 InCachedAssetSize
|
|
, int32 InCachedAssetVersion
|
|
, FName InName)
|
|
: LastAccessTime(InLastAccessTime)
|
|
, CachedAssetSize(InCachedAssetSize)
|
|
, CachedAssetVersion(InCachedAssetVersion)
|
|
, Name(InName)
|
|
, bIsBuilding(true)
|
|
{ }
|
|
|
|
FCacheEntryMetadata()
|
|
: LastAccessTime(FDateTime::Now())
|
|
, CachedAssetSize(0)
|
|
, CachedAssetVersion(0)
|
|
, Name(NAME_None)
|
|
, bIsBuilding(false)
|
|
{ }
|
|
|
|
int32 GetCachedAssetVersion() const
|
|
{
|
|
return CachedAssetVersion;
|
|
}
|
|
|
|
void SetCachedAssetVersion(int32 Version)
|
|
{
|
|
CachedAssetVersion = Version;
|
|
}
|
|
|
|
int32 GetCachedAssetSize() const
|
|
{
|
|
return CachedAssetSize;
|
|
}
|
|
|
|
void SetCachedAssetSize(int64 Value)
|
|
{
|
|
CachedAssetSize = Value;
|
|
}
|
|
|
|
void SetLastAccessTime(FDateTime Value)
|
|
{
|
|
LastAccessTime = Value;
|
|
}
|
|
|
|
FDateTime GetLastAccessTime() const
|
|
{
|
|
return LastAccessTime;
|
|
}
|
|
|
|
FName GetName() const
|
|
{
|
|
return Name;
|
|
}
|
|
|
|
bool IsBuilding() const
|
|
{
|
|
return bIsBuilding;
|
|
}
|
|
|
|
void FinishBuilding()
|
|
{
|
|
bIsBuilding = false;
|
|
}
|
|
|
|
friend FArchive& operator<<(FArchive& Ar, FCacheEntryMetadata& Metadata);
|
|
|
|
private:
|
|
FDateTime LastAccessTime;
|
|
int64 CachedAssetSize;
|
|
int32 CachedAssetVersion;
|
|
FName Name;
|
|
FThreadSafeBool bIsBuilding;
|
|
};
|
|
|
|
FArchive& operator<<(FArchive& Ar, FCacheEntryMetadata& Metadata);
|