diff options
Diffstat (limited to 'assets/php/vendor/react/event-loop/src/Timer')
-rwxr-xr-x | assets/php/vendor/react/event-loop/src/Timer/Timer.php | 55 | ||||
-rwxr-xr-x | assets/php/vendor/react/event-loop/src/Timer/Timers.php | 109 |
2 files changed, 0 insertions, 164 deletions
diff --git a/assets/php/vendor/react/event-loop/src/Timer/Timer.php b/assets/php/vendor/react/event-loop/src/Timer/Timer.php deleted file mode 100755 index da3602a..0000000 --- a/assets/php/vendor/react/event-loop/src/Timer/Timer.php +++ /dev/null @@ -1,55 +0,0 @@ -<?php - -namespace React\EventLoop\Timer; - -use React\EventLoop\TimerInterface; - -/** - * The actual connection implementation for TimerInterface - * - * This class should only be used internally, see TimerInterface instead. - * - * @see TimerInterface - * @internal - */ -final class Timer implements TimerInterface -{ - const MIN_INTERVAL = 0.000001; - - private $interval; - private $callback; - private $periodic; - - /** - * Constructor initializes the fields of the Timer - * - * @param float $interval The interval after which this timer will execute, in seconds - * @param callable $callback The callback that will be executed when this timer elapses - * @param bool $periodic Whether the time is periodic - */ - public function __construct($interval, $callback, $periodic = false) - { - if ($interval < self::MIN_INTERVAL) { - $interval = self::MIN_INTERVAL; - } - - $this->interval = (float) $interval; - $this->callback = $callback; - $this->periodic = (bool) $periodic; - } - - public function getInterval() - { - return $this->interval; - } - - public function getCallback() - { - return $this->callback; - } - - public function isPeriodic() - { - return $this->periodic; - } -} diff --git a/assets/php/vendor/react/event-loop/src/Timer/Timers.php b/assets/php/vendor/react/event-loop/src/Timer/Timers.php deleted file mode 100755 index 17bbdac..0000000 --- a/assets/php/vendor/react/event-loop/src/Timer/Timers.php +++ /dev/null @@ -1,109 +0,0 @@ -<?php - -namespace React\EventLoop\Timer; - -use React\EventLoop\TimerInterface; -use SplObjectStorage; -use SplPriorityQueue; - -/** - * A scheduler implementation that can hold multiple timer instances - * - * This class should only be used internally, see TimerInterface instead. - * - * @see TimerInterface - * @internal - */ -final class Timers -{ - private $time; - private $timers; - private $scheduler; - - public function __construct() - { - $this->timers = new SplObjectStorage(); - $this->scheduler = new SplPriorityQueue(); - } - - public function updateTime() - { - return $this->time = microtime(true); - } - - public function getTime() - { - return $this->time ?: $this->updateTime(); - } - - public function add(TimerInterface $timer) - { - $interval = $timer->getInterval(); - $scheduledAt = $interval + microtime(true); - - $this->timers->attach($timer, $scheduledAt); - $this->scheduler->insert($timer, -$scheduledAt); - } - - public function contains(TimerInterface $timer) - { - return $this->timers->contains($timer); - } - - public function cancel(TimerInterface $timer) - { - $this->timers->detach($timer); - } - - public function getFirst() - { - while ($this->scheduler->count()) { - $timer = $this->scheduler->top(); - - if ($this->timers->contains($timer)) { - return $this->timers[$timer]; - } - - $this->scheduler->extract(); - } - - return null; - } - - public function isEmpty() - { - return count($this->timers) === 0; - } - - public function tick() - { - $time = $this->updateTime(); - $timers = $this->timers; - $scheduler = $this->scheduler; - - while (!$scheduler->isEmpty()) { - $timer = $scheduler->top(); - - if (!isset($timers[$timer])) { - $scheduler->extract(); - $timers->detach($timer); - - continue; - } - - if ($timers[$timer] >= $time) { - break; - } - - $scheduler->extract(); - call_user_func($timer->getCallback(), $timer); - - if ($timer->isPeriodic() && isset($timers[$timer])) { - $timers[$timer] = $scheduledAt = $timer->getInterval() + $time; - $scheduler->insert($timer, -$scheduledAt); - } else { - $timers->detach($timer); - } - } - } -} |