(PECL event >= 1.2.6-beta)
Класс Event представляет и срабатывает на следующие события: файловый дескриптор готов к считыванию или записи; становится готов к считыванию или записи (только edge-triggered I/O (единовременное срабатывание)); заканчивается ожидание; получен системный сигнал; произошло пользовательское событие.
Каждое событие связано с объектом EventBase. Однако событие не обработается, пока событие не добавят методом Event::add(). Добавленное событие пребывает в статусе ожидания pending, пока оно не произошло. После этого событие переходит в статус active. Для обработки событий пользователь регистрирует функцию обратного вызова, которая вызывается в момент перехода события в активный статус. Событие вернётся в статус ожидания, если событие настроили со статусом persistent. После запуска callback-функции событие выйдет из режима ожидания, если не пребывает в статусе постоянноянного. Метод Event::del() удаляет событие из отслеживаемых и поэтому выводит событие из статуса ожидания. Событие добавляют повторно вызовом метода Event::add().
Указывает, пребывает ли событие в состоянии ожидания. Смотрите страницу «О постоянных событиях».
Event::ET
Указывает, что событие срабатывает по фронту (англ. edge-triggered) —
генерируется один раз при изменении статуса,
если базовый сервер событий поддерживает такое поведение.
Это влияет на семантику флагов
Event::READ
и
Event::WRITE
.
Event::PERSIST
Указывает, что событие пребывает в статусе постоянного. Дополнительную информацию даёт страница «О постоянных событиях».
Event::READ
Флаг указывает событие, которое становится активным, когда предоставленный файл — часто потоковый ресурс или сокет — готов к чтению.
Event::WRITE
Флаг указывает событие, которое становится активным, когда предоставленный файл — часто потоковый ресурс или сокет — готов к записи.
Event::SIGNAL
Флаг указывают, чтобы реализовать отслеживание системных сигналов. Дополнительную информацию даёт страница «Создание событий для сигналов».
Event::TIMEOUT
Флаг указывает, что активировалось событие по истечению времени ожидания.
Флаг
Event::TIMEOUT
игнорируется при создании события: флаг
устанавливают при добавлении.
Флаг указывают в аргументе
$what
функции обратного
вызова, если произошло событие этого типа.