Все наблюдатели могут быть либо активными (ожидать сообщения), либо неактивными (приостановленными). Только активные наблюдатели могут вызывать свои callback-функции. Все такие функции вызываются как минимум с двумя параметрами: watcher
- наблюдатель, и revents
- битовая маска принятых событий.
Callback-функции наблюдателей передаются в конструкторы наблюдателей (классы, наследующие от EvWatcher - EvCheck::__construct(), EvChild::__construct() и т.д.) Callback-функция наблюдателя должна соответствовать следующему прототипу:
watcher
Экземпляр наблюдателя (класс расширяющий EvWatcher).
revents
Каждый тип наблюдателя имеет собственный бит в revents
, ассоциированный с ним, что позволяет использовать одну и ту же callback-функцию для множества наблюдателей. Событийная маска именуется после типа, т.е. EvChild (или EvLoop::child()) устанавливает EV::CHILD
, EvPrepare (или EvLoop::prepare()) устанавливает Ev::PREPARE
, EvPeriodic (или EvLoop::periodic()) устанавливает Ev::PERIODIC
и так далее, с исключением для событий ввода/вывода (которые устанавливают оба бита, и Ev::READ
и Ev::WRITE
).