Example #1
0
 public function dispatch(Event $event)
 {
     if ($this->_listeners[$event->name()]) {
         return $this->_callListener([$event->subject(), $this->_listeners[$event->name()]], $event);
     }
     return false;
 }
Example #2
0
 function handleEvent(Event $event)
 {
     switch ($event->name()) {
         case Event::READABLE:
             $this->state = static::STATE_READABLE;
             break;
         case Event::WRITEABLE:
             $this->state = static::STATE_WRITEABLE;
             break;
         case Event::TERMINATED:
             $this->state = static::STATE_TERMINATED;
             break;
     }
     switch ($this->state) {
         case static::STATE_READABLE:
             $this->handleData($event);
             break;
         case static::STATE_WRITEABLE:
             $this->handleWrite($event);
             break;
         case static::STATE_TERMINATED:
             $this->handleTerminate($event);
             break;
     }
 }
Example #3
0
 /**
  * Fire the Event to each registered Listener
  *
  * @param Event $event
  * @return void
  */
 private function fire(Event $event)
 {
     foreach ($this->registered($event->name()) as $listener) {
         $listener->handle($event);
     }
 }
Example #4
0
 /**
  * Dispatches a new event to all configured listeners
  *
  * @param string|\Cake\Event\Event $event the event key name or instance of Event
  * @return \Cake\Event\Event
  */
 public function dispatch($event)
 {
     if (is_string($event)) {
         $event = new Event($event);
     }
     $listeners = $this->listeners($event->name());
     if (empty($listeners)) {
         return $event;
     }
     foreach ($listeners as $listener) {
         if ($event->isStopped()) {
             break;
         }
         $result = $this->_callListener($listener['callable'], $event);
         if ($result === false) {
             $event->stopPropagation();
         }
         if ($result !== null) {
             $event->result = $result;
         }
     }
     return $event;
 }