2021-01-21 01:57:01 -04:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
|
|
|
|
|
|
#include "DerivedDataCacheRecord.h"
|
|
|
|
|
|
|
|
|
|
namespace UE
|
|
|
|
|
{
|
|
|
|
|
namespace DerivedData
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
FCacheRecord::FCacheRecord() = default;
|
|
|
|
|
|
|
|
|
|
void FCacheRecord::Reset()
|
|
|
|
|
{
|
|
|
|
|
*this = FCacheRecord();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void FCacheRecord::SetBinary(FSharedBuffer Value)
|
|
|
|
|
{
|
2021-01-28 09:50:58 -04:00
|
|
|
check(Value);
|
2021-01-21 01:57:01 -04:00
|
|
|
Package.Reset();
|
|
|
|
|
Binary = MoveTemp(Value);
|
2021-02-02 02:24:52 -04:00
|
|
|
BinaryHash = Binary.GetSize() ? FIoHash::HashBuffer(Binary) : FIoHash();
|
2021-01-28 09:50:58 -04:00
|
|
|
Type = ECacheRecordType::Binary;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void FCacheRecord::SetBinary(FSharedBuffer Value, const FIoHash& ValueHash)
|
|
|
|
|
{
|
|
|
|
|
check(Value);
|
|
|
|
|
if (Value.GetSize())
|
|
|
|
|
{
|
|
|
|
|
checkSlow(ValueHash == FIoHash::HashBuffer(Value));
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
checkfSlow(ValueHash.IsZero(), TEXT("A null or empty buffer must use a hash of zero."));
|
|
|
|
|
}
|
|
|
|
|
Package.Reset();
|
|
|
|
|
Binary = MoveTemp(Value);
|
|
|
|
|
BinaryHash = ValueHash;
|
2021-01-21 01:57:01 -04:00
|
|
|
Type = ECacheRecordType::Binary;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void FCacheRecord::SetObject(FCbObjectRef Value)
|
|
|
|
|
{
|
|
|
|
|
Binary.Reset();
|
2021-01-28 09:50:58 -04:00
|
|
|
BinaryHash.Reset();
|
|
|
|
|
Package = FCbPackage(MoveTemp(Value));
|
|
|
|
|
Type = ECacheRecordType::Object;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void FCacheRecord::SetObject(FCbObjectRef Value, const FIoHash& ValueHash)
|
|
|
|
|
{
|
|
|
|
|
Binary.Reset();
|
|
|
|
|
BinaryHash.Reset();
|
|
|
|
|
Package = FCbPackage(MoveTemp(Value), ValueHash);
|
2021-01-21 01:57:01 -04:00
|
|
|
Type = ECacheRecordType::Object;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void FCacheRecord::SetPackage(FCbPackage Value)
|
|
|
|
|
{
|
|
|
|
|
Binary.Reset();
|
2021-01-28 09:50:58 -04:00
|
|
|
BinaryHash.Reset();
|
2021-01-21 01:57:01 -04:00
|
|
|
Package = MoveTemp(Value);
|
|
|
|
|
Type = ECacheRecordType::Package;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
} // DerivedData
|
|
|
|
|
} // UE
|