146 return Entries.Num() >= MaxEntryCount;
150 return Entries.Num();
179 return ChunkMap.Contains(ChunkId);
186 return Entries.Num() == MaxEntryCount;
190 return Entries.Num();
203 bool bContainsInvalidEntries =
false;
218 virtual void Flush(
bool bImmediate)
override;
233 bool LoadCacheJournal();
234 void ValidateJournal();
245 NextAvailableJournalPos += PageSize;
249 void ResetJournalFilePos()
255 FString JournalFilePath;
260 bool bPagesModified =
false;
264 FJournalChunkPage* CurrentChunkPage =
nullptr;
268 void FlushImmediate();
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
Definition Archive.h:1208
virtual void Serialize(void *V, int64 Length)
Definition Archive.h:1689
Definition IoChunkId.h:64
Definition GenericPlatformFile.h:117
Definition CacheJournalSectioned.h:212
virtual void IterateChunkIds(TFunctionRef< void(const FIoChunkId &ChunkId, const FCacheChunkInfo &ChunkInfo)> Callback) override
Definition CacheJournalSectioned.cpp:220
virtual bool AddEntry(const FIoChunkId &ChunkId, const FCacheEntry &Entry) override
Definition CacheJournalSectioned.cpp:188
virtual void IterateCacheEntriesForChunkId(const FIoChunkId &ChunkId, TFunctionRef< void(const FCacheEntry &Entry)> Callback) override
Definition CacheJournalSectioned.cpp:230
virtual ~FCacheJournalSectioned() override=default
virtual bool SetChunkInfo(const FIoChunkId &ChunkId, const TOptional< uint64 > &OptModHash, const TOptional< int64 > &OptRawSize, const TOptional< int32 > &OptRawBlockSize) override
Definition CacheJournalSectioned.cpp:149
virtual bool TryGetEntry(const FIoChunkId &ChunkId, const uint64 ChunkOffset, const uint64 ChunkSize, FCacheEntry &OutEntry) override
Definition CacheJournalSectioned.cpp:205
virtual void IterateCacheEntries(TFunctionRef< void(const FIoChunkId &ChunkId, const FCacheEntry &Entry)> Callback) override
Definition CacheJournalSectioned.cpp:240
virtual void InvalidateAll() override
Definition CacheJournalSectioned.cpp:120
virtual bool TryGetChunkInfo(const FIoChunkId &ChunkId, FCacheChunkInfo &OutChunkInfo) override
Definition CacheJournalSectioned.cpp:173
Definition CacheJournalSectioned.h:137
friend FArchive & operator<<(FArchive &Ar, FJournalChunkInfoPage &Page)
Definition CacheJournalSectioned.cpp:628
virtual bool Contains(const FIoChunkId &ChunkId) const override
Definition CacheJournalSectioned.cpp:599
void IterateChunkIds(TFunctionRef< void(const FIoChunkId &ChunkId, const FCacheChunkInfo &ChunkInfo)> Callback)
Definition CacheJournalSectioned.cpp:620
virtual bool IsFull() const override
Definition CacheJournalSectioned.h:144
void InvalidateAll()
Definition CacheJournalSectioned.cpp:614
bool GetEntry(const FIoChunkId &ChunkId, FCacheChunkInfo &Info)
Definition CacheJournalSectioned.cpp:587
int32 GetEntryCount() const
Definition CacheJournalSectioned.h:148
Definition CacheJournalSectioned.h:171
virtual bool Contains(const FIoChunkId &ChunkId) const override
Definition CacheJournalSectioned.h:177
void InvalidateAll()
Definition CacheJournalSectioned.cpp:721
void IterateCacheEntriesForChunkId(const FIoChunkId &ChunkId, TFunctionRef< void(const FCacheEntry &Entry)> Callback)
Definition CacheJournalSectioned.cpp:682
friend FArchive & operator<<(FArchive &Ar, FJournalChunkPage &Page)
Definition CacheJournalSectioned.cpp:728
virtual bool IsFull() const override
Definition CacheJournalSectioned.h:184
bool GetEntry(const FIoChunkId &ChunkId, const uint64 ChunkOffset, const uint64 ChunkSize, FCacheEntry &OutEntry)
Definition CacheJournalSectioned.cpp:666
void IterateCacheEntries(TFunctionRef< void(const FIoChunkId &ChunkId, const FCacheEntry &Entry)> Callback)
Definition CacheJournalSectioned.cpp:694
int32 GetEntryCount() const
Definition CacheJournalSectioned.h:188
Definition CacheJournalSectioned.h:88
virtual bool Contains(const FIoChunkId &) const =0
const EPageType PageType
Definition CacheJournalSectioned.h:130
FJournalPageBase(EPageType InPageType, int64 InPageSize)
Definition CacheJournalSectioned.h:90
bool bDirty
Definition CacheJournalSectioned.h:131
virtual ~FJournalPageBase()
Definition CacheJournalSectioned.h:97
int64 GetPageSize() const
Definition CacheJournalSectioned.h:114
int64 FilePos
Definition CacheJournalSectioned.h:128
virtual bool IsFull() const =0
virtual void Serialize(FArchive &Ar)=0
void SetFilePos(int64 FileCursor)
Definition CacheJournalSectioned.h:104
friend FArchive & operator<<(FArchive &Ar, FJournalPageBase &Page)
Definition CacheJournalSectioned.h:121
int64 GetFilePos() const
Definition CacheJournalSectioned.h:109
const int64 PageSize
Definition CacheJournalSectioned.h:129
Definition CacheJournal.h:91
Definition AssetRegistryState.h:50
Definition UnrealString.h.inl:34
Definition UniquePtr.h:107
Definition CacheJournal.h:15
EJournalPageResult
Definition CacheJournalSectioned.h:42
EPageType
Definition CacheJournalSectioned.h:16
Definition CacheJournal.h:17
Definition CacheJournal.h:63
Definition CacheJournalSectioned.h:22
bool bValid
Definition CacheJournalSectioned.h:25
FIoChunkId ChunkId
Definition CacheJournalSectioned.h:23
FCacheEntry Entry
Definition CacheJournalSectioned.h:24
friend FArchive & operator<<(FArchive &Ar, FJournalStoreEntry &StoreEntry)
Definition CacheJournalSectioned.h:32
bool operator<(const FJournalStoreEntry &Other) const
Definition CacheJournalSectioned.h:27
Definition Optional.h:131