(PECL eio >= 0.3.1b)
eio_get_event_stream — Obtiene un flujo que representa una variable usada en comnunicaciones internas con libeio
eio_get_event_stream() adquiere un flujo que representa una variable usada en comunicaciones internas con libeio. Se podría usar para vinculaciones con algún bucle de eventos proporcionado por otra extensión PECL, por ejemplo libevent.
Esta función no tiene parámetros.
eio_get_event_stream() devuelve un flujo en caso de éxito;
de otro modo devuelve null
Ejemplo #1 Usar eio con libevent
<?php
function mi_eio_poll($df, $eventos, $argumento) {
/* Algunas regulaciones de libevent podrían ir aquí .. */
if (eio_nreqs()) {
eio_poll();
}
/* .. y aquí */
}
function my_res_cb($d, $r) {
var_dump($r); var_dump($d);
}
$base = event_base_new();
$evento = event_new();
$df = eio_get_event_stream();
var_dump($df);
eio_nop(EIO_PRI_DEFAULT, "my_res_cb", "nop data");
eio_mkdir("/tmp/abc-eio-temp", 0750, EIO_PRI_DEFAULT, "my_res_cb", "mkdir data");
/* algunas llamadas eio_* aquí ... */
// establecer la banderas del evento
event_set($evento, $df, EV_READ /*| EV_PERSIST*/, "mi_eio_poll", array($evento, $base));
// establecer la base del evento
event_base_set($evento, $base);
// habilitar el evento
event_add($evento);
// iniciar el bucle de eventos
event_base_loop($base);
/* Lo mismo estará disponible mediante interfaz libevent con buffer */
?>
El resultado del ejemplo sería algo similar a:
int(3) int(0) string(8) "nop data" int(0) string(10) "mkdir data"