Ev::recommendedBackends
(PECL ev >= 0.2.0)
Ev::recommendedBackends — Получить битовую маску рекомендованных бекэндов для данной платформы
Описание
Возвращает набор всех бекэндов, встроенных в используемую
libev
и, также, рекомендованных для данной платформы, в
том смысле, что они будут работать с большинством типов дескрипторов файлов.
Обычно этот список меньше, чем возвращаемый
ev_supported_backends().
К примеру, kqueue
не работает на большинстве систем
BSD
и не будет автоопределен если только вы принудительно
его не запросите. Это набор бекэндов которые будет опрашивать
libev
, если бекэнд не задан в явном виде.
Список параметров
У этой функции нет параметров.
Возвращаемые значения
Возвращает битовую маску, содержащую флаги бекэнда, объединенные с помощью побитового ИЛИ.
Примеры
Пример #1 Встраивание одного цикла в другой
<?php
/*
* Попытаемся получить встраиваемый событийный цикл и встроить его в
* событийный цикл по умолчанию.
* Если это невозможно - используем цикл по умолчанию.
* Цикл по умолчанию хранится в $loop_hi, а встраиваемый в $loop_lo
* (который равен $loop_hi в случае, если нельзя использовать встраиваемый цикл).
*
* Пример взят с сайта
* 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
- Флаги бекэнда
- Примеры