You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
48 lines
1.5 KiB
C++
48 lines
1.5 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "Containers/StringFwd.h"
|
|
#include "Misc/AsciiSet.h"
|
|
|
|
class FCbPackage;
|
|
class FDerivedDataCacheInterface;
|
|
enum class ECachePolicy : uint8;
|
|
|
|
namespace UE::DerivedData { class FCacheBucket; }
|
|
namespace UE::DerivedData { class FCacheRecord; }
|
|
namespace UE::DerivedData { class FCacheRecordBuilder; }
|
|
namespace UE::DerivedData { class FOptionalCacheRecord; }
|
|
namespace UE::DerivedData { struct FCacheKey; }
|
|
|
|
namespace UE::DerivedData::Private
|
|
{
|
|
|
|
// Implemented in DerivedDataCache.cpp
|
|
FDerivedDataCacheInterface* CreateCache();
|
|
|
|
// Implemented in DerivedDataCacheKey.cpp
|
|
FCacheBucket CreateCacheBucket(FStringView Name);
|
|
|
|
// Implemented in DerivedDataCacheRecord.cpp
|
|
FCacheRecordBuilder CreateCacheRecordBuilder(const FCacheKey& Key);
|
|
FCbPackage SaveCacheRecord(const FCacheRecord& Record);
|
|
FOptionalCacheRecord LoadCacheRecord(const FCbPackage& Package);
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
inline bool IsValidCacheBucketName(FStringView Name)
|
|
{
|
|
constexpr FAsciiSet Valid("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789");
|
|
return !Name.IsEmpty() && Name.Len() < 256 && FAsciiSet::HasOnly(Name, Valid);
|
|
}
|
|
|
|
inline void AssertValidCacheBucketName(FStringView Name)
|
|
{
|
|
checkf(IsValidCacheBucketName(Name),
|
|
TEXT("A cache bucket name must be alphanumeric, non-empty, and contain fewer than 256 code units. ")
|
|
TEXT("Name: '%.*s'"), Name.Len(), Name.GetData());
|
|
}
|
|
|
|
} // UE::DerivedData::Private
|