mirror of
https://github.com/php/doc-es.git
synced 2026-03-24 15:32:36 +01:00
801 lines
26 KiB
XML
801 lines
26 KiB
XML
<?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.ev" role="class">
|
|
<title>La clase Ev</title>
|
|
<titleabbrev>Ev</titleabbrev>
|
|
<partintro>
|
|
<!-- {{{ Ev intro -->
|
|
<section xml:id="ev.intro">
|
|
&reftitle.intro;
|
|
<simpara>
|
|
La clase Ev es una clase estática que proporciona acceso al bucle por defecto
|
|
así como a algunas operaciones comunes.
|
|
</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">
|
|
Flags pasados para crear un bucle:
|
|
<!--{{{-->
|
|
<variablelist>
|
|
<varlistentry xml:id="ev.constants.flag-auto">
|
|
<term>
|
|
<constant>Ev::FLAG_AUTO</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
El valor por defecto de los flags.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.flag-noenv">
|
|
<term>
|
|
<constant>Ev::FLAG_NOENV</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Si este flag se utiliza (o si el programa ejecuta
|
|
setuid o setgid), <literal>libev</literal>
|
|
no va a mirar la variable de entorno
|
|
<varname>LIBEV_FLAGS</varname>. De lo contrario (comportamiento por defecto),
|
|
<varname>LIBEV_FLAGS</varname> va a sobrescribir completamente el
|
|
flag si se encuentra. Útil para pruebas de rendimiento
|
|
y para la búsqueda de bugs.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.flag-forkcheck">
|
|
<term>
|
|
<constant>Ev::FLAG_FORKCHECK</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Hace que libev verifique si existe un fork en cada iteración,
|
|
en lugar de llamar manualmente al método
|
|
<methodname>EvLoop::fork</methodname>. Este mecanismo funciona
|
|
llamando a <literal>getpid()</literal> en cada iteración de
|
|
la bucle, y así, va a ralentizar el bucle de eventos que
|
|
poseen muchas iteraciones, pero habitualmente,
|
|
este ralentizamiento no es notable. La configuración de este flag
|
|
no puede ser sobrescrita o especificada en la variable
|
|
de entorno <varname>LIBEV_FLAGS</varname>.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.flag-noinotify">
|
|
<term>
|
|
<constant>Ev::FLAG_NOINOTIFY</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Cuando este flag está especificado, <literal>libev</literal>
|
|
no va a intentar utilizar la API <literal>inotify</literal>
|
|
para estos watchers
|
|
<link xlink:href="&url.ev.stat;">ev_stat</link>.
|
|
Este flag puede ser útil para conservar los descriptores de
|
|
ficheros inotify, sabiendo que de lo contrario, cada bucle utilizando los
|
|
watchers <literal>ev_stat</literal> va a consumir un manejador
|
|
<literal>inotify</literal>.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.flag-signalfd">
|
|
<term>
|
|
<constant>Ev::FLAG_SIGNALFD</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Cuando este flag está especificado, <literal>libev</literal>
|
|
va a intentar utilizar la API <literal>signalfd</literal>
|
|
para estos watchers
|
|
<link xlink:href="&url.ev.signal;">ev_signal</link>
|
|
(y
|
|
<link xlink:href="&url.ev.child;">ev_child</link>).
|
|
Esta API entrega las señales de forma asíncrona, lo que
|
|
la hace más rápida, y puede permitir la recuperación de datos
|
|
de señales en espera. También puede simplificar la gestión
|
|
de señales con hilos, sabiendo que las señales son propiedades bloqueadas
|
|
en los hilos. <literal>Signalfd</literal>
|
|
no será utilizado por defecto.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.flag-nosigmask">
|
|
<term>
|
|
<constant>Ev::FLAG_NOSIGMASK</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Cuando este flag está especificado, <literal>libev</literal>
|
|
no va a modificar la máscara de señal. Esto significa
|
|
que se debe asegurar que las señales están desbloqueadas
|
|
antes de recibirlas.
|
|
</simpara>
|
|
<simpara>
|
|
Este comportamiento es útil para la gestión personalizada de señales,
|
|
o la gestión de señales únicamente en hilos específicos.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
<!--}}}-->
|
|
<para xml:id="ev.constants.run-flags">
|
|
Flags a pasar a
|
|
<methodname>Ev::run</methodname>,
|
|
o a <methodname>EvLoop::run</methodname>
|
|
<!--{{{-->
|
|
<variablelist>
|
|
<varlistentry xml:id="ev.constants.run-nowait">
|
|
<term>
|
|
<constant>Ev::RUN_NOWAIT</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Significa que el bucle de eventos va a mirar si hay nuevos
|
|
eventos presentes, va a gestionar estos nuevos eventos,
|
|
y todos los eventos especiales, pero no va a esperar y
|
|
bloquear el proceso en el caso de que no haya eventos,
|
|
y va a retornar después de una iteración del bucle. A veces
|
|
es útil poner en cola y gestionar los nuevos eventos
|
|
durante cálculos largos, y esto, para mantener el programa activo.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.run-once">
|
|
<term>
|
|
<constant>Ev::RUN_ONCE</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Significa que el bucle de eventos va a mirar si hay nuevos
|
|
eventos presentes (y esperar, si es necesario), y va a gestionarlos,
|
|
ellos y los especiales. Va a bloquear el proceso hasta que al
|
|
menos un evento llegue (que puede ser un evento interno de libev,
|
|
también, no está garantizado que una función de callback registrada por
|
|
el usuario sea llamada), y va a retornar después de una iteración
|
|
del bucle.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
<!--}}}-->
|
|
<para xml:id="ev.constants.break-flags">
|
|
Flags pasados a
|
|
<methodname>Ev::stop</methodname>,
|
|
o a
|
|
<methodname>EvLoop::stop</methodname>
|
|
<!--{{{-->
|
|
<variablelist>
|
|
<varlistentry xml:id="ev.constants.break-cancel">
|
|
<term>
|
|
<constant>Ev::BREAK_CANCEL</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Cancela la operación de cancelación.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.break-one">
|
|
<term>
|
|
<constant>Ev::BREAK_ONE</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Retorna la llamada más profunda a
|
|
<methodname>Ev::run</methodname>
|
|
(o <methodname>EvLoop::run</methodname>).
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.break-all">
|
|
<term>
|
|
<constant>Ev::BREAK_ALL</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Retorna la llamada más cercana a
|
|
<methodname>Ev::run</methodname>
|
|
(o <methodname>EvLoop::run</methodname>).
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
<!--}}}-->
|
|
<para xml:id="ev.constants.watcher-pri">
|
|
Prioridades de Watcher:
|
|
<!--{{{-->
|
|
<variablelist>
|
|
<varlistentry xml:id="ev.constants.minpri">
|
|
<term>
|
|
<constant>Ev::MINPRI</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Prioridad mínima permitida para un watcher.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.maxpri">
|
|
<term>
|
|
<constant>Ev::MAXPRI</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Prioridad máxima permitida para un watcher.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
<!--}}}-->
|
|
<para xml:id="ev.constants.watcher-revents">
|
|
Máscaras de bytes de eventos (recibidos):
|
|
<!--{{{-->
|
|
<variablelist>
|
|
<varlistentry xml:id="ev.constants.read">
|
|
<term>
|
|
<constant>Ev::READ</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
El descriptor de fichero en el watcher
|
|
<classname>EvIo</classname> se ha vuelto accesible
|
|
en lectura.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.write">
|
|
<term>
|
|
<constant>Ev::WRITE</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
El descriptor de fichero en el watcher
|
|
<classname>EvIo</classname> se ha vuelto accesible
|
|
en escritura.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.timer">
|
|
<term>
|
|
<constant>Ev::TIMER</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
El watcher <classname>EvTimer</classname>
|
|
ha alcanzado su tiempo máximo de espera.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.periodic">
|
|
<term>
|
|
<constant>Ev::PERIODIC</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
El watcher <classname>EvPeriodic</classname>
|
|
ha alcanzado su tiempo máximo de espera.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.signal">
|
|
<term>
|
|
<constant>Ev::SIGNAL</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Una señal especificada en
|
|
<methodname>EvSignal::__construct</methodname>
|
|
ha sido recibida.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.child">
|
|
<term>
|
|
<constant>Ev::CHILD</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
El <parameter>pid</parameter> especificado en
|
|
<methodname>EvChild::__construct</methodname>
|
|
ha recibido una modificación de estado.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.stat">
|
|
<term>
|
|
<constant>Ev::STAT</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
La ruta especificada en el watcher
|
|
<classname>EvStat</classname> ha modificado sus
|
|
atributos.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.idle">
|
|
<term>
|
|
<constant>Ev::IDLE</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
El watcher <classname>EvIdle</classname> funciona cuando
|
|
no tiene ninguna otra tarea que hacer con los otros watchers.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.prepare">
|
|
<term>
|
|
<constant>Ev::PREPARE</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Todos los watchers <classname>EvPrepare</classname>
|
|
son llamados justo antes del inicio de
|
|
<methodname>Ev::run</methodname>. Así, los watchers
|
|
<classname>EvPrepare</classname> son los últimos watchers
|
|
en ser llamados antes del reposo del bucle de eventos,
|
|
o la puesta en cola de los nuevos eventos.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.check">
|
|
<term>
|
|
<constant>Ev::CHECK</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Todos los watchers <classname>EvCheck</classname>
|
|
son puestos en cola justo después de que
|
|
<methodname>Ev::run</methodname> haya recuperado
|
|
los nuevos eventos, pero antes, todas las
|
|
funciones de callback de todos los eventos recibidos
|
|
son puestas en cola. Así, los watchers
|
|
<classname>EvCheck</classname> serán llamados antes que cualquier
|
|
otro watcher de misma prioridad o de prioridad más baja
|
|
en una iteración del bucle de eventos.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.embed">
|
|
<term>
|
|
<constant>Ev::EMBED</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
El bucle de eventos embebido especificado en el
|
|
watcher <classname>EvEmbed</classname> necesita
|
|
toda la atención.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.custom">
|
|
<term>
|
|
<constant>Ev::CUSTOM</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Aún no enviado (o utilizado) por
|
|
<literal>libev</literal>, pero puede ser
|
|
libremente utilizado por los usuarios
|
|
<literal>libev</literal> para señalar los watchers
|
|
(i.e. vía el método <methodname>EvWatcher::feed</methodname>).
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.error">
|
|
<term>
|
|
<constant>Ev::ERROR</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Ha ocurrido un error desconocido, el watcher se ha detenido. Esto puede
|
|
ocurrir porque el watcher no ha podido ser iniciado correctamente
|
|
porque <literal>libev</literal> ha excedido la memoria asignada, un
|
|
descriptor de fichero ha sido cerrado, u otro problema.
|
|
<literal>Libev</literal> considera esto como bugs
|
|
de la aplicación. Ver también
|
|
<link xlink:href="http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#ANATOMY_OF_A_WATCHER_CONTENT">la anatomía
|
|
de un watcher</link>
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
<!--}}}-->
|
|
<para xml:id="ev.constants.watcher-backends">
|
|
Flags 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> específico de Linux
|
|
para, a la vez, los kernels antes y después de 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> utilizado en la
|
|
mayoría de los sistemas BSD. El watcher <classname>EvEmbed</classname>
|
|
puede ser utilizado para embeber un bucle (con el
|
|
backend kqueue) en otro. Actualmente, un bucle puede
|
|
intentar crear un bucle de eventos con el backend
|
|
<literal>kqueue</literal> y utilizarlo únicamente para los
|
|
sockets.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.backend-devpoll">
|
|
<term>
|
|
<constant>Ev::BACKEND_DEVPOLL</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Backend Solaris 8. Actualmente no implementado.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.backend-port">
|
|
<term>
|
|
<constant>Ev::BACKEND_PORT</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Mecanismo de puerto de eventos Solaris con buen rendimiento.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.backend-all">
|
|
<term>
|
|
<constant>Ev::BACKEND_ALL</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
Prueba todos los backends (incluyendo los corruptos).
|
|
No se recomienda utilizarlo explícitamente.
|
|
Los operadores de bits deberían ser aplicados aquí
|
|
(i.e. <constant>Ev::BACKEND_ALL</constant> & ~
|
|
<constant>Ev::BACKEND_KQUEUE</constant>).
|
|
Utilice el método
|
|
<methodname>Ev::recommendedBackends</methodname> o no
|
|
especifique ningún backend.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="ev.constants.backend-mask">
|
|
<term>
|
|
<constant>Ev::BACKEND_MASK</constant>
|
|
</term>
|
|
<listitem>
|
|
<simpara>
|
|
No es un backend, sino una máscara para seleccionar todos
|
|
los bits de un backend desde el valor de
|
|
<parameter>flags</parameter> para representar en una
|
|
máscara cualquier backend (i.e. al modificar
|
|
la variable de entorno <varname>LIBEV_FLAGS</varname>).
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
<!--}}}-->
|
|
<note xmlns="http://docbook.org/ns/docbook">
|
|
<simpara>
|
|
Para el bucle por defecto, durante la fase de inicialización
|
|
del módulo, <literal>Ev</literal> registra llamadas a
|
|
<link xlink:href="&url.ev.loop;">ev_loop_fork</link>
|
|
vía <literal>pthread_atfork</literal> (si está disponible).
|
|
</simpara>
|
|
</note>
|
|
<note xmlns="http://docbook.org/ns/docbook">
|
|
<simpara>
|
|
Hay métodos que proporcionan acceso a la
|
|
<emphasis>bucle de eventos por defecto</emphasis>
|
|
en la clase <classname>Ev</classname>
|
|
(i.e. <methodname>Ev::iteration</methodname>,
|
|
<methodname>Ev::depth</methodname>, etc.) Para los
|
|
<emphasis>bucles personalizados</emphasis> (creados con
|
|
<methodname>EvLoop::__construct</methodname>), estos
|
|
valores pueden ser accesibles vía las propiedades y los
|
|
métodos correspondientes de la clase
|
|
<classname>EvLoop</classname>.
|
|
</simpara>
|
|
<simpara>
|
|
La instancia del bucle de eventos por defecto puede ser recuperada
|
|
vía el método <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
|
|
-->
|