(PECL event >= 1.2.6-beta)
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 de buffer" consiste num transporte subjacente (como um soquete), um buffer de leitura e um buffer de escrita. Em vez de eventos regulares, que fornecem funções de retorno quando o transporte subjacente está pronto para ser lido ou escrito, um evento de buffer invoca suas funções de retorno fornecidas pelo usuário quando tiver lido ou gravado dados suficientes.
$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
= ?
Descritor de arquivo numérico associado ao evento de buffer. Normalmente
representa um soquete vinculado. É igual a null
, se não houver arquivo
descritor (soquete) associado ao evento de buffer.
A prioridade dos eventos usados para implementar o evento de buffer.
Objeto de buffer de entrada subjacente (EventBuffer).
Objeto de buffer de saída subjacente (EventBuffer).
EventBufferEvent::READING
Ocorreu um evento durante uma operação de leitura no evento de buffer. Veja outras opções para descobrir que evento foi esse.
EventBufferEvent::WRITING
Ocorreu um evento durante uma operação de gravação no evento de buffer. Veja outras opções para descobrir que evento foi esse.
EventBufferEvent::EOF
Foi obtida uma indicação de fim de arquivo no evento de buffer.
EventBufferEvent::ERROR
Ocorreu um erro durante uma operação evento de buffer. 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 evento de buffer.
EventBufferEvent::OPT_CLOSE_ON_FREE
Quando o evento de buffer for liberado, fecha o transporte subjacente. Esse fechará um soquete subjacente, liberará um evento de buffer subjacente, etc.
EventBufferEvent::OPT_THREADSAFE
Alocar bloqueios automaticamente para o evento de buffer, para que seja seguro usar em vários threads.
EventBufferEvent::OPT_DEFER_CALLBACKS
Quando essa opção estiver definida, o evento de buffer adia todas as suas funções de retorno. Veja » Rápida programação de rede portátil sem bloqueio com Libevent, funções de retorno diferidas .
EventBufferEvent::OPT_UNLOCK_CALLBACKS
Por padrão, quando o evento de buffer está configurado para ser seguro para threads, o buffer dos bloqueios do evento são cancelados sempre que qualquer função de retorno fornecida pelo usuário for invocada. Definir esta opção faz com que o Libevent libere o buffer de bloqueio do evento quando ele estiver invocando as funções de retorno.
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