57 enum class ChunkCacheStatus :
int {
66 ::ll::TypedStorage<8, 64, ::std::unordered_map<::DBChunkStorageKey, ::DBChunkStorage::ChunkCacheStatus>>
68 ::ll::TypedStorage<8, 8, ::std::shared_mutex> mHasChunkCacheSharedMutex;
69 ::ll::TypedStorage<8, 64, ::std::unordered_map<::ChunkPos, ::std::pair<bool, ::std::shared_ptr<::BlendingData>>>>
70 mChunkBlendingDataCache;
71 ::ll::TypedStorage<8, 8, ::std::shared_mutex> mChunkBlendingDataSharedMutex;
72 ::ll::TypedStorage<8, 8, ::std::shared_mutex> mAttenuatorSharedMutex;
73 ::ll::TypedStorage<8, 8, ::DBStorage&> mStorage;
74 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::LevelStorageWriteBatch>>> mBufferPool;
75 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::LevelChunk, ::LevelChunkFinalDeleter>>> mDiscardBatch;
76 ::ll::TypedStorage<8, 64, ::std::unordered_set<::ChunkPos>> mLiveChunksBeingSaved;
78 TypedStorage<8, 64, ::std::unordered_map<::ChunkPos, ::std::unique_ptr<::LevelChunk, ::LevelChunkFinalDeleter>>>
79 mDiscardedWhileLiveSaved;
80 ::ll::TypedStorage<1, 1, bool> mBatch;
81 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::TaskGroup>> mIOTaskGroup;
82 ::ll::TypedStorage<8, 32, ::BaseGameVersion> mCurrentLevelVersion;
98 virtual void shutdown() ;
101 virtual bool isShutdownDone() ;
104 virtual void loadChunk(
::LevelChunk& lc,
bool forceImmediateReplacementDataLoad) ;
107 virtual bool isChunkKnown(
::ChunkPos const& chunkPos) ;
110 virtual bool isChunkSaved(
::ChunkPos const& chunkPos) ;
122 virtual void writeEntityChunkTransfer(
::LevelChunk& lc) ;
125 virtual void writeEntityChunkTransfersToUnloadedChunk(
127 ::std::vector<::ActorUnloadedChunkTransferEntry>
const& transfers
131 virtual void acquireDiscarded(::std::unique_ptr<::LevelChunk, ::LevelChunkFinalDeleter> ptr) ;
134 virtual void hintDiscardBatchBegin() ;
137 virtual void hintDiscardBatchEnd() ;
140 virtual void flushPendingDiscardedChunkWrites() ;
143 virtual void flushThreadBatch() ;
146 virtual ::std::unique_ptr<::BlendingDataProvider> tryGetBlendingDataProvider() ;
149 virtual ::std::shared_ptr<::LevelChunkMetaDataDictionary> loadLevelChunkMetaDataDictionary() ;
152 virtual void deserializeActorStorageToLevelChunk(
::LevelChunk& levelChunk) ;
155 virtual bool chunkPosNeedsBlending(
::ChunkPos const& cp) ;
162 ::std::unique_ptr<::ChunkSource> parent,
168 MCAPI
void _batchDelete(
170 ::std::string
const& key,
171 ::DBHelpers::Category category,
172 ::std::string_view reason
175 MCAPI
void _batchPut(
177 ::std::string
const& key,
179 ::DBHelpers::Category category,
180 ::std::string_view reason
183 MCAPI ::std::pair<bool, ::std::shared_ptr<::BlendingData>> _cacheSeamlessChunkBlendingData(
186 ::std::shared_ptr<::BlendingData> blendingData
192 MCAPI
void _deserializeIndependentActorStorage(
::LevelChunk& lc, ::std::string
const& storageKeyDigestBuffer);
194 MCAPI ::std::optional<::LevelChunkFormat> _getLevelChunkFormat(::std::string_view prefix, ::std::string&
buffer);
200 MCAPI ::std::pair<bool, ::std::unique_ptr<::PersistentBlendData>>
207 MCAPI
void _saveBlendData(
209 ::std::string_view prefix,
217 MCAPI
void _serializeEntities(
221 bool markEntitiesProcesedOnChunkDiscard
224 MCAPI ::std::pair<bool, ::std::shared_ptr<::BlendingData>>
225 _tryGetBlendingDataForChunk(
::ChunkPos const& checkPosition);
227 MCAPI ::std::string _upgradeActorStorage(
::ChunkKey chunkKey, ::std::string_view& legacyActorData);
232 MCAPI
void _writeDiscardChunksBatch();
238 MCAPI static ::std::vector<::std::string> _deserializeChunkActorStorageKeys(
::IDataInput& digestStream);
240 MCAPI static ::ConsoleChunkBlender::BlenderMode
243 MCAPI static ::std::string deserializeActorStorageToString(
244 bool hasActorDigestVersionTag,
245 ::std::string
const& storageKeyDigestBuffer,
246 ::std::function<
bool(::std::string_view, ::std::string&)> loadDataCallback
253 MCAPI static ::LevelStorageWriteBatch& threadBatch();
255 MCAPI static ::std::string& threadBuffer();
262 ::std::unique_ptr<::ChunkSource> parent,
278 MCAPI
void $shutdown();
280 MCAPI
bool $isShutdownDone();
282 MCAPI
void $loadChunk(
::LevelChunk& lc,
bool forceImmediateReplacementDataLoad);
284 MCFOLD
bool $isChunkKnown(
::ChunkPos const& chunkPos);
286 MCFOLD
bool $isChunkSaved(
::ChunkPos const& chunkPos);
296 MCAPI
void $writeEntityChunkTransfersToUnloadedChunk(
298 ::std::vector<::ActorUnloadedChunkTransferEntry>
const& transfers
301 MCAPI
void $acquireDiscarded(::std::unique_ptr<::LevelChunk, ::LevelChunkFinalDeleter> ptr);
303 MCAPI
void $hintDiscardBatchBegin();
305 MCAPI
void $hintDiscardBatchEnd();
307 MCAPI
void $flushPendingDiscardedChunkWrites();
309 MCAPI
void $flushThreadBatch();
311 MCAPI ::std::unique_ptr<::BlendingDataProvider> $tryGetBlendingDataProvider();
313 MCAPI ::std::shared_ptr<::LevelChunkMetaDataDictionary> $loadLevelChunkMetaDataDictionary();
315 MCAPI
void $deserializeActorStorageToLevelChunk(
::LevelChunk& levelChunk);
317 MCAPI
bool $chunkPosNeedsBlending(
::ChunkPos const& cp);
Definition ActorUnloadedChunkTransferEntry.h:13