PocketMine-MP 5.15.1 git-fb9a74e8799c71ed8292cfa53abe7a4c9204629d
pocketmine\network\mcpe\ChunkRequestTask Class Reference
+ Inheritance diagram for pocketmine\network\mcpe\ChunkRequestTask:
+ Collaboration diagram for pocketmine\network\mcpe\ChunkRequestTask:

Public Member Functions

 __construct (int $chunkX, int $chunkZ, int $dimensionId, Chunk $chunk, CompressBatchPromise $promise, Compressor $compressor)
 cancelRun ()
 checkProgressUpdates ()
 getResult ()
 hasCancelledRun ()
 hasResult ()
 isCrashed ()
 isFinished ()
 isSubmitted ()
 onCompletion ()
 onError ()
 onProgressUpdate ($progress)
 onRun ()
 publishProgress (mixed $progress)
 run ()
 setResult (mixed $result)
 setSubmitted ()

Protected Member Functions

 fetchLocal (string $key)
 reallyDestruct ()
 storeLocal (string $key, mixed $complexData)

Protected Attributes

string $chunk
int $chunkX
int $chunkZ
NonThreadSafeValue $compressor

Detailed Description

Definition at line 41 of file ChunkRequestTask.php.

Constructor & Destructor Documentation

◆ __construct()

pocketmine\network\mcpe\ChunkRequestTask::__construct ( int  $chunkX,
int  $chunkZ,
int  $dimensionId,
Chunk  $chunk,
CompressBatchPromise  $promise,
Compressor  $compressor 

@phpstan-param DimensionIds::* $dimensionId

Definition at line 56 of file ChunkRequestTask.php.

References pocketmine\network\mcpe\ChunkRequestTask\$compressor, pocketmine\world\format\io\FastChunkSerializer\serializeTerrain(), and pocketmine\scheduler\AsyncTask\storeLocal().

+ Here is the call graph for this function:

Member Function Documentation

◆ cancelRun()

pocketmine\scheduler\AsyncTask::cancelRun ( )

Definition at line 123 of file AsyncTask.php.

◆ checkProgressUpdates()

pocketmine\scheduler\AsyncTask::checkProgressUpdates ( )

Definition at line 172 of file AsyncTask.php.

◆ fetchLocal()

pocketmine\scheduler\AsyncTask::fetchLocal ( string  $key)

Retrieves data stored in thread-local storage.

If you used storeLocal(), you can use this on the same thread to fetch data stored. This should be used during onProgressUpdate() and onCompletion() to fetch thread-local data stored on the parent thread.


InvalidArgumentException if no data were stored by this AsyncTask instance.

Definition at line 228 of file AsyncTask.php.

◆ getResult()

pocketmine\scheduler\AsyncTask::getResult ( )

Definition at line 109 of file AsyncTask.php.

◆ hasCancelledRun()

pocketmine\scheduler\AsyncTask::hasCancelledRun ( )

Definition at line 130 of file AsyncTask.php.

◆ hasResult()

pocketmine\scheduler\AsyncTask::hasResult ( )

Definition at line 102 of file AsyncTask.php.

◆ isCrashed()

pocketmine\scheduler\AsyncTask::isCrashed ( )

Definition at line 90 of file AsyncTask.php.

◆ isFinished()

pocketmine\scheduler\AsyncTask::isFinished ( )

Returns whether this task has finished executing, whether successfully or not. This differs from isRunning() because it is not true prior to task execution.

Definition at line 98 of file AsyncTask.php.

◆ isSubmitted()

pocketmine\scheduler\AsyncTask::isSubmitted ( )

Definition at line 138 of file AsyncTask.php.

◆ onCompletion()

pocketmine\network\mcpe\ChunkRequestTask::onCompletion ( )

Actions to execute when completed (on main thread) Implement this if you want to handle the data in your AsyncTask after it has been processed

Reimplemented from pocketmine\scheduler\AsyncTask.

Definition at line 83 of file ChunkRequestTask.php.

◆ onError()

pocketmine\scheduler\AsyncTask::onError ( )
No longer used

Definition at line 196 of file AsyncTask.php.

◆ onProgressUpdate()

pocketmine\scheduler\AsyncTask::onProgressUpdate (   $progress)

Called from the main thread after AsyncTask::publishProgress is called. All AsyncTask::publishProgress calls should result in AsyncTask::onProgressUpdate calls before AsyncTask::onCompletion is called.

mixed$progressThe parameter passed to AsyncTask#publishProgress. It is serialize()'ed and then unserialize()'ed, as if it has been cloned.

Definition at line 189 of file AsyncTask.php.

◆ onRun()

pocketmine\network\mcpe\ChunkRequestTask::onRun ( )

Actions to execute when run

Reimplemented from pocketmine\scheduler\AsyncTask.

Definition at line 68 of file ChunkRequestTask.php.

◆ publishProgress()

pocketmine\scheduler\AsyncTask::publishProgress ( mixed  $progress)

Call this method from AsyncTask::onRun (AsyncTask execution thread) to schedule a call to AsyncTask::onProgressUpdate from the main thread with the given progress parameter.

mixed$progressA value that can be safely serialize()'ed.

Definition at line 161 of file AsyncTask.php.

◆ reallyDestruct()

pocketmine\scheduler\AsyncTask::reallyDestruct ( )

Override this to do normal __destruct() cleanup from a child class.

Definition at line 245 of file AsyncTask.php.

◆ run()

pocketmine\scheduler\AsyncTask::run ( )

Definition at line 78 of file AsyncTask.php.

◆ setResult()

pocketmine\scheduler\AsyncTask::setResult ( mixed  $result)

Definition at line 116 of file AsyncTask.php.

◆ setSubmitted()

pocketmine\scheduler\AsyncTask::setSubmitted ( )

Definition at line 134 of file AsyncTask.php.

◆ storeLocal()

pocketmine\scheduler\AsyncTask::storeLocal ( string  $key,
mixed  $complexData 

Saves mixed data in thread-local storage. Data stored using this storage is only accessible from the thread it was stored on. Data stored using this method will not be serialized. This can be used to store references to variables which you need later on on the same thread, but not others.

For example, plugin references could be stored in the constructor of the async task (which is called on the main thread) using this, and then fetched in onCompletion() (which is also called on the main thread), without them becoming serialized.

Scalar types can be stored directly in class properties instead of using this storage.

Objects stored in this storage can be retrieved using fetchLocal() on the same thread that this method was called from.

Definition at line 214 of file AsyncTask.php.

Referenced by pocketmine\network\mcpe\auth\ProcessLoginTask\__construct(), pocketmine\scheduler\BulkCurlTask\__construct(), pocketmine\world\light\LightPopulationTask\__construct(), pocketmine\network\mcpe\ChunkRequestTask\__construct(), pocketmine\world\generator\PopulationTask\__construct(), and pocketmine\network\mcpe\encryption\PrepareEncryptionTask\__construct().

+ Here is the caller graph for this function:

Member Data Documentation

◆ $chunk

string pocketmine\network\mcpe\ChunkRequestTask::$chunk

Definition at line 44 of file ChunkRequestTask.php.

◆ $chunkX

int pocketmine\network\mcpe\ChunkRequestTask::$chunkX

Definition at line 45 of file ChunkRequestTask.php.

◆ $chunkZ

int pocketmine\network\mcpe\ChunkRequestTask::$chunkZ

Definition at line 46 of file ChunkRequestTask.php.

◆ $compressor

NonThreadSafeValue pocketmine\network\mcpe\ChunkRequestTask::$compressor

@phpstan-var NonThreadSafeValue<Compressor>

Definition at line 50 of file ChunkRequestTask.php.

Referenced by pocketmine\network\mcpe\ChunkRequestTask\__construct().

The documentation for this class was generated from the following file: