public class StorageIoWorker extends Object implements AutoCloseable
Modifier and Type | Class and Description |
---|---|
(package private) static class |
StorageIoWorker.Result |
Modifier and Type | Field and Description |
---|---|
private boolean |
active |
private AtomicBoolean |
closed |
private CompletableFuture<Void> |
future |
private static Logger |
LOGGER |
private Map<ChunkPos,StorageIoWorker.Result> |
results |
private RegionBasedStorage |
storage |
private Queue<Runnable> |
tasks |
private Thread |
thread |
Constructor and Description |
---|
StorageIoWorker(RegionBasedStorage storage,
String name) |
Modifier and Type | Method and Description |
---|---|
void |
close() |
CompletableFuture<Void> |
completeAll() |
private void |
finish() |
CompoundTag |
getNbt(ChunkPos pos) |
private void |
park() |
private <T> CompletableFuture<T> |
run(Function<CompletableFuture<T>,Runnable> taskFactory) |
private boolean |
runTask() |
CompletableFuture<Void> |
setResult(ChunkPos pos,
CompoundTag nbt) |
private CompletableFuture<Void> |
shutdown() |
private void |
work() |
private void |
write(ChunkPos pos,
StorageIoWorker.Result result) |
private void |
writeAll() |
private boolean |
writeResult() |
private static final Logger LOGGER
private final Thread thread
private final AtomicBoolean closed
private final RegionBasedStorage storage
private final Map<ChunkPos,StorageIoWorker.Result> results
private boolean active
private CompletableFuture<Void> future
StorageIoWorker(RegionBasedStorage storage, String name)
public CompletableFuture<Void> setResult(ChunkPos pos, CompoundTag nbt)
@Nullable public CompoundTag getNbt(ChunkPos pos) throws IOException
IOException
private CompletableFuture<Void> shutdown()
public CompletableFuture<Void> completeAll()
private <T> CompletableFuture<T> run(Function<CompletableFuture<T>,Runnable> taskFactory)
private void park()
private void work()
private boolean writeResult()
private void writeAll()
private void write(ChunkPos pos, StorageIoWorker.Result result)
private void finish()
private boolean runTask()
public void close() throws IOException
close
in interface AutoCloseable
IOException