-
Notifications
You must be signed in to change notification settings - Fork 59
Expand file tree
/
Copy pathevtimer.xml
More file actions
150 lines (147 loc) · 6.41 KB
/
evtimer.xml
File metadata and controls
150 lines (147 loc) · 6.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: b4fbf4434abeca44c58575ff3967e5640f7877d5 Maintainer: PhilDaiguille 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.evtimer" role="class">
<title>La clase EvTimer</title>
<titleabbrev>EvTimer</titleabbrev>
<partintro>
<!-- {{{ EvTimer intro -->
<section xml:id="evtimer.intro">
&reftitle.intro;
<simpara>
Los observadores <classname>EvTimer</classname> son observadores relativamente
simples que generan un evento después de un tiempo especificado y, opcionalmente,
se repiten a intervalos regulares.
</simpara>
<simpara>
Los temporizadores se basan en tiempo real, por lo que si un temporizador
programa un evento que finaliza después de una hora y se reinicia el reloj del sistema
a <emphasis>enero del año pasado</emphasis>, volverá a estar fuera de tiempo
después de una hora (aproximadamente). "Aproximadamente" porque la detección de
saltos en el tiempo es difícil y ciertas inexactitudes son inevitables.
</simpara>
<simpara>
Se garantiza que la función de retrollamada se llamará solo después de que
expire el tiempo de espera máximo (y no exactamente en ese momento preciso,
por lo que en sistemas con una resolución de reloj baja, puede introducirse
un pequeño retraso). Si varios temporizadores están listos durante la misma
iteración del bucle, el que tenga el valor de tiempo de espera máximo más cercano
se invocará antes que otro con la misma prioridad pero con un valor de tiempo
de espera más lejano (aunque esto ya no es cierto cuando una función de retrollamada
llama recursivamente al método <methodname>EvLoop::run</methodname>).
</simpara>
<simpara>
El temporizador en sí hará todo lo posible para no derivar, pero si un temporizador
está configurado para ejecutarse cada <literal>10</literal> segundos, entonces
normalmente se ejecutará exactamente cada <literal>10</literal> segundos.
Sin embargo, si el script no puede mantener el temporizador porque tarda más
que sus <literal>10</literal> segundos, el temporizador no podrá ejecutarse
más de una vez por iteración del bucle de eventos.
</simpara>
</section>
<!-- }}} -->
<section xml:id="evtimer.synopsis">
&reftitle.classsynopsis;
<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass>
<classname>EvTimer</classname>
</ooclass>
<!-- {{{ Class synopsis -->
<classsynopsisinfo>
<ooclass>
<classname>EvTimer</classname>
</ooclass>
<ooclass>
<modifier>extends</modifier>
<classname>EvWatcher</classname>
</ooclass>
</classsynopsisinfo>
<!-- }}} -->
<classsynopsisinfo role="comment">&Properties;</classsynopsisinfo>
<fieldsynopsis>
<modifier>public</modifier>
<varname linkend="evtimer.props.repeat">repeat</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<varname linkend="evtimer.props.remaining">remaining</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.evtimer')/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.evtimer')/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>
<!-- {{{ EvTimer properties -->
<section xml:id="evtimer.props">
&reftitle.properties;
<variablelist>
<varlistentry xml:id="evtimer.props.repeat">
<term>
<varname>repeat</varname>
</term>
<listitem>
<simpara>
Si esta propiedad vale <literal>0.0</literal>, entonces se detendrá automáticamente
una vez alcanzado el tiempo de espera máximo. Si es positivo, entonces el temporizador
se configurará automáticamente para ejecutarse cada segundo siguiente, hasta que
no se detenga manualmente.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="evtimer.props.remaining">
<term>
<varname>remaining</varname>
</term>
<listitem>
<simpara>
Devuelve el tiempo restante antes de que el temporizador se ejecute.
Si el temporizador está activo, entonces este tiempo será relativo al tiempo
del bucle de eventos actual, de lo contrario, será relativo al valor del
tiempo de espera máximo configurado actualmente.
</simpara>
<simpara>
Asimismo, después de instanciar un <classname>EvTimer</classname>
con un valor de <parameter>after</parameter> en
<literal>5.0</literal> y un valor de <parameter>repeat</parameter>
en <literal>7.0</literal>, <varname>remaining</varname> devolverá
<literal>5.0</literal>. Cuando el temporizador se inicia y pasa un
segundo, <varname>remaining</varname> devolverá
<literal>4.0</literal>. Cuando el temporizador expire y se reinicie,
devolverá aproximadamente <literal>7.0</literal>
(probablemente un poco menos, ya que la invocación de la función de retrollamada
también lleva algo de tiempo), y así sucesivamente.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</section>
<!-- }}} -->
</partintro>
&reference.ev.entities.evtimer;
</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
-->