イベントベースのプログラミングに libev を使用しようとしています。しかし、次のようなlibevによって提供されるいくつかのイベントがありますEV_READ, EV_WRITE, EV_TIMER ..
それで、私自身のカスタムイベントを持つことは可能ですか?
たとえば、ソケットからのメッセージの連続フローがあり、そのメッセージ ストリーム内のメッセージのタイプのみに関心があります。だから、基本的には
while(true)
{
Msg msg = getMessage();
if(msg != null && msg.id == ourId)
return msg;
}
ということで、こういうイベントに登録したい(そのif
条件だけは満たしている)。カスタムイベントですよね?このイベントを libev に指定するにはどうすればよいですか。
つまり、libev では次のように指定します。
ev_io_init (&stdin_watcher, stdin_cb, /*STDIN_FILENO*/ 0, EV_READ);
ev_io_start (loop, &stdin_watcher);
自分のイベントを確認できるものは見当たりません。出来ますか ?