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();
 | 
						|
}
 |