Php/docs/function.eio-grp

提供:Dev Guides
< Php
移動先:案内検索

eio_grp

(PECL eio >= 0.0.1dev)

eio_grpリクエストグループを作る


説明

eio_grp ( callable $callback [, string $data = NULL ] ) : resource

eio_grp() は、リクエストグループを作ります。


パラメータ

callback

callback 関数が、リクエスト終了時にコールされます。 この関数のプロトタイプは、

void callback(mixed $data, int $result[, resource $req]);

に一致しなければなりません。

data

は、リクエストに渡すカスタムデータです。

result

にはリクエスト固有の結果が格納されます。基本的には、対応するシステムコールが返すそのままの値となります。

req

はオプションで指定するリクエストリソースです。 eio_get_last_error() のような関数で使えます。

data

callback に渡す任意の引数。


返り値

eio_grp() は、成功した場合にリクエストグループリソースを返します。エラー時に false を返します。


例1 eio_grp() の例

<?php$temp_filename = dirname(__FILE__) ."/eio-file.tmp";$fp = fopen($temp_filename, "w");fwrite($fp, "some data");fclose($fp);$my_file_fd = NULL;/* グループリクエストが終了したときに呼ばれます */function my_grp_done($data, $result) { // もしファイルが残っていれば削除します @unlink($data);}/* テンポラリファイルを開いたときに呼ばれます */function my_grp_file_opened_callback($data, $result) { global $my_file_fd, $grp; $my_file_fd = $result; $req = eio_read($my_file_fd, 4, 0,   EIO_PRI_DEFAULT, "my_grp_file_read_callback"); eio_grp_add($grp, $req);}/* ファイルを読み終えたときに呼ばれます */function my_grp_file_read_callback($data, $result) { global $my_file_fd, $grp; var_dump($result); // ファイルを閉じるリクエストを作ります $req = eio_close($my_file_fd); // リクエストをグループに追加します eio_grp_add($grp, $req);}// リクエストグループを作ります$grp = eio_grp("my_grp_done", $temp_filename);// リクエストを作ります$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();?>

上の例の出力は、 たとえば以下のようになります。


string(4) "some"

参考

  • eio_grp_cancel() - リクエストグループをキャンセルする
  • eio_grp_add() - リクエストをリクエストグループに追加する