mirror of
https://github.com/php/doc-es.git
synced 2026-03-23 23:12:09 +01:00
375 lines
13 KiB
XML
375 lines
13 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- EN-Revision: 23ea6be076881a34e1d454e9680968ece085f7f6 Maintainer: PhilDaiguille Status: ready -->
|
|
<!-- Reviewed: no -->
|
|
|
|
<reference xml:id="class.eventbufferevent" 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 EventBufferEvent</title>
|
|
<titleabbrev>EventBufferEvent</titleabbrev>
|
|
<partintro>
|
|
<!-- {{{ EventBufferEvent intro -->
|
|
<section xml:id="eventbufferevent.intro">
|
|
&reftitle.intro;
|
|
<para>
|
|
Representa un buffer de eventos Libevent.
|
|
</para>
|
|
<para>
|
|
Normalmente, una aplicación desea poner en buffer datos además de simplemente responder a eventos. Cuando se desea escribir datos, por ejemplo, el mecanismo habitual se asemeja a:
|
|
</para>
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>
|
|
Se decide que se desea escribir datos en una conexión; coloque estos datos en un buffer.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Se espera a que la conexión se vuelva accesible en escritura.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Se escribe la mayor cantidad de datos posible.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Se recuerda la cantidad escrita, y si aún hay más datos para escribir, se espera a que la conexión vuelva a ser accesible en escritura.
|
|
</para>
|
|
</listitem>
|
|
</orderedlist>
|
|
<para>
|
|
Este mecanismo de bufferización de E/S es lo suficientemente común como para que Libevent proporcione un mecanismo genérico para ello. Un buffer de eventos consta de un transporte subyacente (como un socket), un buffer de lectura y un buffer de escritura. En lugar de un evento clásico, que proporciona funciones de retrollamada cuando el transporte subyacente está listo para ser leído o escrito, un buffer de eventos llama a sus funciones de retrollamada proporcionadas por el usuario cuando ha leído o escrito suficientes datos.
|
|
</para>
|
|
</section>
|
|
<!-- }}} -->
|
|
<section xml:id="eventbufferevent.synopsis">
|
|
&reftitle.classsynopsis;
|
|
|
|
<!-- {{{ Synopsis -->
|
|
<classsynopsis>
|
|
<ooclass>
|
|
<classname>EventBufferEvent</classname>
|
|
</ooclass>
|
|
<!-- {{{ Class synopsis -->
|
|
<classsynopsisinfo>
|
|
<ooclass>
|
|
<modifier>final</modifier>
|
|
<classname>EventBufferEvent</classname>
|
|
</ooclass>
|
|
</classsynopsisinfo>
|
|
<!-- }}} -->
|
|
<classsynopsisinfo role="comment">&Constants;</classsynopsisinfo>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="eventbufferevent.constants.reading">EventBufferEvent::READING</varname>
|
|
<initializer>1</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="eventbufferevent.constants.writing">EventBufferEvent::WRITING</varname>
|
|
<initializer>2</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="eventbufferevent.constants.eof">EventBufferEvent::EOF</varname>
|
|
<initializer>16</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="eventbufferevent.constants.error">EventBufferEvent::ERROR</varname>
|
|
<initializer>32</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="eventbufferevent.constants.timeout">EventBufferEvent::TIMEOUT</varname>
|
|
<initializer>64</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="eventbufferevent.constants.connected">EventBufferEvent::CONNECTED</varname>
|
|
<initializer>128</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="eventbufferevent.constants.opt-close-on-free">EventBufferEvent::OPT_CLOSE_ON_FREE</varname>
|
|
<initializer>1</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="eventbufferevent.constants.opt-threadsafe">EventBufferEvent::OPT_THREADSAFE</varname>
|
|
<initializer>2</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="eventbufferevent.constants.opt-defer-callbacks">EventBufferEvent::OPT_DEFER_CALLBACKS</varname>
|
|
<initializer>4</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="eventbufferevent.constants.opt-unlock-callbacks">EventBufferEvent::OPT_UNLOCK_CALLBACKS</varname>
|
|
<initializer>8</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="eventbufferevent.constants.ssl-open">EventBufferEvent::SSL_OPEN</varname>
|
|
<initializer>0</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="eventbufferevent.constants.ssl-connecting">EventBufferEvent::SSL_CONNECTING</varname>
|
|
<initializer>1</initializer>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>const</modifier>
|
|
<type>int</type>
|
|
<varname linkend="eventbufferevent.constants.ssl-accepting">EventBufferEvent::SSL_ACCEPTING</varname>
|
|
<initializer>2</initializer>
|
|
</fieldsynopsis>
|
|
<classsynopsisinfo role="comment">&Properties;</classsynopsisinfo>
|
|
<fieldsynopsis>
|
|
<modifier>public</modifier>
|
|
<type>int</type>
|
|
<varname linkend="eventbufferevent.props.fd">fd</varname>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>public</modifier>
|
|
<type>int</type>
|
|
<varname linkend="eventbufferevent.props.priority">priority</varname>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>public</modifier>
|
|
<modifier>readonly</modifier>
|
|
<type>EventBuffer</type>
|
|
<varname linkend="eventbufferevent.props.input">input</varname>
|
|
</fieldsynopsis>
|
|
<fieldsynopsis>
|
|
<modifier>public</modifier>
|
|
<modifier>readonly</modifier>
|
|
<type>EventBuffer</type>
|
|
<varname linkend="eventbufferevent.props.output">output</varname>
|
|
</fieldsynopsis>
|
|
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
|
|
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.eventbufferevent')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])" />
|
|
</classsynopsis>
|
|
<!-- }}} -->
|
|
</section>
|
|
<!-- {{{ EventBufferEvent properties -->
|
|
<section xml:id="eventbufferevent.props">
|
|
&reftitle.properties;
|
|
<variablelist>
|
|
<varlistentry xml:id="eventbufferevent.props.fd">
|
|
<term>
|
|
<varname>fd</varname>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
Descriptor de fichero numérico asociado con el buffer de eventos. Normalmente, representa un socket enlazado. Vale &null; si no hay ningún descriptor de fichero (socket) asociado con el buffer de eventos.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="eventbufferevent.props.priority">
|
|
<term>
|
|
<varname>priority</varname>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
La prioridad del evento, utilizada para implementar el buffer de eventos.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="eventbufferevent.props.input">
|
|
<term>
|
|
<varname>input</varname>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
Objeto de buffer de entrada subyacente (<classname>EventBuffer</classname>)
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="eventbufferevent.props.output">
|
|
<term>
|
|
<varname>output</varname>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
Objeto de buffer de salida subyacente (<classname>EventBuffer</classname>)
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</section>
|
|
<!-- }}} -->
|
|
<!-- {{{ EventBufferEvent constants -->
|
|
<section xml:id="eventbufferevent.constants">
|
|
&reftitle.constants;
|
|
<variablelist>
|
|
<varlistentry xml:id="eventbufferevent.constants.reading">
|
|
<term>
|
|
<constant>EventBufferEvent::READING</constant>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
Un evento ocurre durante la operación de lectura en el bufferevent. Ver otros flags para conocer el tipo de evento.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="eventbufferevent.constants.writing">
|
|
<term>
|
|
<constant>EventBufferEvent::WRITING</constant>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
Un evento ocurre durante una operación de escritura en el bufferevent. Ver otros flags para conocer el tipo de evento.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="eventbufferevent.constants.eof">
|
|
<term>
|
|
<constant>EventBufferEvent::EOF</constant>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
Se recibe una indicación de fin de fichero en el buffer de eventos.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="eventbufferevent.constants.error">
|
|
<term>
|
|
<constant>EventBufferEvent::ERROR</constant>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
Un error ocurre durante una operación bufferevent. Para más información sobre el error, llame al método <methodname>EventUtil::getLastSocketErrno</methodname> y/o <methodname>EventUtil::getLastSocketError</methodname>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="eventbufferevent.constants.timeout">
|
|
<term>
|
|
<constant>EventBufferEvent::TIMEOUT</constant>
|
|
</term>
|
|
<listitem>
|
|
<para></para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="eventbufferevent.constants.connected">
|
|
<term>
|
|
<constant>EventBufferEvent::CONNECTED</constant>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
Termina una conexión solicitada en el bufferevent.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="eventbufferevent.constants.opt-close-on-free">
|
|
<term>
|
|
<constant>EventBufferEvent::OPT_CLOSE_ON_FREE</constant>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
Cuando el buffer de eventos es liberado, cierra el transporte subyacente. Esto cerrará el socket subyacente, liberará el buffer de eventos subyacente, etc.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="eventbufferevent.constants.opt-threadsafe">
|
|
<term>
|
|
<constant>EventBufferEvent::OPT_THREADSAFE</constant>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
Asigna automáticamente bloqueos para el bufferevent, para hacer segura la utilización de múltiples threads.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="eventbufferevent.constants.opt-defer-callbacks">
|
|
<term>
|
|
<constant>EventBufferEvent::OPT_DEFER_CALLBACKS</constant>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
Cuando este flag está definido, el bufferevent pospone todas sus funciones de retrollamada. Ver <link xlink:href="http://www.wangafu.net/~nickm/libevent-book/Ref6_bufferevent.html#_deferred_callbacks">la documentación sobre la programación de red rápida, portable, no bloqueante con Libevent, el posponer de las funciones de retrollamada</link>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="eventbufferevent.constants.opt-unlock-callbacks">
|
|
<term>
|
|
<constant>EventBufferEvent::OPT_UNLOCK_CALLBACKS</constant>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
Por omisión, cuando el bufferevent está definido para ser seguro al nivel de los threads, el bloqueo del buffer de eventos es mantenido, incluso si una función de retrollamada de usuario es llamada. La definición de esta opción permite a Libevent liberar el bloqueo del buffer de eventos cuando la función de retrollamada es llamada.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="eventbufferevent.constants.ssl-open">
|
|
<term>
|
|
<constant>EventBufferEvent::SSL_OPEN</constant>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
La negociación SSL se realiza.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="eventbufferevent.constants.ssl-connecting">
|
|
<term>
|
|
<constant>EventBufferEvent::SSL_CONNECTING</constant>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
SSL realiza actualmente la negociación como cliente.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry xml:id="eventbufferevent.constants.ssl-accepting">
|
|
<term>
|
|
<constant>EventBufferEvent::SSL_ACCEPTING</constant>
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
SSL realiza actualmente la negociación como servidor.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</section>
|
|
<!-- }}} -->
|
|
</partintro>
|
|
|
|
&reference.event.entities.eventbufferevent;
|
|
|
|
</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
|
|
-->
|