# Watcher callbacks

Все наблюдатели могут быть либо активными (ожидать сообщения), либо неактивными (приостановленными). Только активные наблюдатели могут вызывать свои callback-функции. Все такие функции вызываются как минимум с двумя параметрами: `watcher` - наблюдатель, и `revents` - битовая маска принятых событий.

Callback-функции наблюдателей передаются в конструкторы наблюдателей (классы, наследующие от EvWatcher - EvCheck::__construct(), EvChild::__construct() и т.д.) Callback-функция наблюдателя должна соответствовать следующему прототипу:

function callback( object `$watcher` = NULL , int `$revents` = NULL ): void

`watcher`
  Экземпляр наблюдателя (класс расширяющий EvWatcher).
`revents`
  Принятые наблюдателем события.

Каждый тип наблюдателя имеет собственный бит в `revents`, ассоциированный с ним, что позволяет использовать одну и ту же callback-функцию для множества наблюдателей. Событийная маска именуется после типа, т.е. EvChild (или EvLoop::child()) устанавливает `Ev::CHILD`, EvPrepare (или EvLoop::prepare()) устанавливает `Ev::PREPARE`, EvPeriodic (или EvLoop::periodic()) устанавливает `Ev::PERIODIC` и так далее, с исключением для событий ввода/вывода (которые устанавливают оба бита, и `Ev::READ` и `Ev::WRITE`).

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open