122 lines
3.4 KiB
PHP
122 lines
3.4 KiB
PHP
<?php
|
|
|
|
namespace React\EventLoop;
|
|
|
|
use React\EventLoop\Timer\TimerInterface;
|
|
|
|
interface LoopInterface
|
|
{
|
|
/**
|
|
* Register a listener to be notified when a stream is ready to read.
|
|
*
|
|
* @param resource $stream The PHP stream resource to check.
|
|
* @param callable $listener Invoked when the stream is ready.
|
|
*/
|
|
public function addReadStream($stream, callable $listener);
|
|
|
|
/**
|
|
* Register a listener to be notified when a stream is ready to write.
|
|
*
|
|
* @param resource $stream The PHP stream resource to check.
|
|
* @param callable $listener Invoked when the stream is ready.
|
|
*/
|
|
public function addWriteStream($stream, callable $listener);
|
|
|
|
/**
|
|
* Remove the read event listener for the given stream.
|
|
*
|
|
* @param resource $stream The PHP stream resource.
|
|
*/
|
|
public function removeReadStream($stream);
|
|
|
|
/**
|
|
* Remove the write event listener for the given stream.
|
|
*
|
|
* @param resource $stream The PHP stream resource.
|
|
*/
|
|
public function removeWriteStream($stream);
|
|
|
|
/**
|
|
* Remove all listeners for the given stream.
|
|
*
|
|
* @param resource $stream The PHP stream resource.
|
|
*/
|
|
public function removeStream($stream);
|
|
|
|
/**
|
|
* Enqueue a callback to be invoked once after the given interval.
|
|
*
|
|
* The execution order of timers scheduled to execute at the same time is
|
|
* not guaranteed.
|
|
*
|
|
* @param int|float $interval The number of seconds to wait before execution.
|
|
* @param callable $callback The callback to invoke.
|
|
*
|
|
* @return TimerInterface
|
|
*/
|
|
public function addTimer($interval, callable $callback);
|
|
|
|
/**
|
|
* Enqueue a callback to be invoked repeatedly after the given interval.
|
|
*
|
|
* The execution order of timers scheduled to execute at the same time is
|
|
* not guaranteed.
|
|
*
|
|
* @param int|float $interval The number of seconds to wait before execution.
|
|
* @param callable $callback The callback to invoke.
|
|
*
|
|
* @return TimerInterface
|
|
*/
|
|
public function addPeriodicTimer($interval, callable $callback);
|
|
|
|
/**
|
|
* Cancel a pending timer.
|
|
*
|
|
* @param TimerInterface $timer The timer to cancel.
|
|
*/
|
|
public function cancelTimer(TimerInterface $timer);
|
|
|
|
/**
|
|
* Check if a given timer is active.
|
|
*
|
|
* @param TimerInterface $timer The timer to check.
|
|
*
|
|
* @return boolean True if the timer is still enqueued for execution.
|
|
*/
|
|
public function isTimerActive(TimerInterface $timer);
|
|
|
|
/**
|
|
* Schedule a callback to be invoked on the next tick of the event loop.
|
|
*
|
|
* Callbacks are guaranteed to be executed in the order they are enqueued,
|
|
* before any timer or stream events.
|
|
*
|
|
* @param callable $listener The callback to invoke.
|
|
*/
|
|
public function nextTick(callable $listener);
|
|
|
|
/**
|
|
* Schedule a callback to be invoked on a future tick of the event loop.
|
|
*
|
|
* Callbacks are guaranteed to be executed in the order they are enqueued.
|
|
*
|
|
* @param callable $listener The callback to invoke.
|
|
*/
|
|
public function futureTick(callable $listener);
|
|
|
|
/**
|
|
* Perform a single iteration of the event loop.
|
|
*/
|
|
public function tick();
|
|
|
|
/**
|
|
* Run the event loop until there are no more tasks to perform.
|
|
*/
|
|
public function run();
|
|
|
|
/**
|
|
* Instruct a running event loop to stop.
|
|
*/
|
|
public function stop();
|
|
}
|