5#include "Containers/Array.h"
6#include "Containers/Map.h"
24#define FPRELOADABLEFILE_TEST_ENABLED 0
119#if FPRELOADABLEFILE_TEST_ENABLED
157#if FPRELOADABLEFILE_TEST_ENABLED
186 ReadRequest =
nullptr;
189 bool bCanceled =
false;
259 return Archive->
Tell();
267 return Archive->
Close();
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
void SerializeInternal(FArchive &Ar, TUniquePtr< FFieldNode< T > > &Field)
Definition FieldSystemNodes.cpp:80
Definition Archive.h:1208
Definition PreloadableFile.h:246
virtual int64 Tell() final
Definition PreloadableFile.h:257
virtual void Serialize(void *V, int64 Length) final
Definition PreloadableFile.h:269
FPreloadableArchiveProxy(const TSharedPtr< FPreloadableArchive > &InArchive)
Definition PreloadableFile.h:248
virtual bool Close() final
Definition PreloadableFile.h:265
virtual FString GetArchiveName() const final
Definition PreloadableFile.h:273
virtual void Seek(int64 InPos) final
Definition PreloadableFile.h:253
virtual int64 TotalSize() final
Definition PreloadableFile.h:261
Definition PreloadableFile.h:50
TAtomic< int64 > CacheEnd
Definition PreloadableFile.h:151
bool bReadCompleteWasCalledInline
Definition PreloadableFile.h:169
FCriticalSection PreloadLock
Definition PreloadableFile.h:167
CORE_API bool IsPreloading() const
Definition PreloadableFile.cpp:233
FString ArchiveName
Definition PreloadableFile.h:129
CORE_API void ResumePreload()
Definition PreloadableFile.cpp:311
CORE_API bool AllocateCache()
Definition PreloadableFile.cpp:240
CORE_API void SetPageSize(int64 PageSize)
Definition PreloadableFile.cpp:61
TArray< IAsyncReadRequest * > RetiredRequests
Definition PreloadableFile.h:162
CORE_API bool HasValidData() const
Definition PreloadableFile.cpp:294
TAtomic< bool > bIsPreloadingPaused
Definition PreloadableFile.h:142
CORE_API bool StartPreload()
Definition PreloadableFile.cpp:193
CORE_API FArchive * DetachLowerLevel()
Definition PreloadableFile.cpp:288
virtual CORE_API bool Close() final
Definition PreloadableFile.cpp:644
uint8 * CacheBytes
Definition PreloadableFile.h:145
CORE_API bool ResumePreloadNonRecursive()
Definition PreloadableFile.cpp:339
TAtomic< bool > bIsPreloading
Definition PreloadableFile.h:140
CORE_API void SerializeSynchronously(void *V, int64 Length)
Definition PreloadableFile.cpp:557
int64 PageSize
Definition PreloadableFile.h:164
CORE_API void OnReadComplete(bool bCanceled, IAsyncReadRequest *ReadRequest)
Definition PreloadableFile.cpp:375
CORE_API void ReleaseCache()
Definition PreloadableFile.cpp:265
CORE_API void WaitForInitialization() const
Definition PreloadableFile.cpp:92
int64 Pos
Definition PreloadableFile.h:131
CORE_API bool IsCacheAllocated() const
Definition PreloadableFile.cpp:283
CORE_API void StopPreload()
Definition PreloadableFile.cpp:220
struct FPreloadableArchive::FSavedReadCompleteArguments SavedReadCompleteArguments
virtual CORE_API void Seek(int64 InPos) final
Definition PreloadableFile.cpp:627
CORE_API void InitializeInternalAsync(FCreateArchive &&InCreateArchiveFunction, FCreateAsyncArchive &&InCreateAsyncArchiveFunction, uint32 InFlags, int64 PrimeSize)
Definition PreloadableFile.cpp:101
int64 Size
Definition PreloadableFile.h:133
friend class FPreloadableFileProxy
Definition PreloadableFile.h:194
bool bIsInlineReadComplete
Definition PreloadableFile.h:171
CORE_API bool IsInitialized() const
Definition PreloadableFile.cpp:87
CORE_API void InitializeInternal(FCreateArchive &&InCreateArchiveFunction, FCreateAsyncArchive &&InCreateAsyncArchiveFunction, uint32 Flags, int64 PrimeSize)
Definition PreloadableFile.cpp:121
virtual CORE_API int64 Tell() final
Definition PreloadableFile.cpp:634
Flags
Definition PreloadableFile.h:56
@ PreloadBytes
Definition PreloadableFile.h:62
@ Prime
Definition PreloadableFile.h:65
@ None
Definition PreloadableFile.h:57
@ PreloadHandle
Definition PreloadableFile.h:61
@ ModeBits
Definition PreloadableFile.h:60
TUniqueFunction< IAsyncReadFileHandle *()> FCreateAsyncArchive
Definition PreloadableFile.h:53
@ DefaultPageSize
Definition PreloadableFile.h:70
@ DefaultPrimeSize
Definition PreloadableFile.h:69
TUniquePtr< FArchive > SynchronousArchive
Definition PreloadableFile.h:156
virtual CORE_API int64 TotalSize() final
Definition PreloadableFile.cpp:639
TUniqueFunction< FArchive *()> FCreateArchive
Definition PreloadableFile.h:52
TAtomic< bool > bInitialized
Definition PreloadableFile.h:138
CORE_API void FreeRetiredRequests()
Definition PreloadableFile.cpp:442
virtual CORE_API void Serialize(void *V, int64 Length) final
Definition PreloadableFile.cpp:453
TUniquePtr< IAsyncReadFileHandle > AsynchronousHandle
Definition PreloadableFile.h:154
CORE_API void PausePreload()
Definition PreloadableFile.cpp:300
FEvent * PendingAsyncComplete
Definition PreloadableFile.h:136
CORE_API void InitializeAsync(FCreateArchive &&InCreateArchiveFunction, uint32 InFlags=Flags::None, int64 PrimeSize=DefaultPrimeSize)
Definition PreloadableFile.cpp:75
virtual CORE_API ~FPreloadableArchive()
Definition PreloadableFile.cpp:51
virtual CORE_API FString GetArchiveName() const final
Definition PreloadableFile.cpp:662
Definition PreloadableFile.h:210
static CORE_API FArchive * TryTakeArchive(const TCHAR *FileName)
Definition PreloadableFile.cpp:730
static CORE_API bool TryRegister(const TSharedPtr< FPreloadableFile > &PreloadableFile)
Definition PreloadableFile.cpp:713
CORE_API void InitializeAsync(uint32 InFlags=Flags::None, int64 PrimeSize=DefaultPrimeSize)
Definition PreloadableFile.cpp:686
static CORE_API bool UnRegister(const TSharedPtr< FPreloadableFile > &PreloadableFile)
Definition PreloadableFile.cpp:759
Definition AsyncFileHandle.h:211
Definition AsyncFileHandle.h:31
Definition GenericPlatformFile.h:117
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
Definition FunctionFwd.h:19
Definition UniquePtr.h:107
Definition PreloadableFile.h:175
void Set(bool bInCanceled, IAsyncReadRequest *InReadRequest)
Definition PreloadableFile.h:177
void Get(bool &bOutCanceled, IAsyncReadRequest *&OutReadRequest)
Definition PreloadableFile.h:182