array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ja', ), 'this' => array ( 0 => 'ev.supportedbackends.php', 1 => 'Ev::supportedBackends', ), 'up' => array ( 0 => 'class.ev.php', 1 => 'Ev', ), 'prev' => array ( 0 => 'ev.stop.php', 1 => 'Ev::stop', ), 'next' => array ( 0 => 'ev.suspend.php', 1 => 'Ev::suspend', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ja', 'path' => 'reference/ev/ev/supportedbackends.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PECL ev >= 0.2.0)
Ev::supportedBackends — 現在の libev の構成でサポートするバックエンド群を返す
この関数にはパラメータはありません。
ビットマスクを返します。 バックエンドのフラグ を、ビット OR 演算子で組み合わせたものになります。
例1 kqueue バックエンドで作ったループをデフォルトのループに埋め込む例
<?php
/*
* kqueue が使えるかどうかを調べ、ソケットで使う kqueue バックエンドを作ります
* (通常は、どんな kqueue 実装でも動きます)。
* kqueue/socket-only イベントループを loop_socket に格納します
* (EVFLAG_NOENV も使えます)。
*
* この例を流用しました
* 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;
}
// これで、すべてのソケットに対して $socket_loop を使い、それ以外については $loop を使うようになりました
?>