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

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

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

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

watcher

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

revents

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

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