©
本文档使用 PHP中文网手册 发布
(PECL eio >= 0.0.1dev)
eio_grp_add — Adds a request to the request group.
$grp
, resource $req
)eio_grp_add() adds a request to the request group.
grp
The request group resource returned by eio_grp()
req
The request resource
eio_grp_add() doesn't return a value.
Example #1 Grouping requests
<?php
// Create temporary file and write some bytes to it
$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 );
}
function my_grp_file_opened_callback ( $data , $result ) {
global $grp ;
// $result should contain the file descriptor
var_dump ( $result > 0 );
// Create eio_read() request and add it to the group
// Pass file descriptor to the callback
$req = eio_read ( $result , 4 , 0 ,
EIO_PRI_DEFAULT , "my_grp_file_read_callback" , $result );
eio_grp_add ( $grp , $req );
}
function my_grp_file_read_callback ( $data , $result ) {
global $grp ;
// Read bytes
var_dump ( $result );
// Create eio_close() request and add it to the group
// $data should contain the file descriptor
$req = eio_close ( $data );
eio_grp_add ( $grp , $req );
}
// Create request group
$grp = eio_grp ( "my_grp_done" , $temp_filename );
var_dump ( $grp );
// Create eio_open() request and add it to the group
$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 );
// Process requests
eio_event_loop ();
?>
以上例程的输出类似于:
resource(6) of type (EIO Group Descriptor) bool(true) string(4) "some" bool(true)