PHPCon Poland 2024

A classe Event

(PECL event >= 1.2.6-beta)

Introdução

A classe Event representa um evento disparado em um descritor de arquivo pronto para leitura ou escrita; um descritor de arquivo ficando pronto para leitura ou gravação (somente E/S acionada por borda); um tempo limite expirando; um sinal ocorrendo; um evento acionado pelo usuário.

Cada evento está associado a EventBase. Entretanto, o evento nunca será acionado até que seja adicionado (via Event::add()). Um evento adicionado permanece no estado pendente até que o evento registrado ocorra, passando assim para o estado ativo. Para lidar com eventos, o usuário pode registrar um retorno de chamada que é chamado quando o evento se torna ativo. Se o evento estiver configurado como persistente, ele permanecerá pendente. Se não for persistente, ele deixa de ficar pendente quando o retorno de chamada é executado. O método Event::del() deleta o evento, tornando-o não pendente. Através do método Event::add() ele pode ser adicionado novamente.

Resumo da classe

final class Event {
/* Constantes */
const int ET = 32;
const int PERSIST = 16;
const int READ = 2;
const int WRITE = 4;
const int SIGNAL = 8;
const int TIMEOUT = 1;
/* Propriedades */
public readonly bool $pending;
/* Métodos */
public add( float $timeout = ?): bool
public __construct(
     EventBase $base ,
     mixed $fd ,
     int $what ,
     callable $cb ,
     mixed $arg = NULL
)
public del(): bool
public free(): void
public static getSupportedMethods(): array
public pending( int $flags ): bool
public set(
     EventBase $base ,
     mixed $fd ,
     int $what = ?,
     callable $cb = ?,
     mixed $arg = ?
): bool
public setPriority( int $priority ): bool
public setTimer( EventBase $base , callable $cb , mixed $arg = ?): bool
public static signal(
     EventBase $base ,
     int $signum ,
     callable $cb ,
     mixed $arg = ?
): Event
public static timer( EventBase $base , callable $cb , mixed $arg = ?): Event
}

Propriedades

pending

Se o evento está pendente. Consulte Sobre persistência de eventos .

Constantes pré-definidas

Event::ET

Indica que o evento deve ser acionado pela borda, se o backend da base de eventos subjacente suportar eventos acionados pela borda. Isso afeta a semântica de Event::READ e Event::WRITE .

Event::PERSIST

Indica que o evento é persistente. Consulte Sobre persistência de eventos .

Event::READ

Esta opção indica um evento que se torna ativo quando o descritor de arquivo fornecido (geralmente um recurso de fluxo ou socket) está pronto para leitura.

Event::WRITE

Esta opção indica um evento que se torna ativo quando o descritor de arquivo fornecido (geralmente um recurso de fluxo ou socket) está pronto para leitura.

Event::SIGNAL

Usado para implementar a detecção de sinal. Consulte "Construindo eventos de sinal" abaixo.

Event::TIMEOUT

Esta opção indica um evento que se torna ativo depois de decorrido um tempo limite.

A flag Event::TIMEOUT é ignorada ao construir um evento: pode-se definir um tempo limite quando o evento é adicionado , ou não. É definido no argumento $what para a função de retorno de chamada quando ocorre um tempo limite.

Índice

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top