1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-23 23:12:09 +01:00
Files
archived-doc-es/reference/event/eventbase.xml
2025-04-19 21:02:05 +02:00

215 lines
7.5 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 23ea6be076881a34e1d454e9680968ece085f7f6 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<reference xml:id="class.eventbase" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>La clase EventBase</title>
<titleabbrev>EventBase</titleabbrev>
<partintro>
<!-- {{{ EventBase intro -->
<section xml:id="eventbase.intro">
&reftitle.intro;
<para>
La clase <classname>EventBase</classname> representa la estructura
base de un evento libevent. Contiene un conjunto de eventos
y puede verificar cuáles son los eventos activos.
</para>
<para>
Cada evento base tiene un <emphasis>método</emphasis> o un
<emphasis>backend</emphasis> utilizado para determinar cuáles
son los eventos listos. Estos métodos son :
<literal>select</literal>, <literal>poll</literal>, <literal>epoll</literal>,
<literal>kqueue</literal>, <literal>devpoll</literal>, <literal>evport</literal>
y <literal>win32</literal>.
</para>
<para>
Para configurar un evento base a utilizar, o evitar un backend específico,
la clase <classname>EventConfig</classname> puede ser utilizada.
</para>
<warning xml:id="eventbase.object-dtor-warning">
<para>
No <emphasis>destruya</emphasis> el objeto <classname>EventBase</classname>
hasta que los recursos asociados a los objetos <literal>Event</literal>
no sean liberados. De lo contrario, esto llevará a resultados totalmente indefinidos.
</para>
</warning>
</section>
<!-- }}} -->
<section xml:id="eventbase.synopsis">
&reftitle.classsynopsis;
<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass>
<classname>EventBase</classname>
</ooclass>
<!-- {{{ Class synopsis -->
<classsynopsisinfo>
<ooclass>
<modifier>final</modifier>
<classname>EventBase</classname>
</ooclass>
</classsynopsisinfo>
<!-- }}} -->
<classsynopsisinfo role="comment">&Constants;</classsynopsisinfo>
<fieldsynopsis>
<modifier>const</modifier>
<type>int</type>
<varname linkend="eventbase.constants.loop-once">EventBase::LOOP_ONCE</varname>
<initializer>1</initializer>
</fieldsynopsis>
<fieldsynopsis>
<modifier>const</modifier>
<type>int</type>
<varname linkend="eventbase.constants.loop-nonblock">EventBase::LOOP_NONBLOCK</varname>
<initializer>2</initializer>
</fieldsynopsis>
<fieldsynopsis>
<modifier>const</modifier>
<type>int</type>
<varname linkend="eventbase.constants.nolock">EventBase::NOLOCK</varname>
<initializer>1</initializer>
</fieldsynopsis>
<fieldsynopsis>
<modifier>const</modifier>
<type>int</type>
<varname linkend="eventbase.constants.startup-iocp">EventBase::STARTUP_IOCP</varname>
<initializer>4</initializer>
</fieldsynopsis>
<fieldsynopsis>
<modifier>const</modifier>
<type>int</type>
<varname linkend="eventbase.constants.no-cache-time">EventBase::NO_CACHE_TIME</varname>
<initializer>8</initializer>
</fieldsynopsis>
<fieldsynopsis>
<modifier>const</modifier>
<type>int</type>
<varname linkend="eventbase.constants.epoll-use-changelist">EventBase::EPOLL_USE_CHANGELIST</varname>
<initializer>16</initializer>
</fieldsynopsis>
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.eventbase')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])" />
</classsynopsis>
<!-- }}} -->
</section>
<!-- {{{ EventBase constants -->
<section xml:id="eventbase.constants">
&reftitle.constants;
<variablelist>
<varlistentry xml:id="eventbase.constants.loop-once">
<term>
<constant>EventBase::LOOP_ONCE</constant>
</term>
<listitem>
<para>
Flag utilizado con el método <methodname>EventBase::loop</methodname>
que significa: "bloqueo mientras libevent tiene un evento activo, luego,
salida una vez que todos los eventos activos han ejecutado sus
funciones de retrollamada".
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="eventbase.constants.loop-nonblock">
<term>
<constant>EventBase::LOOP_NONBLOCK</constant>
</term>
<listitem>
<para>
Flag utilizado con el método <methodname>EventBase::loop</methodname>
que significa: "no bloquear: ver qué eventos están listos actualmente,
ejecutar sus funciones de retrollamada con una prioridad alta, luego, salir".
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="eventbase.constants.nolock">
<term>
<constant>EventBase::NOLOCK</constant>
</term>
<listitem>
<para>
Flag de configuración. No bloquear la base del evento, incluso si
un bloqueo había sido puesto en su lugar.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="eventbase.constants.startup-iocp">
<term>
<constant>EventBase::STARTUP_IOCP</constant>
</term>
<listitem>
<para>
Flag de configuración específico de Windows. Activa el repartidor IOCP
al inicio.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="eventbase.constants.no-cache-time">
<term>
<constant>EventBase::NO_CACHE_TIME</constant>
</term>
<listitem>
<para>
Flag de configuración. En lugar de verificar el tiempo actual cada vez
que el bucle de eventos está listo para ejecutar la función de retrollamada,
el tiempo será verificado cada vez que el tiempo máximo de espera para la
función de retrollamada sea alcanzado.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="eventbase.constants.epoll-use-changelist">
<term>
<constant>EventBase::EPOLL_USE_CHANGELIST</constant>
</term>
<listitem>
<para>
Si se utiliza el backend <literal>epoll</literal>, este flag
significa que es seguro utilizar el código interno de modificación de lista
interna a Libevent para agrupar los añadidos y las supresiones con el fin
de intentar minimizar el número de llamadas al sistema.
</para>
<para>
El hecho de definir este flag hace que el código sea más rápido, pero puede
enfrentarse a un bug de Linux: no es seguro utilizar este flag
en presencia de fds clonados por dup() o una de sus variantes.
Esto produciría un comportamiento extraño y muy difícil de diagnosticar.
</para>
<para>
Este flag también puede ser activado definiendo la variable de entorno
<literal>EVENT_EPOLL_USE_CHANGELIST</literal>.
</para>
<para>
Este flag no tiene ningún efecto si se utiliza con un backend diferente a
<literal>epoll</literal>.
</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<!-- }}} -->
</partintro>
&reference.event.entities.eventbase;
</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
-->