Bascule un évènement en attente

# Event::add

(PECL event >= 1.2.6-beta)

Event::add — Bascule un évènement en attente

### Description

public function Event::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 la fonction de rappel de l'évènement ne sera jamais appelée. 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 où 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
    /*
    Lancez dans une fenêtre de terminal :

    $ php examples/signal.php

    Dans une autre fenêtre de terminal, trouvez le pid et envoyez SIGTERM, par exemple :

    $ ps aux | grep examp
    ruslan    3976  0.2  0.0 139896 11256 pts/1    S+   10:25   0:00 php examples/signal.php
    ruslan    3978  0.0  0.0   9572   864 pts/2    S+   10:26   0:00 grep --color=auto examp

    $ kill -TERM 3976

    Dans la première fenêtre du terminal, vous devriez voir ce qui suit :

    Signal attrapé 15
    */

    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

- Event::add()
- Event::del() - Supprime un événement de la liste des événements surveillés
- Event::signal() - Construit un objet d'événement signal
- Event::timer() - Construit un objet d'événement timer

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open