(PECL event >= 1.2.6-beta)
Representa un buffer de eventos Libevent.
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:
Se decide que se desea escribir datos en una conexión; coloque estos datos en un buffer.
Se espera a que la conexión se vuelva accesible en escritura.
Se escribe la mayor cantidad de datos posible.
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.
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.
$dns_base
,$hostname
,$port
,$family
= EventUtil::AF_UNSPEC
$base
,$socket
= null
,$options
= 0
,$readcb
= null
,$writecb
= null
,$eventcb
= null
,$arg
= null
$readcb
,$writecb
,$eventcb
,$arg
= ?$base
,$underlying
,$ctx
,$state
,$options
= 0
$base
,$socket
,$ctx
,$state
,$options
= ?
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.
La prioridad del evento, utilizada para implementar el buffer de eventos.
Objeto de buffer de entrada subyacente (EventBuffer)
Objeto de buffer de salida subyacente (EventBuffer)
EventBufferEvent::READING
Un evento ocurre durante la operación de lectura en el bufferevent. Ver otros flags para conocer el tipo de evento.
EventBufferEvent::WRITING
Un evento ocurre durante una operación de escritura en el bufferevent. Ver otros flags para conocer el tipo de evento.
EventBufferEvent::EOF
Se recibe una indicación de fin de fichero en el buffer de eventos.
EventBufferEvent::ERROR
Un error ocurre durante una operación bufferevent. Para más información sobre el error, llame al método EventUtil::getLastSocketErrno() y/o EventUtil::getLastSocketError().
EventBufferEvent::TIMEOUT
EventBufferEvent::CONNECTED
Termina una conexión solicitada en el bufferevent.
EventBufferEvent::OPT_CLOSE_ON_FREE
Cuando el buffer de eventos es liberado, cierra el transporte subyacente. Esto cerrará el socket subyacente, liberará el buffer de eventos subyacente, etc.
EventBufferEvent::OPT_THREADSAFE
Asigna automáticamente bloqueos para el bufferevent, para hacer segura la utilización de múltiples threads.
EventBufferEvent::OPT_DEFER_CALLBACKS
Cuando este flag está definido, el bufferevent pospone todas sus funciones de retrollamada. Ver » la documentación sobre la programación de red rápida, portable, no bloqueante con Libevent, el posponer de las funciones de retrollamada.
EventBufferEvent::OPT_UNLOCK_CALLBACKS
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.
EventBufferEvent::SSL_OPEN
La negociación SSL se realiza.
EventBufferEvent::SSL_CONNECTING
SSL realiza actualmente la negociación como cliente.
EventBufferEvent::SSL_ACCEPTING
SSL realiza actualmente la negociación como servidor.