Клас Event

(PECL event >= 1.2.6-beta)

Вступ

КлассEvent представляє та спрацьовує на наступні події: файловий дескриптор готовий до читання чи запису; стає готовим до читання або запису (тільки edge-triggered I/O (одноразове спрацьовування)); закінчується очікування; отримано системний сигнал; відбулася користувальницька подія.

Кожна подія пов'язана з EventBase . Однак подія не буде оброблена, доки не буде доданос помощью методаEvent::add(). Додана подія знаходиться у статусі очікування pending, Доки воно не відбулося. Після цього воно переходить у статус активно (active). Для обробки подій користувач може зареєструвати функцію зворотного дзвінка, яка буде викликана в момент переходу на активний статус. Якщо подія налаштована як постійна (persistent), воно повернеться у статус очікування. Якщо воно не постійне, воно вийде з режиму очікування після запуску функції зворотного дзвінка. Метод Event::del() видаляєвідповідно виводячи його зі статусу очікування. Додати його за новою можна за допомогою методу Event::add()

Огляд класів


     
    
    
    
     
      final
      class Event
     
     {
    
    /* Константы */
    
     const
     int
      ET = 32;

    const
     int
      PERSIST = 16;

    const
     int
      READ = 2;

    const
     int
      WRITE = 4;

    const
     int
      SIGNAL = 8;

    const
     int
      TIMEOUT = 1;

    /* Свойства */
    public
     readonly
     bool
      $pending;

    /* Методы */
    
   public
   add(
    float
     $timeout
    = ?): bool
public
   __construct(    
    EventBase
     $base
   ,    
    mixed
     $fd
   ,    
    int
     $what
   ,    
    callable
     $cb
   ,    
    mixed
     $arg
     = NULL
   )
public
   del(): bool
public
   free(): void
public
   static
   getSupportedMethods(): array
public
   pending(
    int
     $flags
   ): bool
public
   set(    
    EventBase
     $base
   ,    
    mixed
     $fd
   ,    
    int
     $what
    = ?,    
    callable
     $cb
    = ?,    
    mixed
     $arg
    = ?): bool
public
   setPriority(
    int
     $priority
   ): bool
public
   setTimer(
    EventBase
     $base
   , 
    callable
     $cb
   , 
    mixed
     $arg
    = ?): bool
public
   static
   signal(    
    EventBase
     $base
   ,    
    int
     $signum
   ,    
    callable
     $cb
   ,    
    mixed
     $arg
    = ?): Event
public
   static
   timer(
    EventBase
     $base
   , 
    callable
     $cb
   , 
    mixed
     $arg
    = ?): Event

   }

Властивості

pending

Позначає, що подія може очікувати. Дивіться Про постійні події

Обумовлені константи

Event::ET

Означає, що подія повинна спрацьовувати один раз при зміні статусу (edge-triggered), якщо бекенд, що використовується, підтримує таку поведінку. Це впливає на семантику Event::READ і Event::WRITE

Event::PERSIST

Позначає, що подія стала. Дивіться Про постійні події

Event::READ

Цей прапор вказує на подію, яка стає активною, коли наданий файл (зазвичай потоковий ресурс або сокет) готовий до читання.

Event::WRITE

Цей прапор вказує на подію, яка стає активною, коли наданий файл (зазвичай потоковий ресурс або сокет) готовий до запису.

Event::SIGNAL

Використовується для відстеження системних сигналів. Дивіться "Створення подій для сигналів" нижче.

Event::TIMEOUT

Прапор означає, що активувалася подія після закінчення очікування (timeout).

Флаг**Event::TIMEOUT** ігнорується при створенні події: його можна встановити за додаванні. Він задається в аргументі $what функції зворотного дзвінка, якщо відбулася подія цього типу.

Зміст

  • Event::add— Перевести подію у стан очікування
  • Event::addSignal - Псевдонім Event:: add
  • Event::addTimer - Псевдонім Event:: add
  • Event::__construct - Конструктор об'єкта Event
  • Event::del - Перевести подію в пасивний стан
  • Event::delSignal - Псевдонім Event::del
  • Event::delTimer - Псевдонім Event::del
  • Event::free— Перевести подію в пасивний стан та звільнити всі виділені для неї ресурси
  • Event::getSupportedMethods— Отримати масив з іменами методів, які підтримуються в поточній версії Libevent
  • Event::pending— Перевірити, що подія перебуває у стані очікування або що вона запланована
  • Event::set - Переконфігурувати подію
  • Event::setPriority - Задати пріоритет події
  • Event::setTimer - Переконфігурація події таймера
  • Event::signal - Створити об'єкт події сигналу
  • Event::timer - Створити об'єкт події таймера