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
?>
기타
- Ev::embeddableBackends() - 다른 이벤트 루프에 포함할 수 있는 백엔드 세트를 반환합니다.