Overview

Namespaces

  • Evenement
  • None
  • PHP
  • Psr
    • Http
      • Message
  • Ratchet
    • Http
    • RFC6455
      • Handshake
      • Messaging
    • Server
    • Session
      • Serialize
      • Storage
        • Proxy
    • Wamp
    • WebSocket
  • React
    • EventLoop
      • Tick
      • Timer
    • Socket
    • Stream
  • Symfony
    • Component
      • HttpFoundation
        • Session
          • Attribute
          • Flash
          • Storage
            • Handler
            • Proxy
      • Routing
        • Annotation
        • Exception
        • Generator
          • Dumper
        • Loader
          • DependencyInjection
        • Matcher
          • Dumper
        • Tests
          • Annotation
          • Fixtures
            • AnnotatedClasses
            • OtherAnnotatedClasses
          • Generator
            • Dumper
          • Loader
          • Matcher
            • Dumper

Classes

  • FutureTickQueue
  • NextTickQueue
  • Overview
  • Namespace
  • Class
  • Tree
 1: <?php
 2: 
 3: namespace React\EventLoop\Tick;
 4: 
 5: use React\EventLoop\LoopInterface;
 6: use SplQueue;
 7: 
 8: class NextTickQueue
 9: {
10:     private $eventLoop;
11:     private $queue;
12: 
13:     /**
14:      * @param LoopInterface $eventLoop The event loop passed as the first parameter to callbacks.
15:      */
16:     public function __construct(LoopInterface $eventLoop)
17:     {
18:         $this->eventLoop = $eventLoop;
19:         $this->queue = new SplQueue();
20:     }
21: 
22:     /**
23:      * Add a callback to be invoked on the next tick of the event loop.
24:      *
25:      * Callbacks are guaranteed to be executed in the order they are enqueued,
26:      * before any timer or stream events.
27:      *
28:      * @param callable $listener The callback to invoke.
29:      */
30:     public function add(callable $listener)
31:     {
32:         $this->queue->enqueue($listener);
33:     }
34: 
35:     /**
36:      * Flush the callback queue.
37:      */
38:     public function tick()
39:     {
40:         while (!$this->queue->isEmpty()) {
41:             call_user_func(
42:                 $this->queue->dequeue(),
43:                 $this->eventLoop
44:             );
45:         }
46:     }
47: 
48:     /**
49:      * Check if the next tick queue is empty.
50:      *
51:      * @return boolean
52:      */
53:     public function isEmpty()
54:     {
55:         return $this->queue->isEmpty();
56:     }
57: }
58: 
Ratchet API documentation generated by ApiGen 2.8.0