public function start()
 {
     $this->base = event_base_new();
     if ($this->_server) {
         $this->event = event_new();
         event_set($this->event, $this->_server, EV_READ | EV_PERSIST, array($this, 'accept'), $this->base);
         event_base_set($this->event, $this->base);
         event_add($this->event);
     }
     foreach ($this->_services as $serviceId => $service) {
         $event = event_new();
         event_set($event, $service, EV_READ | EV_PERSIST | EV_WRITE, array($this, 'service'), $this->base);
         event_base_set($event, $this->base);
         event_add($event);
         $this->events[$serviceId] = $event;
     }
     if ($this->timer) {
         $timer = event_timer_new();
         event_timer_set($timer, array($this, '_onTimer'), $timer);
         event_base_set($timer, $this->base);
         //event_timer_pending($timer, $this->timer * 1000000);
         event_timer_add($timer, $this->timer * 1000000);
     }
     event_base_loop($this->base);
 }
Пример #2
0
 public function start()
 {
     $this->onStart();
     $this->base = event_base_new();
     if ($this->_server) {
         $this->event = event_new();
         event_set($this->event, $this->_server, EV_READ | EV_PERSIST, array($this, 'accept'), $this->base);
         event_base_set($this->event, $this->base);
         event_add($this->event);
     }
     if ($this->_service) {
         $this->service_event = event_new();
         event_set($this->service_event, $this->_service, EV_READ | EV_PERSIST, array($this, 'service'), $this->base);
         event_base_set($this->service_event, $this->base);
         event_add($this->service_event);
     }
     if ($this->_master) {
         $this->master_event = event_new();
         event_set($this->master_event, $this->_master, EV_READ | EV_PERSIST | EV_WRITE, array($this, 'master'), $this->base);
         event_base_set($this->master_event, $this->base);
         event_add($this->master_event);
     }
     if ($this->timer) {
         $timer = event_timer_new();
         event_timer_set($timer, array($this, '_onTimer'), $timer);
         event_base_set($timer, $this->base);
         //event_timer_pending($timer, $this->timer * 1000000);
         event_timer_add($timer, $this->timer * 1000000);
     }
     event_base_loop($this->base);
 }
Пример #3
0
 /**
  * Initialize a new stream listener
  */
 public function __construct($fn, $interval)
 {
     $this->fn = $fn;
     $this->interval = $interval;
     $this->event = event_timer_new();
     event_timer_set($this->event, array($this, 'tick'));
     Loop::attachEvent($this->event, $this->interval * 1000);
 }
Пример #4
0
 public function setTimeout($callback, $interval_ms)
 {
     $base = \Event\Emitter::getBase();
     $event = event_timer_new();
     $arg = array($callback, $event, $interval_ms);
     event_timer_set($event, array($this, 'ev_timer'), $arg);
     event_base_set($event, $base);
     event_add($event, $interval_ms * 1000);
 }
Пример #5
0
 public function __construct($cb, $timeout = null, $id = null, $priority = null)
 {
     if ($id === null) {
         $id = ++self::$counter;
     }
     $this->id = $id;
     $this->cb = $cb;
     $this->ev = event_timer_new();
     $timer = $this;
     event_timer_set($this->ev, array($this, 'eventCall'));
     event_base_set($this->ev, Daemon::$process->eventBase);
     if ($priority !== null) {
         $this->setPriority($priority);
     }
     if ($timeout !== null) {
         $this->timeout($timeout);
     }
     Timer::$list[$id] = $this;
 }
Пример #6
0
 /**
  * Creates event resource
  *
  * @throws EventException
  *
  * @return void
  */
 protected function initialize()
 {
     if (false === ($this->resource = event_timer_new())) {
         throw $this->exception('Could not create new event timer resource (event_new).');
     }
 }
Пример #7
0
 /**
  * Schedule a timer for execution.
  *
  * @param TimerInterface $timer
  */
 private function scheduleTimer(TimerInterface $timer)
 {
     $this->timerEvents[$timer] = $event = event_timer_new();
     event_timer_set($event, $this->timerCallback, $timer);
     event_base_set($event, $this->eventBase);
     event_add($event, $timer->getInterval() * self::MICROSECONDS_PER_SECOND);
 }