Files
doc-fr/reference/ev/evperiodic.xml
2022-03-30 13:02:03 +01:00

146 lines
5.9 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 33e5f4ef7243bc1282acb1cba93e8f99c1debe68 Maintainer: yannick Status: ready -->
<!-- Reviewed: no -->
<phpdoc:classref xml:id="class.evperiodic" xmlns:phpdoc="http://php.net/ns/phpdoc" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>La classe EvPeriodic</title>
<titleabbrev>EvPeriodic</titleabbrev>
<partintro>
<!-- {{{ EvPeriodic intro -->
<section xml:id="evperiodic.intro">
&reftitle.intro;
<para>
Les watchers périodiques sont des sortes de minuteurs, mais ils sont très
polyvalents.
</para>
<para>
Contrairement à <classname>EvTimer</classname>, les watchers
<classname>EvPeriodic</classname> ne sont pas basés sur un temps réel
(ou un temps relatif, le temps physique qui passe), mais sur un temps
d'horloge (temps absolu, calendaire, ou d'horloge). La différence est
qu'un temps d'horloge peut être plus rapide ou plus lent qu'un temps
réel, et les sauts dans le temps ne sont pas rares (i.e. lors d'un ajustement).
</para>
<para>
Un watcher <classname>EvPeriodic</classname> peut être configuré pour
être lancé après des points spécifiques dans le temps. Par exemple,
si un watcher <classname>EvPeriodic</classname> est configuré pour
se lancer <emphasis>"dans 10 secondes"</emphasis> (i.e.
<methodname>EvLoop::now</methodname> + <constant>10.0</constant>,
i.e. un temps absolu, et non un délai), et que l'horloge système
est ré-initialisée à <emphasis>Janvier de l'année dernière</emphasis>,
alors cela prendra une année et plus à lancer l'événement (contrairement
à <classname>EvTimer</classname> qui sera lancé <constant>10</constant>
secondes après son démarrage, sachant qu'il utilise un délai maximal d'attente
relatif).
</para>
<para>
Comme pour les minuteurs, il est garantie que la fonction de rappel soit
appelée uniquement lorsque le point dans le temps où il est supposé se lancer
ne soit passé. Si plusieurs minuteurs deviennent prêts en même temps
pendant la même itération de boucle, alors ceux dont les valeurs de délai
maximal d'attente sont les plus proches seront appelées avant ceux qui ont des
valeurs de délai maximal d'attente plus éloignés (mais ceci n'est plus
vrai lorsqu'une fonction de rappel appelle récursivement la méthode
<methodname>EvLoop::run</methodname>).
</para>
</section>
<!-- }}} -->
<section xml:id="evperiodic.synopsis">
&reftitle.classsynopsis;
<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass>
<classname>EvPeriodic</classname>
</ooclass>
<!-- {{{ Class synopsis -->
<classsynopsisinfo>
<ooclass>
<classname>EvPeriodic</classname>
</ooclass>
<ooclass>
<modifier>extends</modifier>
<classname>EvWatcher</classname>
</ooclass>
</classsynopsisinfo>
<!-- }}} -->
<classsynopsisinfo role="comment">&Properties;</classsynopsisinfo>
<fieldsynopsis>
<modifier>public</modifier>
<varname linkend="evperiodic.props.offset">offset</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<varname linkend="evperiodic.props.interval">interval</varname>
</fieldsynopsis>
<classsynopsisinfo role="comment">&InheritedProperties;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('evwatcher.synopsis')/descendant::db:fieldsynopsis)" />
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.evperiodic')/db:refentry/db:refsect1[@role='description']/descendant::db:constructorsynopsis[not(@role='procedural')])"/>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.evperiodic')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])"/>
<classsynopsisinfo role="comment">&InheritedMethods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.evwatcher')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])" />
</classsynopsis>
<!-- }}} -->
</section>
<!-- {{{ EvPeriodic properties -->
<section xml:id="evperiodic.props">
&reftitle.properties;
<variablelist>
<varlistentry xml:id="evperiodic.props.offset">
<term>
<varname>offset</varname>
</term>
<listitem>
<para>
Lors de la répétition, va contenir la valeur de la position, sinon,
ce sera le point absolu dans le temps (la valeur de la position
passée à la méthode <methodname>EvPeriodic::set</methodname>,
bien que <emphasis>libev</emphasis> peut modifier cette valeur
pour une meilleure stabilité numérique).
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="evperiodic.props.interval">
<term>
<varname>interval</varname>
</term>
<listitem>
<para>
La valeur de l'intervalle courant. Peut être modifié à tout moment,
mais les modifications ne prennent effet que lorsque le minuteur
périodique ne se lance, ou lorsque la méthode
<methodname>EvPeriodic::again</methodname> est appelée.
</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<!-- }}} -->
</partintro>
&reference.ev.entities.evperiodic;
</phpdoc:classref>
<!-- 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
-->