Класс Event

(PECL event >= 1.2.6-beta)

Введение

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

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

Обзор классов

final Event {
/* Константы */
const integer ET = 32 ;
const integer PERSIST = 16 ;
const integer READ = 2 ;
const integer WRITE = 4 ;
const integer SIGNAL = 8 ;
const integer TIMEOUT = 1 ;
/* Свойства */
public readonly bool $pending ;
/* Методы */
public bool add ([ float $timeout ] )
public bool addSignal ([ float $timeout ] )
public bool addTimer ([ float $timeout ] )
public __construct ( EventBase $base , mixed $fd , int $what , callable $cb [, mixed $arg = NULL ] )
public bool del ( void )
public bool delSignal ( void )
public bool delTimer ( void )
public void free ( void )
public static array getSupportedMethods ( void )
public bool pending ( int $flags )
public bool set ( EventBase $base , mixed $fd [, int $what [, callable $cb [, mixed $arg ]]] )
public bool setPriority ( int $priority )
public bool setTimer ( EventBase $base , callable $cb [, mixed $arg ] )
public static Event signal ( EventBase $base , int $signum , callable $cb [, mixed $arg ] )
public static Event timer ( EventBase $base , callable $cb [, mixed $arg ] )
}

Свойства

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::addTimer — Перевести событие таймера в состояние ожидания
  • Event::__construct — Конструктор объекта Event
  • Event::del — Перевести событие в пассивное состояние
  • Event::delSignal — Перевести событие сигнала в пассивное состояние
  • Event::delTimer — Перевести событие таймера в пассивное состояние
  • Event::free — Перевести событие в пассивное состояние и высвободить все выделенные для него ресурсы
  • Event::getSupportedMethods — Получить массив с именами методов, поддерживаемых в текущей версии Libevent
  • Event::pending — Проверить, что событие находится в состоянии ожидания либо что оно запланировано
  • Event::set — Переконфигурировать событие
  • Event::setPriority — Задать приоритет событию
  • Event::setTimer — Переконфигурация события таймера
  • Event::signal — Создать объект события сигнала
  • Event::timer — Создать объект события таймера
add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top