56 enum class ChunkCacheStatus :
int {
65 ::ll::TypedStorage<8, 64, ::std::unordered_map<::DBChunkStorageKey, ::DBChunkStorage::ChunkCacheStatus>>
67 ::ll::TypedStorage<8, 8, ::std::shared_mutex> mHasChunkCacheSharedMutex;
68 ::ll::TypedStorage<8, 64, ::std::unordered_map<::ChunkPos, ::std::pair<bool, ::std::shared_ptr<::BlendingData>>>>
69 mChunkBlendingDataCache;
70 ::ll::TypedStorage<8, 8, ::std::shared_mutex> mChunkBlendingDataSharedMutex;
71 ::ll::TypedStorage<8, 8, ::std::shared_mutex> mAttenuatorSharedMutex;
72 ::ll::TypedStorage<8, 8, ::DBStorage&> mStorage;
73 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::LevelStorageWriteBatch>>> mBufferPool;
74 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::LevelChunk, ::LevelChunkFinalDeleter>>> mDiscardBatch;
75 ::ll::TypedStorage<8, 64, ::std::unordered_set<::ChunkPos>> mLiveChunksBeingSaved;
77 TypedStorage<8, 64, ::std::unordered_map<::ChunkPos, ::std::unique_ptr<::LevelChunk, ::LevelChunkFinalDeleter>>>
78 mDiscardedWhileLiveSaved;
79 ::ll::TypedStorage<1, 1, bool> mBatch;
80 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::TaskGroup>> mIOTaskGroup;
81 ::ll::TypedStorage<8, 32, ::BaseGameVersion> mCurrentLevelVersion;
97 virtual void shutdown() ;
100 virtual bool isShutdownDone() ;
103 virtual void loadChunk(
::LevelChunk& lc,
bool forceImmediateReplacementDataLoad) ;
106 virtual bool isChunkKnown(
::ChunkPos const& chunkPos) ;
109 virtual bool isChunkSaved(
::ChunkPos const& chunkPos) ;
121 virtual bool verifyChunkNeedsNeighborAwareUpgrade(
::LevelChunk& lc) ;
130 virtual void writeEntityChunkTransfer(
::LevelChunk& lc) ;
133 virtual void writeEntityChunkTransfersToUnloadedChunk(
135 ::std::vector<::ActorUnloadedChunkTransferEntry>
const& transfers
139 virtual void acquireDiscarded(::std::unique_ptr<::LevelChunk, ::LevelChunkFinalDeleter> ptr) ;
142 virtual void hintDiscardBatchBegin() ;
145 virtual void hintDiscardBatchEnd() ;
148 virtual void flushPendingDiscardedChunkWrites() ;
151 virtual void flushThreadBatch() ;
154 virtual ::std::unique_ptr<::BlendingDataProvider> tryGetBlendingDataProvider() ;
157 virtual ::std::shared_ptr<::LevelChunkMetaDataDictionary> loadLevelChunkMetaDataDictionary() ;
160 virtual void deserializeActorStorageToLevelChunk(
::LevelChunk& levelChunk) ;
163 virtual bool chunkPosNeedsBlending(
::ChunkPos const& cp) ;
170 ::std::unique_ptr<::ChunkSource> parent,
176 MCAPI
void _batchDelete(
178 ::std::string
const& key,
179 ::DBHelpers::Category category,
180 ::std::string_view reason
183 MCAPI
void _batchPut(
185 ::std::string
const& key,
187 ::DBHelpers::Category category,
188 ::std::string_view reason
191 MCAPI ::std::pair<bool, ::std::shared_ptr<::BlendingData>> _cacheSeamlessChunkBlendingData(
194 ::std::shared_ptr<::BlendingData> blendingData
200 MCAPI
void _deserializeIndependentActorStorage(
::LevelChunk& lc, ::std::string
const& storageKeyDigestBuffer);
202 MCAPI ::std::shared_ptr<::LevelStorageWriteBatch> _getBuffer();
208 MCAPI ::std::pair<bool, ::std::unique_ptr<::PersistentBlendData>>
215 MCAPI
void _saveBlendData(
217 ::std::string_view prefix,
225 MCAPI
void _serializeEntities(
229 bool markEntitiesProcesedOnChunkDiscard
232 MCAPI ::std::pair<bool, ::std::shared_ptr<::BlendingData>>
233 _tryGetBlendingDataForChunk(
::ChunkPos const& checkPosition);
235 MCAPI ::std::string _upgradeActorStorage(
::ChunkKey chunkKey, ::std::string_view& legacyActorData);
240 MCAPI
void _writeDiscardChunksBatch();
246 MCAPI static ::std::vector<::std::string> _deserializeChunkActorStorageKeys(
::IDataInput& digestStream);
248 MCAPI static ::ConsoleChunkBlender::BlenderMode
251 MCAPI static ::std::string deserializeActorStorageToString(
252 bool hasActorDigestVersionTag,
253 ::std::string
const& storageKeyDigestBuffer,
254 ::std::function<
bool(::std::string_view, ::std::string&)> loadDataCallback
261 MCAPI static ::LevelStorageWriteBatch& threadBatch();
263 MCAPI static ::std::string& threadBuffer();
270 ::std::unique_ptr<::ChunkSource> parent,
286 MCAPI
void $shutdown();
288 MCAPI
bool $isShutdownDone();
290 MCAPI
void $loadChunk(
::LevelChunk& lc,
bool forceImmediateReplacementDataLoad);
292 MCFOLD
bool $isChunkKnown(
::ChunkPos const& chunkPos);
294 MCFOLD
bool $isChunkSaved(
::ChunkPos const& chunkPos);
302 MCAPI
bool $verifyChunkNeedsNeighborAwareUpgrade(
::LevelChunk& lc);
310 MCAPI
void $writeEntityChunkTransfersToUnloadedChunk(
312 ::std::vector<::ActorUnloadedChunkTransferEntry>
const& transfers
315 MCAPI
void $acquireDiscarded(::std::unique_ptr<::LevelChunk, ::LevelChunkFinalDeleter> ptr);
317 MCAPI
void $hintDiscardBatchBegin();
319 MCAPI
void $hintDiscardBatchEnd();
321 MCAPI
void $flushPendingDiscardedChunkWrites();
323 MCAPI
void $flushThreadBatch();
325 MCAPI ::std::unique_ptr<::BlendingDataProvider> $tryGetBlendingDataProvider();
327 MCAPI ::std::shared_ptr<::LevelChunkMetaDataDictionary> $loadLevelChunkMetaDataDictionary();
329 MCAPI
void $deserializeActorStorageToLevelChunk(
::LevelChunk& levelChunk);
331 MCAPI
bool $chunkPosNeedsBlending(
::ChunkPos const& cp);