La classe EvCheck

(PECL ev >= 0.2.0)

Introduction

Les observateurs EvPrepare et EvCheck sont habituellement utilisés ensemble. L'observateur EvPrepare sera appelé avant les blocs du processus, alors que l'observateur EvCheck sera appelé aprÚs.

Il n'est pas autorisé d'appeler la méthode EvLoop::run() ou une méthode/fonction similaire qui entre dans la boucle de l'événement courante depuis soit l'observateur EvPrepare, soit l'observateur EvCheck. Toutefois, cela est possible pour toutes les autres boucles que la courante. La cause de cela est qu'il n'est pas nécessaire de vérifier la récursion dans ces observateurs, c.-à-d. la séquence suivante sera toujours : EvPrepare -> blocage -> EvCheck, aussi, avoir un observateur pour chacun n'est pas utile, sachant qu'ils seront toujours appelés ensemble lors de l'appel au blocage.

Le but primaire est d'intĂ©grer d'autres mĂ©canismes d'Ă©vĂ©nements dans la bibliothĂšque libev, avec une utilisation avancĂ©e. Ils peuvent ĂȘtre utilisĂ©s, par exemple, pour surveiller les modifications de variables, implĂ©menter des observateurs personnalisĂ©s, intĂ©grer net-snmp ou une bibliothĂšque supplĂ©mentaire, et bien plus encore. Ils peuvent ĂȘtre aussi utiles pour mettre en cache des donnĂ©es, et vouloir les afficher aprĂšs le blocage.

Il est recommandé de fournir une priorité haute à EvCheck (Ev::MAXPRI) afin de s'assurer qu'il sera exécuté avant tout autre observateur de la file (à contrario, peu importe pour l'observateur EvPrepare).

De plus, les observateurs EvCheck ne doivent pas activer/alimenter des Ă©vĂ©nements. Bien que libev supporte cela, ils peuvent ĂȘtre exĂ©cutĂ©s avant que les autres observateurs EvCheck ne terminent leurs travaux.

Synopsis de la classe

class EvCheck extends EvWatcher {
/* Propriétés héritées */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* Méthodes */
public function __construct( callable $callback , mixed $data = ?, int $priority = ?)
final public static function createStopped( string $callback , string $data = ?, string $priority = ?): object
/* Méthodes héritées */
public function EvWatcher::clear(): int
public function EvWatcher::feed( int $revents ): void
public function EvWatcher::getLoop(): EvLoop
public function EvWatcher::invoke( int $revents ): void
public function EvWatcher::keepalive( bool $value = ?): bool
public function EvWatcher::setCallback( callable $callback ): void
public function EvWatcher::start(): void
public function EvWatcher::stop(): void
}

Sommaire

add a note

User Contributed Notes

There are no user contributed notes for this page.