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

# Ev::recommendedBackends

(PECL ev >= 0.2.0)

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

### 説明

final public static function Ev::recommendedBackends(): int

この `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;
    }
    ?>

### 参考

- EvEmbed
- Ev::embeddableBackends() - 他のイベントループに埋め込めるバックエンド群を返す
- Ev::supportedBackends() - 現在の libev の構成でサポートするバックエンド群を返す
- バックエンドのフラグ
- 例

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