Construye un objeto EvEmbed

# EvEmbed::__construct

(PECL ev >= 0.2.0)

EvEmbed::__construct — Construye un objeto EvEmbed

### Descripción

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

Se trata de un tipo de watcher avanzado que permite integrar un bucle de eventos en otro (actualmente, solo los eventos IO son soportados en el bucle interno, otros tipos de watcher no deben ser utilizados).

Ver la » documentación libev para más detalles.

Este watcher es más útil en sistemas BSD donde `kqueue` no es utilizado, para poder manejar un gran número de sockets. Ver el ejemplo a continuación.

### Parámetros

`other`
  Una instancia de EvLoop. El bucle a integrar; debe ser encapsulable (ver el método Ev::embeddableBackends()).
`callback`
  Ver las funciones de retrollamada de los Watcher.
`data`
  Datos personalizados para asociar con el watcher.
`priority`
  Prioridad del Watcher

### Ejemplos

Ejemplo #1 Encapsulamiento de un bucle creado con el gestor kqueue en el bucle por omisión

    <?php
    /*
     * Verifica si kqueue está disponible y crea un gestor kqueue
     * para usarlo con los sockets (que funciona habitualmente con cualquier implementación
     * de kqueue. Almacena el bucle de eventos kqueue/socket solo, en loop_socket.
     * (opcionalmente, uso de EVFLAG_NOENV)
     *
     * Ejemplo tomado de
     * http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
     */
    $loop        = EvLoop::defaultLoop();
    $socket_loop = NULL;
    $embed       = NULL;

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

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

    // Ahora, se usa $socket_loop para todos los sockets, y $loop para todo lo demás
    ?>

### Ver también

- Ev::embeddableBackends() - Devuelve el conjunto de backends que pueden ser encapsulados en otros bucles de eventos

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open