PHPWales 2020 - June 3rd to June 4th

Ev::recommendedBackends

(PECL ev >= 0.2.0)

Ev::recommendedBackends現在のプラットフォーム上でおすすめのバックエンドのビットマスクを返す

説明

final public static Ev::recommendedBackends ( void ) : void

この libev のバイナリに組み込まれたすべてのバックエンドと、 中でもこのプラットフォーム上でおすすめのバックエンドを返します。 おすすめとは、多くのファイルディスクリプタ形式に対応しているということです。 このバックエンド群は、ev_supported_backends() が返すものより少なくなることがよくあります。たとえば kqueue は大半の BSD システムでうまく動かず、 明示的にリクエストしない限り自動検出できないからです。 このメソッドが返すバックエンドはどれも、明示的に指定しなくても libev で使えます。

パラメータ

この関数にはパラメータはありません。

返り値

ビットマスクを返します。 バックエンドのフラグ を、ビット OR 演算子で組み合わせたものになります。

例1 ループの中に別のループを埋め込む例

<?php
/*
* 埋め込み可能なイベントループをデフォルトのイベントループに組み込みます。
* できなかった場合はデフォルトのループを使います。
* デフォルトのループは $loop_hi に、そして埋め込み可能なループは $loop_lo
* に格納されます (埋め込み可能なループが使えなかった場合は $loop_hi
* を使います)。
*
* このサンプルを PHP に移植したものです。
* http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
*/
$loop_hi EvLoop::defaultLoop();
$loop_lo NULL;
$embed   NULL;

/*
* 使えるループを取得できるかどうかを調べます
* (フラグの値が 0 の場合は自動検出を意味します)
*/
$loop_lo Ev::embeddableBackends() & Ev::recommendedBackends()
 ? new 
EvLoop(Ev::embeddableBackends() & Ev::recommendedBackends())
 : 
0;

if (
$loop_lo) {
 
$embed = new EvEmbed($loop_lo, function () {});
} else {
 
$loop_lo $loop_hi;
}
?>

参考

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top