UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
CacheJournalSimple.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CacheJournal.h"
6#include "Containers/Map.h"
8#include "Tasks/Task.h"
9#include <atomic>
10
11#if !UE_BUILD_SHIPPING
12
13namespace StorageServer
14{
15 // Cross-platform cache journal implementation, baseline for platforms where platform specific implementation is not available.
17 {
18 public:
19 FCacheJournalSimple(const TCHAR* FileName, const uint64 FlushAtWriteCount);
20 virtual ~FCacheJournalSimple() override;
21
22 virtual void Flush(bool bImmediate) override;
23
24 virtual void InvalidateAll() override;
25 virtual void Invalidate(const FIoChunkId& ChunkId) override;
26
27 virtual bool SetChunkInfo(
28 const FIoChunkId& ChunkId,
32 ) override;
33 virtual bool TryGetChunkInfo(
34 const FIoChunkId& ChunkId,
36 ) override;
37
38 virtual bool AddEntry(
39 const FIoChunkId& ChunkId,
40 const FCacheEntry& Entry
41 ) override;
42 virtual bool TryGetEntry(
43 const FIoChunkId& ChunkId,
44 const uint64 ChunkOffset,
45 const uint64 ChunkSize,
47 ) override;
48
49 virtual void IterateChunkIds(
50 TFunctionRef<void(const FIoChunkId& ChunkId, const FCacheChunkInfo& ChunkInfo)> Callback
51 ) override;
53 const FIoChunkId& ChunkId,
54 TFunctionRef<void(const FCacheEntry& Entry)> Callback
55 ) override;
56 virtual void IterateCacheEntries(
57 TFunctionRef<void(const FIoChunkId& ChunkId, const FCacheEntry& Entry)> Callback
58 ) override;
59
60 private:
61 FCriticalSection DataLock, FlushTaskLock;
62 FString FileName;
63 UE::Tasks::TTask<void> FlushTask;
64 uint64 FlushAtWriteCount;
65 uint64 CurrentWriteCount;
66 std::atomic<bool> bDirty;
67
71
72 void FlushImmediate();
73 };
74}
75
76#endif
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
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
Definition IoChunkId.h:64
Definition CacheJournalSimple.h:17
virtual void IterateCacheEntriesForChunkId(const FIoChunkId &ChunkId, TFunctionRef< void(const FCacheEntry &Entry)> Callback) override
Definition CacheJournalSimple.cpp:201
virtual void IterateCacheEntries(TFunctionRef< void(const FIoChunkId &ChunkId, const FCacheEntry &Entry)> Callback) override
Definition CacheJournalSimple.cpp:217
virtual bool TryGetChunkInfo(const FIoChunkId &ChunkId, FCacheChunkInfo &OutChunkInfo) override
Definition CacheJournalSimple.cpp:115
virtual bool AddEntry(const FIoChunkId &ChunkId, const FCacheEntry &Entry) override
Definition CacheJournalSimple.cpp:127
virtual bool SetChunkInfo(const FIoChunkId &ChunkId, const TOptional< uint64 > &OptModTag, const TOptional< int64 > &OptRawSize, const TOptional< int32 > &OptRawBlockSize) override
Definition CacheJournalSimple.cpp:98
virtual void IterateChunkIds(TFunctionRef< void(const FIoChunkId &ChunkId, const FCacheChunkInfo &ChunkInfo)> Callback) override
Definition CacheJournalSimple.cpp:188
virtual ~FCacheJournalSimple() override
Definition CacheJournalSimple.cpp:42
virtual bool TryGetEntry(const FIoChunkId &ChunkId, const uint64 ChunkOffset, const uint64 ChunkSize, FCacheEntry &OutEntry) override
Definition CacheJournalSimple.cpp:166
virtual void InvalidateAll() override
Definition CacheJournalSimple.cpp:70
Definition CacheJournal.h:91
Definition AssetRegistryState.h:50
Definition UnrealString.h.inl:34
Definition Task.h:191
Definition CacheJournal.h:15
Definition CacheJournal.h:17
Definition CacheJournal.h:63
Definition Optional.h:131