A classe EventBufferEvent
(PECL event >= 1.2.6-beta)
Introdução
Representa o evento buffer do Libevent.
Normalmente, uma aplicação deseja realizar uma certa quantidade de buffer de dados além de apenas responder aos eventos. Quando queremos escrever dados, por por exemplo, o padrão usual se parece com:
-
Decidimos que queremos gravar alguns dados em uma conexão; coloque esses dados em um buffer.
-
Aguarde até que a conexão se torne gravável
-
Escreva o máximo de dados que pudermos
-
Lembre-se de quanto escrevemos e se ainda tivermos mais dados para escrever, espere que a conexão se torne gravável novamente.
Este padrão de E/S em buffer é comum o suficiente para que o Libevent forneça um mecanismo genérico para isso. Um "evento buffer" consiste num evento subjacente transporte (como um socket), um buffer de leitura e um buffer de gravação. Em vez de eventos regulares, que fornecem retornos de chamada quando o transporte subjacente está pronto para ser lido ou escrito, um evento buffer invoca seu evento fornecido pelo usuário pelos retornos de chamada quando leu ou gravou dados suficientes.
Resumo da classe
EventDnsBase
$dns_base
,string
$hostname
,int
$port
,int
$family
= EventUtil::AF_UNSPEC
): bool
EventBase
$base
,mixed
$socket
= null
,int
$options
= 0
,callable
$readcb
= null
,callable
$writecb
= null
,callable
$eventcb
= null
,mixed
$arg
= null
)
callable
$readcb
,callable
$writecb
,callable
$eventcb
,mixed
$arg
= ?): void
EventBase
$base
,EventBufferEvent
$underlying
,EventSslContext
$ctx
,int
$state
,int
$options
= 0
): EventBufferEvent
EventBase
$base
,mixed
$socket
,EventSslContext
$ctx
,int
$state
,int
$options
= ?): EventBufferEvent
Propriedades
- fd
-
Descritor de arquivo numérico associado ao evento de buffer. Normalmente representa um socket vinculado. É igual a
null
, se não houver arquivo descritor (socket) associado ao evento buffer. - priority
-
A prioridade dos eventos usados para implementar o evento buffer.
- input
-
Objeto de buffer de entrada subjacente( EventBuffer )
- output
-
Objeto de buffer de saída subjacente( EventBuffer )
Constantes pré-definidas
-
EventBufferEvent::READING
-
Ocorreu um evento durante uma operação de leitura no bufferevent. Veja outras opções para qual evento foi.
-
EventBufferEvent::WRITING
-
Ocorreu um evento durante uma operação de gravação no bufferevent. Veja outras opções para qual evento foi.
-
EventBufferEvent::EOF
-
Obteve uma indicação de fim de arquivo no evento buffer.
-
EventBufferEvent::ERROR
-
Ocorreu um erro durante uma operação bufferevent. Para informações sobre qual foi o maior erro, chame EventUtil::getLastSocketErrno() e/ou EventUtil::getLastSocketError() .
-
EventBufferEvent::TIMEOUT
-
EventBufferEvent::CONNECTED
-
Concluiu uma conexão solicitada no bufferevent.
-
EventBufferEvent::OPT_CLOSE_ON_FREE
-
Quando o evento buffer for liberado, fecha o transporte subjacente. Esse fechará um socket subjacente, liberará um evento de buffer subjacente, etc.
-
EventBufferEvent::OPT_THREADSAFE
-
Alocar bloqueios automaticamente para o bufferevent, para que seja seguro usar em vários threads.
-
EventBufferEvent::OPT_DEFER_CALLBACKS
-
Quando essa opção estiver definida, o bufferevent adia todos os seus retornos de chamada. Veja » Rápida programação de rede portátil sem bloqueio com Libevent, retornos de chamada diferidos .
-
EventBufferEvent::OPT_UNLOCK_CALLBACKS
-
Por padrão, quando o bufferevent está configurado para ser threadsafe, o buffer dos bloqueios do evento são cancelados sempre que qualquer retorno de chamada fornecido pelo usuário for invocado. Definir esta opção faz com que o Libevent libere o buffer de bloqueio do evento quando ele estiver invocando os retornos de chamada.
-
EventBufferEvent::SSL_OPEN
-
O handshake SSL está concluído
-
EventBufferEvent::SSL_CONNECTING
-
SSL está atualmente realizando negociações como um cliente
-
EventBufferEvent::SSL_ACCEPTING
-
SSL está atualmente realizando negociações como um servidor
Table of Contents
- EventBufferEvent::close — Closes file descriptor associated with the current buffer event
- EventBufferEvent::connect — Connect buffer event's file descriptor to given address or UNIX socket
- EventBufferEvent::connectHost — Connects to a hostname with optionally asyncronous DNS resolving
- EventBufferEvent::__construct — Constructs EventBufferEvent object
- EventBufferEvent::createPair — Creates two buffer events connected to each other
- EventBufferEvent::disable — Disable events read, write, or both on a buffer event
- EventBufferEvent::enable — Enable events read, write, or both on a buffer event
- EventBufferEvent::free — Free a buffer event
- EventBufferEvent::getDnsErrorString — Returns string describing the last failed DNS lookup attempt
- EventBufferEvent::getEnabled — Returns bitmask of events currently enabled on the buffer event
- EventBufferEvent::getInput — Returns underlying input buffer associated with current buffer event
- EventBufferEvent::getOutput — Returns underlying output buffer associated with current buffer event
- EventBufferEvent::read — Read buffer's data
- EventBufferEvent::readBuffer — Drains the entire contents of the input buffer and places them into buf
- EventBufferEvent::setCallbacks — Assigns read, write and event(status) callbacks
- EventBufferEvent::setPriority — Assign a priority to a bufferevent
- EventBufferEvent::setTimeouts — Set the read and write timeout for a buffer event
- EventBufferEvent::setWatermark — Adjusts read and/or write watermarks
- EventBufferEvent::sslError — Returns most recent OpenSSL error reported on the buffer event
- EventBufferEvent::sslFilter — Create a new SSL buffer event to send its data over another buffer event
- EventBufferEvent::sslGetCipherInfo — Returns a textual description of the cipher
- EventBufferEvent::sslGetCipherName — Returns the current cipher name of the SSL connection
- EventBufferEvent::sslGetCipherVersion — Returns version of cipher used by current SSL connection
- EventBufferEvent::sslGetProtocol — Returns the name of the protocol used for current SSL connection
- EventBufferEvent::sslRenegotiate — Tells a bufferevent to begin SSL renegotiation
- EventBufferEvent::sslSocket — Creates a new SSL buffer event to send its data over an SSL on a socket
- EventBufferEvent::write — Adds data to a buffer event's output buffer
- EventBufferEvent::writeBuffer — Adds contents of the entire buffer to a buffer event's output buffer