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

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

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

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

watcher

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

revents

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

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