UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IPlatformFileOpenLogWrapper.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "Containers/Array.h"
7#include "Containers/Map.h"
10#include "CoreTypes.h"
12#include "HAL/CriticalSection.h"
13#include "HAL/PlatformCrt.h"
14#include "HAL/PlatformMisc.h"
17#include "Misc/DateTime.h"
18#include "Misc/Parse.h"
19#include "Misc/Paths.h"
20
24
25#if !UE_BUILD_SHIPPING
26
27#define FILE_OPEN_ORDER_LABEL(Format, ...) \
28 FPlatformFileOpenLog::AddLabel( Format, ##__VA_ARGS__ );
29
31{
33 FString Filename;
34 IAsyncReadFileHandle* ActualRequest;
35public:
43 {
44 delete ActualRequest;
45 }
46 virtual IAsyncReadRequest* SizeRequest(FAsyncFileCallBack* CompleteCallback = nullptr) override
47 {
48 return ActualRequest->SizeRequest(CompleteCallback);
49 }
50 virtual IAsyncReadRequest* ReadRequest(int64 Offset, int64 BytesToRead, EAsyncIOPriorityAndFlags PriorityAndFlags = AIOP_Normal, FAsyncFileCallBack* CompleteCallback = nullptr, uint8* UserSuppliedMemory = nullptr) override;
51
52 virtual bool UsesCache() override
53 {
54 return ActualRequest->UsesCache();
55 }
56};
57
58
60{
61protected:
62
69
70public:
71
73 : LowerLevel(nullptr)
74 , OpenOrder(0)
76 {
77 }
78
80 {
81 }
82
83 //~ For visibility of overloads we don't override
88
89 virtual bool ShouldBeUsed(IPlatformFile* Inner, const TCHAR* CmdLine) const override
90 {
91 bool bResult = FParse::Param(CmdLine, TEXT("FileOpenLog")) || FParse::Param(CmdLine, TEXT("FilePackageOpenLog"));
92 return bResult;
93 }
94
95 virtual bool Initialize(IPlatformFile* Inner, const TCHAR* CommandLineParam) override;
96
97 virtual IPlatformFile* GetLowerLevel() override
98 {
99 return LowerLevel;
100 }
102 {
104 }
105 static const TCHAR* GetTypeName()
106 {
107 return TEXT("FileOpenLog");
108 }
109 virtual const TCHAR* GetName() const override
110 {
111 return GetTypeName();
112 }
113 virtual bool FileExists(const TCHAR* Filename) override
114 {
115 return LowerLevel->FileExists(Filename);
116 }
117 virtual int64 FileSize(const TCHAR* Filename) override
118 {
119 return LowerLevel->FileSize(Filename);
120 }
121 virtual bool DeleteFile(const TCHAR* Filename) override
122 {
123 return LowerLevel->DeleteFile(Filename);
124 }
125 virtual bool IsReadOnly(const TCHAR* Filename) override
126 {
127 return LowerLevel->IsReadOnly(Filename);
128 }
129 virtual bool MoveFile(const TCHAR* To, const TCHAR* From) override
130 {
131 return LowerLevel->MoveFile(To, From);
132 }
133 virtual bool SetReadOnly(const TCHAR* Filename, bool bNewReadOnlyValue) override
134 {
135 return LowerLevel->SetReadOnly(Filename, bNewReadOnlyValue);
136 }
137 virtual FDateTime GetTimeStamp(const TCHAR* Filename) override
138 {
139 return LowerLevel->GetTimeStamp(Filename);
140 }
141 virtual void SetTimeStamp(const TCHAR* Filename, FDateTime DateTime) override
142 {
143 LowerLevel->SetTimeStamp(Filename, DateTime);
144 }
145 virtual FDateTime GetAccessTimeStamp(const TCHAR* Filename) override
146 {
147 return LowerLevel->GetAccessTimeStamp(Filename);
148 }
149 virtual FString GetFilenameOnDisk(const TCHAR* Filename) override
150 {
151 return LowerLevel->GetFilenameOnDisk(Filename);
152 }
153 virtual IFileHandle* OpenRead(const TCHAR* Filename, bool bAllowWrite) override
154 {
155 IFileHandle* Result = LowerLevel->OpenRead(Filename, bAllowWrite);
156 if (Result)
157 {
158 AddToOpenLog(Filename);
159 }
160 return Result;
161 }
162 virtual IFileHandle* OpenWrite(const TCHAR* Filename, bool bAppend = false, bool bAllowRead = false) override
163 {
164 return LowerLevel->OpenWrite(Filename, bAppend, bAllowRead);
165 }
166 virtual bool DirectoryExists(const TCHAR* Directory) override
167 {
168 return LowerLevel->DirectoryExists(Directory);
169 }
170 virtual bool CreateDirectory(const TCHAR* Directory) override
171 {
172 return LowerLevel->CreateDirectory(Directory);
173 }
174 virtual bool DeleteDirectory(const TCHAR* Directory) override
175 {
176 return LowerLevel->DeleteDirectory(Directory);
177 }
182 virtual bool IterateDirectory(const TCHAR* Directory, IPlatformFile::FDirectoryVisitor& Visitor) override
183 {
184 return LowerLevel->IterateDirectory( Directory, Visitor );
185 }
186 virtual bool IterateDirectoryRecursively(const TCHAR* Directory, IPlatformFile::FDirectoryVisitor& Visitor) override
187 {
188 return LowerLevel->IterateDirectoryRecursively( Directory, Visitor );
189 }
190 virtual bool IterateDirectoryStat(const TCHAR* Directory, IPlatformFile::FDirectoryStatVisitor& Visitor) override
191 {
192 return LowerLevel->IterateDirectoryStat( Directory, Visitor );
193 }
194 virtual bool IterateDirectoryStatRecursively(const TCHAR* Directory, IPlatformFile::FDirectoryStatVisitor& Visitor) override
195 {
196 return LowerLevel->IterateDirectoryStatRecursively( Directory, Visitor );
197 }
198 virtual bool DeleteDirectoryRecursively(const TCHAR* Directory) override
199 {
200 return LowerLevel->DeleteDirectoryRecursively( Directory );
201 }
206 virtual bool CreateDirectoryTree(const TCHAR* Directory) override
207 {
208 return LowerLevel->CreateDirectoryTree(Directory);
209 }
210 virtual bool CopyDirectoryTree(const TCHAR* DestinationDirectory, const TCHAR* Source, bool bOverwriteAllExisting) override
211 {
212 return LowerLevel->CopyDirectoryTree(DestinationDirectory, Source, bOverwriteAllExisting);
213 }
214 virtual FString ConvertToAbsolutePathForExternalAppForRead( const TCHAR* Filename ) override
215 {
217 }
218 virtual FString ConvertToAbsolutePathForExternalAppForWrite( const TCHAR* Filename ) override
219 {
221 }
222 virtual bool SendMessageToServer(const TCHAR* Message, IFileServerMessageHandler* Handler) override
223 {
224 return LowerLevel->SendMessageToServer(Message, Handler);
225 }
226 virtual bool FileJournalIsAvailable(const TCHAR* VolumeOrPath = nullptr,
227 ELogVerbosity::Type* OutErrorLevel = nullptr, FString* OutError = nullptr) override
228 {
230 }
231 virtual bool FileJournalIterateDirectory(const TCHAR* Directory,
232 FDirectoryJournalVisitorFunc Visitor, FString* OutError = nullptr) override
233 {
234 return LowerLevel->FileJournalIterateDirectory(Directory, Visitor, OutError);
235 }
255 {
257 }
259 ELogVerbosity::Type* OutErrorLevel = nullptr, FString* OutError = nullptr) const override
260 {
262 }
263 virtual IAsyncReadFileHandle* OpenAsyncRead(const TCHAR* Filename, bool bAllowWrite = false) override
264 {
265 // we must not record the "open" here...what matters is when we start reading the file!
266 return new FLoggingAsyncReadFileHandle(this, Filename, LowerLevel->OpenAsyncRead(Filename, bAllowWrite));
267 }
268 virtual FOpenMappedResult OpenMappedEx(const TCHAR* Filename, EOpenReadFlags OpenOptions = EOpenReadFlags::None, int64 MaximumSize = 0) override;
269
270 void AddToOpenLog(const TCHAR* Filename)
271 {
272 CriticalSection.Lock();
273 if (bLogDuplicates)
274 {
275 FString Text = FString::Printf(TEXT("\"%s\"\n"), Filename);
276 for (auto File = LogOutput.CreateIterator(); File; ++File)
277 {
278 (*File)->Write((uint8*)StringCast<ANSICHAR>(*Text).Get(), Text.Len());
279 }
280 }
281 else if (FilenameAccessMap.Find(Filename) == nullptr)
282 {
283 FilenameAccessMap.Emplace(Filename, ++OpenOrder);
284 FString Text = FString::Printf(TEXT("\"%s\" %llu\n"), Filename, OpenOrder);
285 for (auto File = LogOutput.CreateIterator(); File; ++File)
286 {
287 (*File)->Write((uint8*)StringCast<ANSICHAR>(*Text).Get(), Text.Len());
288 }
289 }
290 CriticalSection.Unlock();
291 }
292
294 {
295 CriticalSection.Lock();
296 for (auto File = LogOutput.CreateIterator(); File; ++File)
297 {
298 FString Text = FString::Printf(TEXT("# %s\n"), LabelStr);
299 (*File)->Write((uint8*)StringCast<ANSICHAR>(*Text).Get(), Text.Len());
300 }
301 CriticalSection.Unlock();
302 }
303
304
305 void AddPackageToOpenLog(const TCHAR* Filename)
306 {
307 // TODO: deprecate/remove this function?
308 AddToOpenLog(Filename);
309 }
310
311 template <typename FmtType, typename... Types>
312 static void AddLabel(const FmtType& Fmt, Types... Args)
313 {
314 static_assert(TIsArrayOrRefOfTypeByPredicate<FmtType, TIsCharEncodingCompatibleWithTCHAR>::Value, "Formatting string must be a TCHAR array.");
315 static_assert((TIsValidVariadicFunctionArg<Types>::Value && ...), "Invalid argument(s) passed to FCsvProfiler::AddLabel");
316 AddLabelInternal((const TCHAR*)Fmt, Args...);
317 }
318
319private:
320 static CORE_API void VARARGS AddLabelInternal(const TCHAR* Fmt, ...);
321
322};
323#else // !UE_BUILD_SHIPPING
324
325#define FILE_OPEN_ORDER_LABEL(Format, ...)
326
327#endif
328
#define VARARGS
Definition AndroidPlatform.h:134
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
uint64 FFileJournalEntryHandle
Definition GenericPlatformFile.h:250
EPlatformFileRead
Definition GenericPlatformFile.h:59
uint64 FFileJournalId
Definition GenericPlatformFile.h:244
EFileJournalResult
Definition GenericPlatformFile.h:100
EPlatformFileWrite
Definition GenericPlatformFile.h:70
EAsyncIOPriorityAndFlags
Definition GenericPlatformFile.h:31
@ AIOP_Normal
Definition GenericPlatformFile.h:44
uint32 Offset
Definition VulkanMemory.cpp:4033
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition IPlatformFileOpenLogWrapper.h:31
~FLoggingAsyncReadFileHandle()
Definition IPlatformFileOpenLogWrapper.h:42
virtual IAsyncReadRequest * SizeRequest(FAsyncFileCallBack *CompleteCallback=nullptr) override
Definition IPlatformFileOpenLogWrapper.h:46
virtual IAsyncReadRequest * ReadRequest(int64 Offset, int64 BytesToRead, EAsyncIOPriorityAndFlags PriorityAndFlags=AIOP_Normal, FAsyncFileCallBack *CompleteCallback=nullptr, uint8 *UserSuppliedMemory=nullptr) override
Definition IPlatformFileOpenLogWrapper.cpp:13
virtual bool UsesCache() override
Definition IPlatformFileOpenLogWrapper.h:52
FLoggingAsyncReadFileHandle(FPlatformFileOpenLog *InOwner, const TCHAR *InFilename, IAsyncReadFileHandle *InActualRequest)
Definition IPlatformFileOpenLogWrapper.h:36
Definition IPlatformFileOpenLogWrapper.h:60
FCriticalSection CriticalSection
Definition IPlatformFileOpenLogWrapper.h:64
virtual bool DirectoryExists(const TCHAR *Directory) override
Definition IPlatformFileOpenLogWrapper.h:166
virtual FString FileJournalGetVolumeName(FStringView InPath) override
Definition IPlatformFileOpenLogWrapper.h:254
static const TCHAR * GetTypeName()
Definition IPlatformFileOpenLogWrapper.h:105
virtual bool IterateDirectoryStatRecursively(const TCHAR *Directory, IPlatformFile::FDirectoryStatVisitor &Visitor) override
Definition IPlatformFileOpenLogWrapper.h:194
virtual bool IterateDirectoryRecursively(const TCHAR *Directory, IPlatformFile::FDirectoryVisitor &Visitor) override
Definition IPlatformFileOpenLogWrapper.h:186
virtual ~FPlatformFileOpenLog()
Definition IPlatformFileOpenLogWrapper.h:79
virtual FDateTime GetAccessTimeStamp(const TCHAR *Filename) override
Definition IPlatformFileOpenLogWrapper.h:145
virtual bool CreateDirectory(const TCHAR *Directory) override
Definition IPlatformFileOpenLogWrapper.h:170
virtual IAsyncReadFileHandle * OpenAsyncRead(const TCHAR *Filename, bool bAllowWrite=false) override
Definition IPlatformFileOpenLogWrapper.h:263
virtual FOpenMappedResult OpenMappedEx(const TCHAR *Filename, EOpenReadFlags OpenOptions=EOpenReadFlags::None, int64 MaximumSize=0) override
Definition IPlatformFileOpenLogWrapper.cpp:109
virtual IFileHandle * OpenWrite(const TCHAR *Filename, bool bAppend=false, bool bAllowRead=false) override
Definition IPlatformFileOpenLogWrapper.h:162
virtual bool CreateDirectoryTree(const TCHAR *Directory) override
Definition IPlatformFileOpenLogWrapper.h:206
TMap< FString, int64 > FilenameAccessMap
Definition IPlatformFileOpenLogWrapper.h:66
virtual FString GetFilenameOnDisk(const TCHAR *Filename) override
Definition IPlatformFileOpenLogWrapper.h:149
virtual bool IterateDirectory(const TCHAR *Directory, IPlatformFile::FDirectoryVisitor &Visitor) override
Definition IPlatformFileOpenLogWrapper.h:182
virtual IPlatformFile * GetLowerLevel() override
Definition IPlatformFileOpenLogWrapper.h:97
virtual bool CopyFile(const TCHAR *To, const TCHAR *From, EPlatformFileRead ReadFlags=EPlatformFileRead::None, EPlatformFileWrite WriteFlags=EPlatformFileWrite::None) override
Definition IPlatformFileOpenLogWrapper.h:202
bool bLogDuplicates
Definition IPlatformFileOpenLogWrapper.h:68
static void AddLabel(const FmtType &Fmt, Types... Args)
Definition IPlatformFileOpenLogWrapper.h:312
virtual bool IterateDirectoryStat(const TCHAR *Directory, IPlatformFile::FDirectoryStatVisitor &Visitor) override
Definition IPlatformFileOpenLogWrapper.h:190
int64 OpenOrder
Definition IPlatformFileOpenLogWrapper.h:65
void AddLabelToOpenLog(const TCHAR *LabelStr)
Definition IPlatformFileOpenLogWrapper.h:293
virtual EFileJournalResult FileJournalReadModified(const TCHAR *VolumeName, const FFileJournalId &JournalIdOfStartingEntry, const FFileJournalEntryHandle &StartingJournalEntry, TMap< FFileJournalFileHandle, FString > &KnownDirectories, TSet< FString > &OutModifiedDirectories, FFileJournalEntryHandle &OutNextJournalEntry, FString *OutError=nullptr) override
Definition IPlatformFileOpenLogWrapper.h:241
virtual FString ConvertToAbsolutePathForExternalAppForWrite(const TCHAR *Filename) override
Definition IPlatformFileOpenLogWrapper.h:218
virtual bool DeleteFile(const TCHAR *Filename) override
Definition IPlatformFileOpenLogWrapper.h:121
virtual int64 FileSize(const TCHAR *Filename) override
Definition IPlatformFileOpenLogWrapper.h:117
virtual bool MoveFile(const TCHAR *To, const TCHAR *From) override
Definition IPlatformFileOpenLogWrapper.h:129
virtual bool DeleteDirectoryRecursively(const TCHAR *Directory) override
Definition IPlatformFileOpenLogWrapper.h:198
virtual bool FileJournalIterateDirectory(const TCHAR *Directory, FDirectoryJournalVisitorFunc Visitor, FString *OutError=nullptr) override
Definition IPlatformFileOpenLogWrapper.h:231
virtual FString ConvertToAbsolutePathForExternalAppForRead(const TCHAR *Filename) override
Definition IPlatformFileOpenLogWrapper.h:214
void AddPackageToOpenLog(const TCHAR *Filename)
Definition IPlatformFileOpenLogWrapper.h:305
FPlatformFileOpenLog()
Definition IPlatformFileOpenLogWrapper.h:72
virtual bool FileJournalIsAvailable(const TCHAR *VolumeOrPath=nullptr, ELogVerbosity::Type *OutErrorLevel=nullptr, FString *OutError=nullptr) override
Definition IPlatformFileOpenLogWrapper.h:226
virtual EFileJournalResult FileJournalGetLatestEntry(const TCHAR *VolumeName, FFileJournalId &OutJournalId, FFileJournalEntryHandle &OutEntryHandle, FString *OutError=nullptr) override
Definition IPlatformFileOpenLogWrapper.h:236
void AddToOpenLog(const TCHAR *Filename)
Definition IPlatformFileOpenLogWrapper.h:270
IPlatformFile * LowerLevel
Definition IPlatformFileOpenLogWrapper.h:63
virtual bool SendMessageToServer(const TCHAR *Message, IFileServerMessageHandler *Handler) override
Definition IPlatformFileOpenLogWrapper.h:222
virtual bool CopyDirectoryTree(const TCHAR *DestinationDirectory, const TCHAR *Source, bool bOverwriteAllExisting) override
Definition IPlatformFileOpenLogWrapper.h:210
virtual FFileStatData GetStatData(const TCHAR *FilenameOrDirectory) override
Definition IPlatformFileOpenLogWrapper.h:178
virtual FDateTime GetTimeStamp(const TCHAR *Filename) override
Definition IPlatformFileOpenLogWrapper.h:137
virtual bool FileExists(const TCHAR *Filename) override
Definition IPlatformFileOpenLogWrapper.h:113
virtual FFileJournalData FileJournalGetFileData(const TCHAR *FilenameOrDirectory, FString *OutError=nullptr) override
Definition IPlatformFileOpenLogWrapper.h:249
virtual bool DeleteDirectory(const TCHAR *Directory) override
Definition IPlatformFileOpenLogWrapper.h:174
virtual bool ShouldBeUsed(IPlatformFile *Inner, const TCHAR *CmdLine) const override
Definition IPlatformFileOpenLogWrapper.h:89
virtual bool IsReadOnly(const TCHAR *Filename) override
Definition IPlatformFileOpenLogWrapper.h:125
virtual bool SetReadOnly(const TCHAR *Filename, bool bNewReadOnlyValue) override
Definition IPlatformFileOpenLogWrapper.h:133
TArray< IFileHandle * > LogOutput
Definition IPlatformFileOpenLogWrapper.h:67
virtual IFileHandle * OpenRead(const TCHAR *Filename, bool bAllowWrite) override
Definition IPlatformFileOpenLogWrapper.h:153
virtual const TCHAR * GetName() const override
Definition IPlatformFileOpenLogWrapper.h:109
virtual void SetTimeStamp(const TCHAR *Filename, FDateTime DateTime) override
Definition IPlatformFileOpenLogWrapper.h:141
virtual void SetLowerLevel(IPlatformFile *NewLowerLevel) override
Definition IPlatformFileOpenLogWrapper.h:101
virtual uint64 FileJournalGetMaximumSize(const TCHAR *VolumeOrPath=nullptr, ELogVerbosity::Type *OutErrorLevel=nullptr, FString *OutError=nullptr) const override
Definition IPlatformFileOpenLogWrapper.h:258
Definition AsyncFileHandle.h:211
virtual IAsyncReadRequest * SizeRequest(FAsyncFileCallBack *CompleteCallback=nullptr)=0
virtual bool UsesCache()
Definition AsyncFileHandle.h:241
Definition AsyncFileHandle.h:31
Definition GenericPlatformFile.h:117
Definition MappedFileHandle.h:115
Definition GenericPlatformFile.h:623
Definition GenericPlatformFile.h:576
Definition GenericPlatformFile.h:925
Definition GenericPlatformFile.h:342
virtual CORE_API EFileJournalResult FileJournalReadModified(const TCHAR *VolumeName, const FFileJournalId &JournalIdOfStartingEntry, const FFileJournalEntryHandle &StartingJournalEntry, TMap< FFileJournalFileHandle, FString > &KnownDirectories, TSet< FString > &OutModifiedDirectories, FFileJournalEntryHandle &OutNextJournalEntry, FString *OutError=nullptr)
Definition GenericPlatformFile.cpp:1138
virtual CORE_API bool IterateDirectoryRecursively(const TCHAR *Directory, FDirectoryVisitor &Visitor)
Definition GenericPlatformFile.cpp:677
virtual CORE_API FString FileJournalGetVolumeName(FStringView InPath)
Definition GenericPlatformFile.cpp:1151
virtual CORE_API FString ConvertToAbsolutePathForExternalAppForWrite(const TCHAR *Filename)
Definition GenericPlatformFile.cpp:998
virtual CORE_API uint64 FileJournalGetMaximumSize(const TCHAR *VolumeOrPath=nullptr, ELogVerbosity::Type *OutErrorLevel=nullptr, FString *OutError=nullptr) const
Definition GenericPlatformFile.cpp:1098
virtual CORE_API bool CopyFile(const TCHAR *To, const TCHAR *From, EPlatformFileRead ReadFlags=EPlatformFileRead::None, EPlatformFileWrite WriteFlags=EPlatformFileWrite::None)
Definition GenericPlatformFile.cpp:870
virtual CORE_API FFileOpenResult OpenRead(const TCHAR *Filename, EOpenReadFlags Flags)
Definition GenericPlatformFile.cpp:497
virtual IFileHandle * OpenWrite(const TCHAR *Filename, bool bAppend=false, bool bAllowRead=false)=0
virtual FFileStatData GetStatData(const TCHAR *FilenameOrDirectory)=0
virtual CORE_API FFileOpenAsyncResult OpenAsyncRead(const TCHAR *Filename, EOpenReadFlags Flags)
Definition GenericPlatformFile.cpp:517
virtual bool IterateDirectoryStat(const TCHAR *Directory, FDirectoryStatVisitor &Visitor)=0
virtual bool MoveFile(const TCHAR *To, const TCHAR *From)=0
virtual CORE_API bool DeleteDirectoryRecursively(const TCHAR *Directory)
Definition GenericPlatformFile.cpp:822
virtual bool IterateDirectory(const TCHAR *Directory, FDirectoryVisitor &Visitor)=0
virtual bool IsReadOnly(const TCHAR *Filename)=0
virtual bool DeleteDirectory(const TCHAR *Directory)=0
virtual void SetTimeStamp(const TCHAR *Filename, FDateTime DateTime)=0
virtual bool DirectoryExists(const TCHAR *Directory)=0
virtual bool DeleteFile(const TCHAR *Filename)=0
virtual CORE_API FFileJournalData FileJournalGetFileData(const TCHAR *FilenameOrDirectory, FString *OutError=nullptr)
Definition GenericPlatformFile.cpp:1133
virtual bool SetReadOnly(const TCHAR *Filename, bool bNewReadOnlyValue)=0
virtual CORE_API EFileJournalResult FileJournalGetLatestEntry(const TCHAR *VolumeName, FFileJournalId &OutJournalId, FFileJournalEntryHandle &OutEntryHandle, FString *OutError=nullptr)
Definition GenericPlatformFile.cpp:1112
virtual CORE_API bool FileJournalIterateDirectory(const TCHAR *Directory, FDirectoryJournalVisitorFunc Visitor, FString *OutError=nullptr)
Definition GenericPlatformFile.cpp:1124
virtual bool FileExists(const TCHAR *Filename)=0
virtual int64 FileSize(const TCHAR *Filename)=0
virtual CORE_API bool FileJournalIsAvailable(const TCHAR *VolumeOrPath=nullptr, ELogVerbosity::Type *OutErrorLevel=nullptr, FString *OutError=nullptr)
Definition GenericPlatformFile.cpp:1084
virtual CORE_API bool CreateDirectoryTree(const TCHAR *Directory)
Definition GenericPlatformFile.cpp:1033
virtual bool SendMessageToServer(const TCHAR *Message, IFileServerMessageHandler *Handler)
Definition GenericPlatformFile.h:944
virtual bool CreateDirectory(const TCHAR *Directory)=0
EOpenReadFlags
Definition GenericPlatformFile.h:496
virtual CORE_API FString ConvertToAbsolutePathForExternalAppForRead(const TCHAR *Filename)
Definition GenericPlatformFile.cpp:993
virtual FString GetFilenameOnDisk(const TCHAR *Filename)=0
virtual CORE_API bool IterateDirectoryStatRecursively(const TCHAR *Directory, FDirectoryStatVisitor &Visitor)
Definition GenericPlatformFile.cpp:734
virtual FDateTime GetTimeStamp(const TCHAR *Filename)=0
virtual FDateTime GetAccessTimeStamp(const TCHAR *Filename)=0
virtual CORE_API bool CopyDirectoryTree(const TCHAR *DestinationDirectory, const TCHAR *Source, bool bOverwriteAllExisting)
Definition GenericPlatformFile.cpp:913
Definition Array.h:670
UE_NODEBUG TIterator CreateIterator()
Definition Array.h:3355
Definition AssetRegistryState.h:50
Definition UnrealString.h.inl:34
Definition ValueOrError.h:58
Type
Definition LogVerbosity.h:17
@ false
Definition radaudio_common.h:23
Definition DateTime.h:76
Definition GenericPlatformFile.h:271
Definition GenericPlatformFile.h:195
static CORE_API bool Param(const TCHAR *Stream, const TCHAR *Param)
Definition Parse.cpp:325
Definition IsArrayOrRefOfTypeByPredicate.h:13
Definition IsValidVariadicFunctionArg.h:14