(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 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.
$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 socket vinculado. É igual a null
, se não houver arquivo
descritor (socket) associado ao evento buffer.
A prioridade dos eventos usados para implementar o evento 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 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