Ev EvEmbed::__construct

(PECL ev >= 0.2.0)

EvEmbed::__construct — EvEmbed 객체를 생성합니다.


설명

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

이것은 하나의 이벤트 루프를 다른 이벤트 루프에 포함할 수 있는 다소 고급 감시자 유형입니다(현재는 포함된 루프에서 IO 이벤트만 지원되며 다른 유형의 감시자는 지연되거나 잘못된 방식으로 처리될 수 있으므로 사용해서는 안 됩니다).

자세한 내용은 » libev 문서를 참조하세요.

이 감시자는 여전히 많은 소켓을 처리할 수 있도록 kqueue를 작동하지 않는 BSD 시스템에서 가장 유용합니다. 아래 예를 참조하십시오.


매개변수

other
EvLoop의 인스턴스. 포함할 루프, 이 루프는 포함 가능해야 합니다(Ev::embeddableBackends() 참조).
callback
Watcher 콜백을 참조하십시오.
data
감시자와 연결된 사용자 지정 데이터입니다.
priority
감시자 우선 순위

Examples

예제 #1 kqueue 백엔드로 생성된 루프를 기본 루프에 포함

                  
<?php
/*
 * Check if kqueue is available but not recommended and create a kqueue backend
 * for use with sockets (which usually work with any kqueue implementation).
 * Store the kqueue/socket-only event loop in loop_socket. (One might optionally
 * use EVFLAG_NOENV, too)
 *
 * Example borrowed from
 * 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;
}

// Now use $socket_loop for all sockets, and $loop for anything else
?>
                  
                

기타