EvEmbed::__construct

(PECL ev >= 0.2.0)

EvEmbed::__constructConstrói o objeto EvEmbed

Descrição

public EvEmbed::__construct(
     object $other ,
     callable $callback = ?,
     mixed $data = ?,
     int $priority = ?
)

Este é um tipo de observador bastante avançado que permite incorporar um laço de eventos em outro (atualmente, apenas eventos de E/S são suportados no laço incorporado; outros tipos de observadores podem ser manipulados de forma atrasada ou incorreta e não devem ser usados).

Consulte » a documentção da libev para detalhes.

Este observador é mais útil em sistemas BSD sem kqueue funcional para que ainda seja possível manipular um número grande de soquetes. Veja o exemplo abaixo.

Parâmetros

other

Instância de EvLoop. O laço a ser incorporado, este laço precisa ser incorporável (consulte Ev::embeddableBackends()).

callback

Consulte funções de retorno observadoras.

data

Dados personalizados associados com o observador.

priority

Prioridade de observadores.

Exemplos

Exemplo #1 Incorporando laço criado com o backend kqueue no laço padrão

<?php
/*
* Verifica se o kqueue está disponível, mas não é recomendado, e cria um backend kqueue
* para uso com soquetes (que geralmente funcionam com qualquer implementação kqueue).
* Armazena o laço de eventos kqueue/somente-soquete em loop_soquete. (Opcionalmente,
* pode-se usar EVFLAG_NOENV também)
*
* Exemplo emprestado de
* http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
*/
$loop = EvLoop::defaultLoop();
$soquete_loop = NULL;
$embed = NULL;

if (
Ev::supportedBackends() & ~Ev::recommendedBackends() & Ev::BACKEND_KQUEUE) {
if ((
$soquete_loop = new EvLoop(Ev::BACKEND_KQUEUE))) {
$embed = new EvEmbed($loop);
}
}

if (!
$soquete_loop) {
$soquete_loop = $loop;
}

// Agora usa $soquete_loop para todos os soquetes e $loop para qualquer outra coisa
?>

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês)

Não há notas de usuários para esta página.
To Top