# Watcher callbacks

All watchers can be active(waiting for events) or inactive(paused). Only active watchers will have their callbacks invoked. All callbacks will be called with at least two arguments: `watcher` - the watcher, and `revents` a bitmask of received events.

Watcher callbacks are passed to the watcher constructors (the classes derived from EvWatcher - EvCheck::__construct() , EvChild::__construct() etc.). A watcher callback should match the following prototype:

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

`watcher`

  The watcher instance(of a class extending EvWatcher ).

`revents`

  Watcher received events .

Each watcher type has its associated bit in `revents` , so one can use the same callback for multiple watchers. The event mask is named after the type, i.e. EvChild (or EvLoop::child() ) sets `EV::CHILD` , EvPrepare (or EvLoop::prepare() ) sets `Ev::PREPARE` , EvPeriodic (or EvLoop::periodic() ) sets `Ev::PERIODIC` and so on, with the exception of I/O events (which can set both `Ev::READ` and `Ev::WRITE` bits).