UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IoDirectoryIndex.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Array.h"
7#include "Containers/Map.h"
11#include "HAL/Platform.h"
12#include "Misc/AES.h"
13
14class FArchive;
15
20
30
39
49
51{
52public:
54
58
59 // Flush() can be called only once, because afterwards contents of Strings member
60 // will be empty as all strings have been moved away
62
63private:
64 uint32 GetDirectory(uint32 DirectoryName, uint32 Parent);
65 uint32 CreateDirectory(const FStringView& DirectoryName, uint32 Parent);
66 uint32 GetNameIndex(const FStringView& String);
67 uint32 AddFile(const FStringView& FileName, uint32 Directory);
68
69 static bool IsValid(uint32 Index)
70 {
71 return Index != ~uint32(0);
72 }
73
74 FString MountPoint;
75 TArray<FIoDirectoryIndexEntry> DirectoryEntries;
76 TArray<FIoFileIndexEntry> FileEntries;
77
78 // These FStringView's are referencing stable FString locations inside Strings
79 // member, and Strings member is only appended, never removed. It is safe to
80 // use StringToIndex during lifetime of this object while Strings member is
81 // populated by AddFile() until Flush() is called
82 TMap<FStringView, uint32> StringToIndex;
84};
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition IoDirectoryIndex.h:51
CORE_API uint32 AddFile(const FStringView &InFileName)
Definition IoDirectoryIndex.cpp:185
CORE_API void SetFileUserData(uint32 InFileEntryIndex, uint32 InUserData)
Definition IoDirectoryIndex.cpp:208
CORE_API void SetMountPoint(FString InMountPoint)
Definition IoDirectoryIndex.cpp:180
CORE_API FIoDirectoryIndexWriter()
Definition IoDirectoryIndex.cpp:174
Definition Array.h:670
Definition ChunkedArray.h:56
Definition UnrealString.h.inl:34
Definition IoDirectoryIndex.h:17
CORE_API FString GetCommonRootPath(const TArray< FStringView > &Filenames)
Definition IoDirectoryIndex.cpp:49
U16 Index
Definition radfft.cpp:71
Definition AES.h:27
Definition IoDirectoryIndex.h:22
uint32 Name
Definition IoDirectoryIndex.h:23
friend FArchive & operator<<(FArchive &Ar, FIoDirectoryIndexEntry &Entry)
Definition IoDirectoryIndex.cpp:134
uint32 FirstChildEntry
Definition IoDirectoryIndex.h:24
uint32 FirstFileEntry
Definition IoDirectoryIndex.h:26
uint32 NextSiblingEntry
Definition IoDirectoryIndex.h:25
Definition IoDirectoryIndex.h:41
TArray< FIoDirectoryIndexEntry > DirectoryEntries
Definition IoDirectoryIndex.h:43
friend FArchive & operator<<(FArchive &Ar, FIoDirectoryIndexResource &Entry)
Definition IoDirectoryIndex.cpp:153
TArray< FIoFileIndexEntry > FileEntries
Definition IoDirectoryIndex.h:44
FString MountPoint
Definition IoDirectoryIndex.h:42
TArray< FString > StringTable
Definition IoDirectoryIndex.h:45
Definition IoDirectoryIndex.h:32
uint32 UserData
Definition IoDirectoryIndex.h:35
friend FArchive & operator<<(FArchive &Ar, FIoFileIndexEntry &Entry)
Definition IoDirectoryIndex.cpp:144
uint32 Name
Definition IoDirectoryIndex.h:33
uint32 NextFileEntry
Definition IoDirectoryIndex.h:34