# ウォッチャーのコールバック

すべてのウォッチャーは、アクティブ (イベントを待ち受け中) あるいは非アクティブ (一時停止) の状態になります。 コールバックを実行できるのは、アクティブなウォッチャーだけです。 すべてのコールバックは、少なくとも二つの引数を付けて呼ばれます。 `watcher` (ウォッチャー)、そして `revents` (受け取ったイベントのビットマスク) です。

ウォッチャーのコールバックは、ウォッチャーのコンストラクタ (EvWatcher の派生クラス。 EvCheck::__construct() や EvChild::__construct() など) に渡します。コールバックは、次のプロトタイプにしたがわなければいけません。

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

`watcher`

  EvWatcher を継承したクラスのインスタンス。

`revents`

  ウォッチャーが受信したイベント

ウォッチャーの型によって、 `revents` に関連するビットが割り当てられています。 そのため、複数のウォッチャーに対して同じコールバックを使えます。 イベントのマスクは、イベントの型にちなんだ名前になっています。たとえば EvChild (あるいは EvLoop::child()) は `EV::CHILD`、 EvPrepare (あるいは EvLoop::prepare()) は `Ev::PREPARE`、 EvPeriodic (あるいは EvLoop::periodic()) は `Ev::PERIODIC` などです。ただ I/O のイベントは例外で、これは `Ev::READ` と `Ev::WRITE` の両方のビットを設定します。