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