36class DBChunkStorage :
public ::ChunkSource {
44 enum class ChunkCacheStatus :
int {
50 struct PreCavesAndCliffsMetaData {
60 PreCavesAndCliffsMetaData& operator=(PreCavesAndCliffsMetaData
const&);
61 PreCavesAndCliffsMetaData(PreCavesAndCliffsMetaData
const&);
62 PreCavesAndCliffsMetaData();
68 ::ll::TypedStorage<8, 64, ::std::unordered_map<::DBChunkStorageKey, ::DBChunkStorage::ChunkCacheStatus>>
70 ::ll::TypedStorage<8, 8, ::std::shared_mutex> mHasChunkCacheSharedMutex;
71 ::ll::TypedStorage<8, 64, ::std::unordered_map<::ChunkPos, ::std::pair<bool, ::std::shared_ptr<::BlendingData>>>>
72 mChunkBlendingDataCache;
73 ::ll::TypedStorage<8, 8, ::std::shared_mutex> mChunkBlendingDataSharedMutex;
74 ::ll::TypedStorage<8, 8, ::std::shared_mutex> mAttenuatorSharedMutex;
75 ::ll::TypedStorage<8, 8, ::DBStorage&> mStorage;
76 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::LevelStorageWriteBatch>>> mBufferPool;
77 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::LevelChunk, ::LevelChunkFinalDeleter>>> mDiscardBatch;
78 ::ll::TypedStorage<8, 64, ::std::unordered_set<::ChunkPos>> mLiveChunksBeingSaved;
80 TypedStorage<8, 64, ::std::unordered_map<::ChunkPos, ::std::unique_ptr<::LevelChunk, ::LevelChunkFinalDeleter>>>
81 mDiscardedWhileLiveSaved;
82 ::ll::TypedStorage<1, 1, bool> mBatch;
83 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::TaskGroup>> mIOTaskGroup;
84 ::ll::TypedStorage<8, 32, ::BaseGameVersion> mCurrentLevelVersion;
89 DBChunkStorage& operator=(DBChunkStorage
const&);
90 DBChunkStorage(DBChunkStorage
const&);
96 virtual ~DBChunkStorage() =
default;
98 virtual void shutdown() ;
100 virtual bool isShutdownDone() ;
102 virtual void loadChunk(
::LevelChunk& lc,
bool forceImmediateReplacementDataLoad) ;
104 virtual bool isChunkKnown(
::ChunkPos const& chunkPos) ;
106 virtual bool isChunkSaved(
::ChunkPos const& chunkPos) ;
114 virtual bool verifyChunkNeedsNeighborAwareUpgrade(
::LevelChunk& lc) ;
118 virtual void deleteAllChunkData(
119 ::std::unordered_set<::ChunkPos> excludedChunks,
120 ::std::function<
void()> completionCallback,
121 ::std::shared_ptr<::ChunkDeletionMetadata> metadata
124 virtual void deleteStoredChunkData(
125 ::std::unordered_set<::ChunkPos> chunksToDelete,
126 ::std::function<
void()> completionCallback,
127 ::std::shared_ptr<::ChunkDeletionMetadata> metadata
132 virtual void writeEntityChunkTransfer(
::LevelChunk& lc) ;
134 virtual void writeEntityChunkTransfersToUnloadedChunk(
136 ::std::vector<::ActorUnloadedChunkTransferEntry>
const& transfers
139 virtual void acquireDiscarded(::std::unique_ptr<::LevelChunk, ::LevelChunkFinalDeleter> ptr) ;
141 virtual void hintDiscardBatchBegin() ;
143 virtual void hintDiscardBatchEnd() ;
145 virtual void flushPendingDiscardedChunkWrites() ;
147 virtual void flushThreadBatch() ;
149 virtual ::std::unique_ptr<::BlendingDataProvider> tryGetBlendingDataProvider() ;
151 virtual ::std::shared_ptr<::LevelChunkMetaDataDictionary> loadLevelChunkMetaDataDictionary() ;
153 virtual void deserializeActorStorageToLevelChunk(
::LevelChunk& levelChunk) ;
155 virtual bool chunkPosNeedsBlending(
::ChunkPos const& cp) ;
157 virtual ::std::shared_ptr<::br::worldgen::StructureInstance>
165 MCNAPI DBChunkStorage(
166 ::std::unique_ptr<::ChunkSource> parent,
176 ::std::shared_ptr<::BlendingData> blendingData
193 ::std::string_view prefix,
205 bool markEntitiesProcesedOnChunkDiscard
213 MCNAPI
void freeCaches();
226 bool hasActorDigestVersionTag,
227 ::std::string
const& storageKeyDigestBuffer,
228 ::std::function<
bool(::std::string_view, ::std::string&)> loadDataCallback
237 ::std::unique_ptr<::ChunkSource> parent,
252 MCAPI
void $loadChunk(
::LevelChunk& lc,
bool forceImmediateReplacementDataLoad);
269 ::std::unordered_set<::ChunkPos> excludedChunks,
270 ::std::function<
void()> completionCallback,
271 ::std::shared_ptr<::ChunkDeletionMetadata> metadata
275 ::std::unordered_set<::ChunkPos> chunksToDelete,
276 ::std::function<
void()> completionCallback,
277 ::std::shared_ptr<::ChunkDeletionMetadata> metadata
286 ::std::vector<::ActorUnloadedChunkTransferEntry>
const& transfers
307 MCNAPI ::std::shared_ptr<::br::worldgen::StructureInstance>
Definition ActorUnloadedChunkTransferEntry.h:13