6#include "Containers/Array.h"
45 static constexpr inline char TocMagicImg[] =
"-==--==--==--==-";
163 uint8 Data[5 + 3 + 3 + 1];
190 const int32 RequestedSize =
Num *
static_cast<int32>(
sizeof(T));
202 ReleaseOwnershipOfLastBlock();
210 CORE_API void ReleaseOwnershipOfLastBlock();
212 struct FIOStoreAllocationTag
214 static constexpr uint32 BlockSize = 64 * 1024;
215 static constexpr bool AllowOversizedBlocks =
true;
216 static constexpr bool RequiresAccurateSize =
true;
217 static constexpr bool InlineBlockAllocation =
false;
218 static constexpr const char* TagName =
"IOStoreLinear";
230 bool bLastReadBlockWasOwned =
false;
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
EIoContainerFlags
Definition IoDispatcher.h:480
FIoStoreTocEntryMetaFlags
Definition IoStore.h:83
EIoStoreTocReadOptions
Definition IoStore.h:170
EIoStoreTocVersion
Definition IoStore.h:26
@ RemovedOnDemandMetaData
@ ReplaceIoChunkHashWithIoHash
@ PerfectHashWithOverflow
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
decltype(auto) Visit(Func &&Callable, Variants &&... Args)
Definition TVariant.h:271
uint32 Offset
Definition VulkanMemory.cpp:4033
uint32 Size
Definition VulkanMemory.cpp:4034
Definition IoChunkId.h:64
Definition IoContainerId.h:18
Definition SecureHash.h:226
Definition ConcurrentLinearAllocator.h:121
Definition IoStatus.h:101
Definition ConcurrentLinearAllocator.h:624
Definition ContainerAllocationPolicies.h:894
Definition UniquePtr.h:107
bool IsType() const
Definition TVariant.h:138
UE_FORCEINLINE_HINT bool IsEmpty() const
Definition UnrealString.h.inl:339
result< typename gen_t::syntax_t, typename gen_t::error_t > File(gen_t &Gen, nat n, const char8 *s, nat Line=1)
Definition VerseGrammar.h:2834
U16 Index
Definition radfft.cpp:71
Definition IoDispatcher.h:491
Definition IoDispatcher.h:526
static constexpr uint32 SizeShift
Definition IoStore.h:111
void SetUncompressedSize(uint32 InSize)
Definition IoStore.h:143
static constexpr uint32 OffsetBits
Definition IoStore.h:107
void SetCompressedSize(uint32 InSize)
Definition IoStore.h:131
uint64 GetOffset() const
Definition IoStore.h:113
uint32 GetUncompressedSize() const
Definition IoStore.h:137
uint8 GetCompressionMethodIndex() const
Definition IoStore.h:149
void SetCompressionMethodIndex(uint8 InIndex)
Definition IoStore.h:155
void SetOffset(uint64 InOffset)
Definition IoStore.h:119
static constexpr uint32 SizeBits
Definition IoStore.h:109
static constexpr uint32 SizeMask
Definition IoStore.h:110
static constexpr uint64 OffsetMask
Definition IoStore.h:108
uint32 GetCompressedSize() const
Definition IoStore.h:125
FIoHash ChunkHash
Definition IoStore.h:97
FIoStoreTocEntryMetaFlags Flags
Definition IoStore.h:98
uint8 Pad[3]
Definition IoStore.h:99
CORE_API void FinalizeRead()
Definition IoStore.cpp:1234
TConstArrayView< T > ChopView(int32 Num)
Definition IoStore.h:188
FIoStoreTocResourceStorage()=default
bool IsLoaded() const
Definition IoStore.h:184
TArray< T > ChopArray(int32 Num)
Definition IoStore.h:197
CORE_API uint64 GetAllocatedSize() const
Definition IoStore.cpp:1144
TConstArrayView< FIoOffsetAndLength > ChunkOffsetLengths
Definition IoStore.h:258
TConstArrayView< FIoStoreTocEntryMeta > ChunkMetas
Definition IoStore.h:267
TArray< FIoStoreTocEntryMeta > LegacyChunkMetas
Definition IoStore.h:268
TConstArrayView< FSHAHash > ChunkBlockSignatures
Definition IoStore.h:265
TConstArrayView< int32 > ChunkIndicesWithoutPerfectHash
Definition IoStore.h:260
TArray< FName > CompressionMethods
Definition IoStore.h:263
TConstArrayView< int32 > ChunkPerfectHashSeeds
Definition IoStore.h:259
TConstArrayView< uint8 > DirectoryIndexBuffer
Definition IoStore.h:266
TConstArrayView< FIoChunkId > ChunkIds
Definition IoStore.h:257
CORE_API FIoStoreTocChunkInfo GetTocChunkInfo(int32 TocEntryIndex) const
Definition IoStore.cpp:310
FIoStoreTocHeader Header
Definition IoStore.h:256
TConstArrayView< FIoStoreTocCompressedBlockEntry > CompressionBlocks
Definition IoStore.h:261
FSHAHash SignatureHash
Definition IoStore.h:264
TArray< int32 > ChunkIndicesWithoutPerfectHash
Definition IoStore.h:289
CORE_API FIoStoreTocChunkInfo GetTocChunkInfo(int32 TocEntryIndex) const
Definition IoStore.cpp:1420
TArray< FIoStoreTocCompressedBlockEntry > CompressionBlocks
Definition IoStore.h:291
TArray< FSHAHash > ChunkBlockSignatures
Definition IoStore.h:297
TArray< FIoStoreTocEntryMeta > ChunkMetas
Definition IoStore.h:301
TArray< FIoOffsetAndLength > ChunkOffsetLengths
Definition IoStore.h:285
TArray< FName > CompressionMethods
Definition IoStore.h:293
static CORE_API uint64 HashChunkIdWithSeed(int32 Seed, const FIoChunkId &ChunkId)
Definition IoStore.cpp:1649
FIoStoreTocHeader Header
Definition IoStore.h:281
TArray< int32 > ChunkPerfectHashSeeds
Definition IoStore.h:287
static CORE_API FIoStoreTocResource BuildResourceFromMappedView(const FIoStoreTocResourceView &View)
Definition IoStore.cpp:1425
TArray< FIoChunkId > ChunkIds
Definition IoStore.h:283
TArray< uint8 > DirectoryIndexBuffer
Definition IoStore.h:299
@ CompressionMethodNameLen
Definition IoStore.h:279
FSHAHash SignatureHash
Definition IoStore.h:295
static UE_FORCEINLINE_HINT int32 Memcmp(const void *Buf1, const void *Buf2, SIZE_T Count)
Definition UnrealMemory.h:114
static UE_FORCEINLINE_HINT void * Memcpy(void *Dest, const void *Src, SIZE_T Count)
Definition UnrealMemory.h:160