La classe EvStat

(PECL ev >= 0.2.0)

Introduction

La classe EvStat surveille un fichier du système de fichiers afin de regarder toutes modifications de ces attributs. Elle appelle la commande stat() sur ce chemin, à intervalle régulier (ou lorsque l'OS signale une modification) et regarde s'il a été modifié depuis la dernière fois, et appelle la fonction de rappel si c'est le cas.

Le chemin n'a pas besoin d'exister : la modification de "le chemin existe" vers "le chemin n'existe pas est une modification de statut comme un autre. La condition "le chemin n'existe pas" est signifié par la valeur 0 de l'élément 'nlink' (retourné par la méthode EvStat::attr()).

Le chemin ne doit pas se terminer par un slash, ou contenir des composants spéciaux comme '.' ou ... Le chemin doit être absolu : s'il est relatif, et que le dossier de travail change, alors le comportement sera indéfini.

Sachant qu'il n'y a pas d'interface de notification de changement portable, l'implémentation portable appelle simplement la commande stat() sur le chemin pour vérifier les modifications. Pour ce cas, un intervalle régulier peut être spécifié. S'il est spécifié, un intervalle de 0.0 (vivement recommandé) alors une valeur par défaut non spécifié sera utilisé (au alentour de 5 secondes, et peut être modifié dynamiquement). libev va également imposer un intervalle minimum qui est actuellement au alentour de 0.1, ce qui est largement suffisant.

Ce type de watcher n'est pas prévu pour un nombre important de watchers EvStat, sachant que même avec les notifications systèmes sur les modifications supportées par l'OS, ceci prend beaucoup de ressources.

Synopsis de la classe

class EvStat extends EvWatcher {
/* Propriétés */
public $path;
public $interval;
/* Propriétés héritées */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* Méthodes */
public __construct(
     string $path ,
     float $interval ,
     callable $callback ,
     mixed $data = null ,
     int $priority = 0
)
public attr(): array
final public static createStopped(
     string $path ,
     float $interval ,
     callable $callback ,
     mixed $data = null ,
     int $priority = 0
): void
public prev(): void
public set( string $path , float $interval ): void
public stat(): bool
/* Méthodes héritées */
public EvWatcher::feed( int $revents ): void
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
}

Propriétés

interval

Lecture seule. La rapidité avec laquelle une modification doit être détectée ; normalement, doit valoir 0.0 pour laisser libev choisir une bonne valeur.

path

Lecture seule. Le chemin vers le fichier dont on souhaite surveiller les modifications de statut.

Sommaire

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top