mirror of
https://github.com/php/doc-fr.git
synced 2026-03-23 22:52:18 +01:00
801 lines
26 KiB
XML
801 lines
26 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- EN-Revision: b4fbf4434abeca44c58575ff3967e5640f7877d5 Maintainer: yannick Status: ready -->
|
|
<!-- Reviewed: no -->
|
|
<reference xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xml:id="class.ev" role="class">
|
|
<title>La classe Ev</title>
|
|
<titleabbrev>Ev</titleabbrev>
|
|
<partintro>
|
|
<!-- {{{ Ev intro -->
|
|
<section xml:id="ev.intro">
|
|
&reftitle.intro;
|
|
<simpara>
|
|
La classe Ev est une classe statique fournissant l'accès à la boucle par défaut
|
|
ainsi qu'à quelques opérations communes.
|
|
</simpara>
|
|
</section>
|
|
<!-- }}} -->
|
|
<section xml:id="ev.synopsis">
|
|
&reftitle.classsynopsis;
|
|
|
|
<!-- {{{ Synopsis -->
|
|
<classsynopsis>
|
|
<ooclass>
|
|
<classname>Ev</classname>
|
|
</ooclass>
|
|
<!-- {{{ Class synopsis -->
|
|
<classsynopsisinfo>
|
|
<ooclass>
|
|
<modifier>final</modifier>
|
|
<classname>Ev</classname>
|
|
</ooclass>
|
|
</classsynopsisinfo>
|
|
<!-- }}} -->
|
|
<classsynopsisinfo role="comment">&Constants;</classsynopsisinfo>
|
|
<!--{{{-->
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.flag-auto">Ev::FLAG_AUTO</varname>
|
|
<initializer>0</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.flag-noenv">Ev::FLAG_NOENV</varname>
|
|
<initializer>16777216</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.flag-forkcheck">Ev::FLAG_FORKCHECK</varname>
|
|
<initializer>33554432</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.flag-noinotify">Ev::FLAG_NOINOTIFY</varname>
|
|
<initializer>1048576</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.flag-signalfd">Ev::FLAG_SIGNALFD</varname>
|
|
<initializer>2097152</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.flag-nosigmask">Ev::FLAG_NOSIGMASK</varname>
|
|
<initializer>4194304</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.run-nowait">Ev::RUN_NOWAIT</varname>
|
|
<initializer>1</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.run-once">Ev::RUN_ONCE</varname>
|
|
<initializer>2</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.break-cancel">Ev::BREAK_CANCEL</varname>
|
|
<initializer>0</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.break-one">Ev::BREAK_ONE</varname>
|
|
<initializer>1</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.break-all">Ev::BREAK_ALL</varname>
|
|
<initializer>2</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.minpri">Ev::MINPRI</varname>
|
|
<initializer>-2</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.maxpri">Ev::MAXPRI</varname>
|
|
<initializer>2</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.read">Ev::READ</varname>
|
|
<initializer>1</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.write">Ev::WRITE</varname>
|
|
<initializer>2</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.timer">Ev::TIMER</varname>
|
|
<initializer>256</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.periodic">Ev::PERIODIC</varname>
|
|
<initializer>512</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.signal">Ev::SIGNAL</varname>
|
|
<initializer>1024</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.child">Ev::CHILD</varname>
|
|
<initializer>2048</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.stat">Ev::STAT</varname>
|
|
<initializer>4096</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.idle">Ev::IDLE</varname>
|
|
<initializer>8192</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.prepare">Ev::PREPARE</varname>
|
|
<initializer>16384</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.check">Ev::CHECK</varname>
|
|
<initializer>32768</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.embed">Ev::EMBED</varname>
|
|
<initializer>65536</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.custom">Ev::CUSTOM</varname>
|
|
<initializer>16777216</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.error">Ev::ERROR</varname>
|
|
<initializer>2147483648</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.backend-select">Ev::BACKEND_SELECT</varname>
|
|
<initializer>1</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.backend-poll">Ev::BACKEND_POLL</varname>
|
|
<initializer>2</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.backend-epoll">Ev::BACKEND_EPOLL</varname>
|
|
<initializer>4</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.backend-kqueue">Ev::BACKEND_KQUEUE</varname>
|
|
<initializer>8</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.backend-devpoll">Ev::BACKEND_DEVPOLL</varname>
|
|
<initializer>16</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.backend-port">Ev::BACKEND_PORT</varname>
|
|
<initializer>32</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.backend-all">Ev::BACKEND_ALL</varname>
|
|
<initializer>63</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="ev.constants.backend-mask">Ev::BACKEND_MASK</varname>
|
|
<initializer>65535</initializer>
|
|
</fieldsynopsis>
|
|
<!--}}}-->
|
|
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
|
|
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.ev')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])"/>
|
|
</classsynopsis>
|
|
<!-- }}} -->
|
|
</section>
|
|
<!-- {{{ Ev constants -->
|
|
<section xml:id="ev.constants">
|
|
&reftitle.constants;
|
|
|
|
<para xml:id="ev.constants.loop-flags">
|
|
Drapeaux passés pour créer une boucle :
|
|
<!--{{{-->
|
|
<variablelist>
|
|
<varlistentry xml:id="ev.constants.flag-auto">
|
|
<term>
|
|
<constant>Ev::FLAG_AUTO</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
La valeur par défaut des drapeaux
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.flag-noenv">
|
|
<term>
|
|
<constant>Ev::FLAG_NOENV</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Si ce drapeau est utilisé (ou que le programme exécute
|
|
setuid ou setgid), <literal>libev</literal>
|
|
ne va pas regarder la variable d'environnement
|
|
<varname>LIBEV_FLAGS</varname>. Sinon (comportement par défaut),
|
|
<varname>LIBEV_FLAGS</varname> va écraser complètement le
|
|
drapeau s'il est trouvé. Utile pour des tests de performance
|
|
et pour la recherche de bogues.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.flag-forkcheck">
|
|
<term>
|
|
<constant>Ev::FLAG_FORKCHECK</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Fait que libev va vérifier si un fork existe à chaque itération,
|
|
au lieu d'appeler manuellement la méthode
|
|
<methodname>EvLoop::fork</methodname>. Ce mécanisme fonctionne
|
|
en appelant <literal>getpid()</literal> à chaque itération de
|
|
la boucle, et ainsi, va ralentir la boucle d'événements qui
|
|
possèdent beaucoup d'itérations, mais habituellement,
|
|
ce ralentissement n'est pas notable. La configuration de ce drapeau
|
|
ne peut pas être écrasée ou spécifiée dans la variable
|
|
d'environnement <varname>LIBEV_FLAGS</varname>.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.flag-noinotify">
|
|
<term>
|
|
<constant>Ev::FLAG_NOINOTIFY</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Lorsque ce drapeau est spécifié, <literal>libev</literal>
|
|
ne va pas tenter d'utiliser l'API <literal>inotify</literal>
|
|
pour ces watchers
|
|
<link xlink:href="&url.ev.stat;">ev_stat</link>.
|
|
Ce drapeau peut être utile pour conserver les descripteurs de
|
|
fichiers inotify, sachant que sinon, chaque boucle utilisant les
|
|
watchers <literal>ev_stat</literal> va consommer un gestionnaire
|
|
<literal>inotify</literal>.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.flag-signalfd">
|
|
<term>
|
|
<constant>Ev::FLAG_SIGNALFD</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Lorsque ce drapeau est spécifié, <literal>libev</literal>
|
|
va tenter d'utiliser l'API <literal>signalfd</literal>
|
|
pour ces watchers
|
|
<link xlink:href="&url.ev.signal;">ev_signal</link>
|
|
(et
|
|
<link xlink:href="&url.ev.child;">ev_child</link>).
|
|
Cette API délivre les signaux de façon asynchrone, ce qui
|
|
la rend plus rapide, et peut permettre la récupération des données
|
|
des signaux en attente. Elle peut également simplifier la gestion
|
|
des signaux avec les threads, sachant que les signaux sont des
|
|
propriétés bloquées dans les threads. <literal>Signalfd</literal>
|
|
ne sera pas utilisé par défaut.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.flag-nosigmask">
|
|
<term>
|
|
<constant>Ev::FLAG_NOSIGMASK</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Lorsque ce drapeau est spécifié, <literal>libev</literal>
|
|
ne va pas modifier le masque du signal. Ceci signifie
|
|
qu'il faut s'assurer que les signaux sont déverrouillés
|
|
avant de les recevoir.
|
|
</simpara>
|
|
<simpara>
|
|
Ce comportement est utile pour la gestion personnalisée des signaux,
|
|
ou la gestion des signaux uniquement dans des threads spécifiques.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
<!--}}}-->
|
|
<para xml:id="ev.constants.run-flags">
|
|
Drapeaux à passer à
|
|
<methodname>Ev::run</methodname>,
|
|
ou à <methodname>EvLoop::run</methodname>
|
|
<!--{{{-->
|
|
<variablelist>
|
|
<varlistentry xml:id="ev.constants.run-nowait">
|
|
<term>
|
|
<constant>Ev::RUN_NOWAIT</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Signifie que la boucle d'événements va regarder si de nouveaux
|
|
événements sont présents, va gérer ces nouveaux événements,
|
|
et tous les événements spéciaux, mais ne va pas attendre et
|
|
bloquer le processus dans le cas où il n'y a pas d'événement,
|
|
et va retourner après une itération de la boucle. Il est parfois
|
|
utile de placer en file et gérer les nouveaux événements
|
|
pendant de longs calculs, et ce, pour garder le programme actif.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.run-once">
|
|
<term>
|
|
<constant>Ev::RUN_ONCE</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Signifie que la boucle d'événements va regarder si de nouveaux
|
|
événements sont présents (et attendre, si nécessaire), et va les
|
|
gérer, eux et les spéciaux. Elle va bloquer le processus tant qu'au
|
|
moins un événement arrive (qui peut être un événement interne à libev,
|
|
aussi, il n'est pas garanti qu'une fonction de rappel enregistrée par
|
|
l'utilisateur ne soit appelée), et va retourner après une itération
|
|
de la boucle.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
<!--}}}-->
|
|
<para xml:id="ev.constants.break-flags">
|
|
Drapeaux passés à
|
|
<methodname>Ev::stop</methodname>,
|
|
ou à
|
|
<methodname>EvLoop::stop</methodname>
|
|
<!--{{{-->
|
|
<variablelist>
|
|
<varlistentry xml:id="ev.constants.break-cancel">
|
|
<term>
|
|
<constant>Ev::BREAK_CANCEL</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Annule l'opération d'annulation.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.break-one">
|
|
<term>
|
|
<constant>Ev::BREAK_ONE</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Retourne le plus profond appel à
|
|
<methodname>Ev::run</methodname>
|
|
(ou <methodname>EvLoop::run</methodname>).
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.break-all">
|
|
<term>
|
|
<constant>Ev::BREAK_ALL</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Retourne le plus proche appel à
|
|
<methodname>Ev::run</methodname>
|
|
(ou <methodname>EvLoop::run</methodname>).
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
<!--}}}-->
|
|
<para xml:id="ev.constants.watcher-pri">
|
|
Priorités de Watcher :
|
|
<!--{{{-->
|
|
<variablelist>
|
|
<varlistentry xml:id="ev.constants.minpri">
|
|
<term>
|
|
<constant>Ev::MINPRI</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Priorité minimale autorisée pour un watcher.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.maxpri">
|
|
<term>
|
|
<constant>Ev::MAXPRI</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Priorité maximale autorisée pour un watcher.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
<!--}}}-->
|
|
<para xml:id="ev.constants.watcher-revents">
|
|
Masques d'octets d'événements (reçus) :
|
|
<!--{{{-->
|
|
<variablelist>
|
|
<varlistentry xml:id="ev.constants.read">
|
|
<term>
|
|
<constant>Ev::READ</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Le descripteur de fichier dans le watcher
|
|
<classname>EvIo</classname> est devenu accessible
|
|
en lecture.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.write">
|
|
<term>
|
|
<constant>Ev::WRITE</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Le descripteur de fichier dans le watcher
|
|
<classname>EvIo</classname> est devenu accessible
|
|
en écriture.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.timer">
|
|
<term>
|
|
<constant>Ev::TIMER</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Le watcher <classname>EvTimer</classname>
|
|
a atteint son délai maximal d'attente.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.periodic">
|
|
<term>
|
|
<constant>Ev::PERIODIC</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Le watcher <classname>EvPeriodic</classname>
|
|
a atteint son délai maximal d'attente.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.signal">
|
|
<term>
|
|
<constant>Ev::SIGNAL</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Un signal spécifié dans
|
|
<methodname>EvSignal::__construct</methodname>
|
|
a été reçu.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.child">
|
|
<term>
|
|
<constant>Ev::CHILD</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Le <parameter>pid</parameter> spécifié dans
|
|
<methodname>EvChild::__construct</methodname>
|
|
a reçu une modification de statut.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.stat">
|
|
<term>
|
|
<constant>Ev::STAT</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Le chemin spécifié dans le watcher
|
|
<classname>EvStat</classname> a modifié ses
|
|
attributs.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.idle">
|
|
<term>
|
|
<constant>Ev::IDLE</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Le watcher <classname>EvIdle</classname> fonctionne lorsqu'il
|
|
n'a aucune autre tâche à faire avec les autres watchers.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.prepare">
|
|
<term>
|
|
<constant>Ev::PREPARE</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Tous les watchers <classname>EvPrepare</classname>
|
|
sont appelés juste avant le démarrage de
|
|
<methodname>Ev::run</methodname>. Ainsi, les watchers
|
|
<classname>EvPrepare</classname> sont les derniers watchers
|
|
à être appelés avant le repos de la boucle d'événements,
|
|
ou la mise en file des nouveaux événements.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.check">
|
|
<term>
|
|
<constant>Ev::CHECK</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Tous les watchers <classname>EvCheck</classname>
|
|
sont placés en file d'attente juste après que
|
|
<methodname>Ev::run</methodname> ait récupéré
|
|
les nouveaux événements, mais avant, toutes les
|
|
fonctions de rappel de tous les événements reçus
|
|
sont placées en file d'attente. Ainsi, les watchers
|
|
<classname>EvCheck</classname> seront appelés avant tout
|
|
autre watcher de même priorité ou de priorité plus basse
|
|
dans une itération de boucle d'événements.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.embed">
|
|
<term>
|
|
<constant>Ev::EMBED</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
La boucle d'événements embarquée spécifiée dans le
|
|
watcher <classname>EvEmbed</classname> a besoin
|
|
de toute l'attention.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.custom">
|
|
<term>
|
|
<constant>Ev::CUSTOM</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Pas encore envoyé (ou utilisé) par
|
|
<literal>libev</literal>, mais peut être
|
|
librement utilisé par les utilisateurs
|
|
<literal>libev</literal> pour signaler les watchers
|
|
(c.-à-d. via la méthode <methodname>EvWatcher::feed</methodname>).
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.error">
|
|
<term>
|
|
<constant>Ev::ERROR</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Une erreur inconnue est survenue, le watcher s'est arrêté. Ceci peut
|
|
arriver car le watcher n'a pas pu être démarré proprement
|
|
car <literal>libev</literal> a dépassé la mémoire allouée, un
|
|
descripteur de fichier a été fermé, ou tout autre problème.
|
|
<literal>Libev</literal> considère ceci comme des bogues
|
|
de l'application. Voir aussi
|
|
<link xlink:href="http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#ANATOMY_OF_A_WATCHER_CONTENT">l'anatomie
|
|
d'un watcher</link>
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
<!--}}}-->
|
|
<para xml:id="ev.constants.watcher-backends">
|
|
Drapeaux de Backend :
|
|
<!--{{{-->
|
|
<variablelist>
|
|
<varlistentry xml:id="ev.constants.backend-select">
|
|
<term>
|
|
<constant>Ev::BACKEND_SELECT</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
<literal>select(2) backend</literal>
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.backend-poll">
|
|
<term>
|
|
<constant>Ev::BACKEND_POLL</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
<literal>poll(2) backend</literal>
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.backend-epoll">
|
|
<term>
|
|
<constant>Ev::BACKEND_EPOLL</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Backend <literal>epoll(7)</literal> spécifique à Linux
|
|
pour, à la fois, les kernels avant et après 2.6.9.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.backend-kqueue">
|
|
<term>
|
|
<constant>Ev::BACKEND_KQUEUE</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Backend <literal>kqueue</literal> utilisé sur la
|
|
plupart des systèmes BSD. Le watcher <classname>EvEmbed</classname>
|
|
peut être utilisé pour embarquer une boucle (avec le
|
|
backend kqueue) dans une autre. Actuellement, une boucle peut
|
|
tenter de créer une boucle d'événements avec le backend
|
|
<literal>kqueue</literal> et l'utiliser uniquement pour les
|
|
sockets.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.backend-devpoll">
|
|
<term>
|
|
<constant>Ev::BACKEND_DEVPOLL</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Backend Solaris 8. Actuellement non implémenté.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.backend-port">
|
|
<term>
|
|
<constant>Ev::BACKEND_PORT</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Mécanisme de port d'événements Solaris avec un bon rendement.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.backend-all">
|
|
<term>
|
|
<constant>Ev::BACKEND_ALL</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Essai tous les backends (y compris les corrompus).
|
|
Il n'est pas recommandé de l'utiliser explicitement.
|
|
Les opérateurs de bits devraient être appliqués ici
|
|
(c.-à-d. <constant>Ev::BACKEND_ALL</constant> & ~
|
|
<constant>Ev::BACKEND_KQUEUE</constant>).
|
|
Utiliser la méthode
|
|
<methodname>Ev::recommendedBackends</methodname> ou ne
|
|
spécifiez aucun backend.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.backend-mask">
|
|
<term>
|
|
<constant>Ev::BACKEND_MASK</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Pas un backend, mais un masque pour sélectionner tous
|
|
les bits d'un backend depuis la valeur de
|
|
<parameter>flags</parameter> pour représenter dans un
|
|
masque n'importe quel backend (c.-à-d. lors de la modification
|
|
de la variable d'environnement <varname>LIBEV_FLAGS</varname>).
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
<!--}}}-->
|
|
<note xmlns="http://docbook.org/ns/docbook">
|
|
<simpara>
|
|
Pour la boucle par défaut, pendant la phase d'initialisation
|
|
du module, <literal>Ev</literal> enregistre des appels à
|
|
<link xlink:href="&url.ev.loop;">ev_loop_fork</link>
|
|
via <literal>pthread_atfork</literal> (si disponible).
|
|
</simpara>
|
|
</note>
|
|
<note xmlns="http://docbook.org/ns/docbook">
|
|
<simpara>
|
|
Il y a des méthodes fournissant l'accès à la
|
|
<emphasis>boucle d'événements par défaut</emphasis>
|
|
dans la classe <classname>Ev</classname>
|
|
(c.-à-d. <methodname>Ev::iteration</methodname>,
|
|
<methodname>Ev::depth</methodname>, etc.) Pour les
|
|
<emphasis>boucles personnalisées</emphasis> (créées avec
|
|
<methodname>EvLoop::__construct</methodname>), ces
|
|
valeurs peuvent être accessibles via les propriétés et les
|
|
méthodes correspondantes de la classe
|
|
<classname>EvLoop</classname>.
|
|
</simpara>
|
|
<simpara>
|
|
L'instance de la boucle d'événements par défaut peut être récupérée
|
|
via la méthode <methodname>EvLoop::defaultLoop</methodname>.
|
|
</simpara>
|
|
</note>
|
|
</section>
|
|
<!-- }}} -->
|
|
</partintro>
|
|
|
|
&reference.ev.entities.ev;
|
|
|
|
</reference>
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
indent-tabs-mode:nil
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
vim600: syn=xml fen fdm=syntax fdl=2 si
|
|
vim: et tw=78 syn=sgml
|
|
vi: ts=1 sw=1
|
|
-->
|