(PECL eio >= 0.3.1b)
eio_get_event_stream — Récupère le flux représentant une variable utilisée dans les communications internes avec libeio
eio_get_event_stream() récupère un flux représentant une variable utilisée dans les communications internes avec libeio. Peut être utilisé pour lier avec des boucles d'événements fournies par d'autres extensions PECL, comme par exemple libevent.
Cette fonction ne contient aucun paramètre.
eio_get_event_stream() retourne un flux en
cas de succès, null
sinon.
Exemple #1 Utilisation de eio avec libevent
<?php
function my_eio_poll($fd, $events, $arg) {
/* Quelques commandes libevent peuvent être effectuées ici .. */
if (eio_nreqs()) {
eio_poll();
}
/* .. et ici */
}
function my_res_cb($d, $r) {
var_dump($r); var_dump($d);
}
$base = event_base_new();
$event = event_new();
$fd = eio_get_event_stream();
var_dump($fd);
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");
/* quelques appels à eio_* calls ici ... */
// Définit les drapeaux des événements
event_set($event, $fd, EV_READ /*| EV_PERSIST*/, "my_eio_poll", array($event, $base));
// Définit l'événement de base
event_base_set($event, $base);
// Active l'événement
event_add($event);
// Démarre la boucle des événements
event_base_loop($base);
/* La même chose peut être effectuée avec les interfaces libevent bufferisées */
?>
Résultat de l'exemple ci-dessus est similaire à :
int(3) int(0) string(8) "nop data" int(0) string(10) "mkdir data"