eio_grp_add
(PECL eio >= 0.0.1dev)
eio_grp_add — リクエストをリクエストグループに追加する
説明
eio_grp_add
( resource $grp
, resource $req
) : void
eio_grp_add() は、リクエストをリクエストグループに追加します。
返り値
eio_grp_add() は値を返しません。
例
例1 リクエストのグループ化
<?php/* * ファイルを開き、読んでから閉じるグループリクエストを作ります */// テンポラリファイルを作って何かを書き込みます$temp_filename = dirname(__FILE__) ."/eio-file.tmp";$fp = fopen($temp_filename, "w");fwrite($fp, "some data");fclose($fp);/* グループリクエストが終了したときに呼ばれます */function my_grp_done($data, $result) { var_dump($result == 0); @unlink($data);}/* eio_open() が終わったら呼ばれます */function my_grp_file_opened_callback($data, $result) { global $grp; // $result にはファイルディスクリプタが含まれるはずです var_dump($result > 0); // eio_read() リクエストを作ってグループに追加します // ファイルディスクリプタをコールバックに渡します $req = eio_read($result, 4, 0, EIO_PRI_DEFAULT, "my_grp_file_read_callback", $result); eio_grp_add($grp, $req);}/* eio_read() が終わったら呼ばれます */function my_grp_file_read_callback($data, $result) { global $grp; // データを読みます var_dump($result); // eio_close() リクエストを作ってグループに追加します // $data にはファイルディスクリプタが含まれるはずです $req = eio_close($data); eio_grp_add($grp, $req);}// リクエストグループを作ります$grp = eio_grp("my_grp_done", $temp_filename);var_dump($grp);// eio_open() リクエストを作ってグループに追加します$req = eio_open($temp_filename, EIO_O_RDWR | EIO_O_APPEND , NULL, EIO_PRI_DEFAULT, "my_grp_file_opened_callback", NULL);eio_grp_add($grp, $req);// リクエストを処理しますeio_event_loop();?>
上の例の出力は、 たとえば以下のようになります。
resource(6) of type (EIO Group Descriptor) bool(true) string(4) "some" bool(true)