Event::add

(PECL event >= 1.2.6-beta)

Event::addBascule un évènement en attente

Description

publicEvent::add(float$timeout = ?): bool

Bascule un évènement en attente. Un évènement qui n'a pas le statut en attente ne se lancera jamais, et le callback de l'évènement ne se sera jamais appelé. En utilisant Event::del() un évènement peut être re-planifié par l'utilisateur quand il veut.

Si Event::add() est appelé sur un évènement déjà en attente, libevent va le laisser en attente et le re-planifier avec le nouveau timeout (si donné). Dans le cas ou le timeout n'est pas spécifié Event::add() n'a aucun effet.

Liste de paramètres

timeout

Timeout en secondes.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Ajout d'un signal personnalisé

<?php


class MyEventSignal {
private
$base, $ev;
public function
__construct($base) {
$this->base = $base;
$this->ev = Event::signal($base, SIGTERM, array($this, 'eventSighandler'));
$this->ev->add();
}
public function
eventSighandler($no, $c) {
echo
"Signal attrapé $no\n";
$this->base->exit();
}
}

$base = new EventBase();
$c = new MyEventSignal($base);

$base->loop();
?>

Résultat de l'exemple ci-dessus est similaire à :

Signal attrapé 15

Exemple #2 Ajout d'une minuterie

<?php

$base
= new EventBase();
$n = 2;
$e = Event::timer($base, function($n) use (&$e) {
echo
"$n secondes écoulées\n";
$e->delTimer();
},
$n);
$e->add($n);
$base->loop();
?>

Résultat de l'exemple ci-dessus est similaire à :

2 secondes écoulées

Voir aussi

To Top