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

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

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

function 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` の両方のビットを設定します。

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