1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-23 23:32:16 +01:00
Files
archived-doc-ru/reference/ev/watcher-callbacks.xml
2026-01-18 22:20:57 +00:00

92 lines
3.8 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: b4fbf4434abeca44c58575ff3967e5640f7877d5 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="ev.watcher-callbacks">
<title>Watcher callbacks</title>
<simpara>
Все наблюдатели могут быть либо активными (ожидать сообщения), либо
неактивными (приостановленными). Только активные наблюдатели могут
вызывать свои callback-функции. Все такие функции вызываются
как минимум с двумя параметрами:
<parameter>watcher</parameter> - наблюдатель, и
<parameter>revents</parameter> - битовая маска принятых событий.
</simpara>
<simpara>
Callback-функции наблюдателей передаются в конструкторы наблюдателей
(классы, наследующие от <classname>EvWatcher</classname> -
<methodname>EvCheck::__construct</methodname>,
<methodname>EvChild::__construct</methodname> и т.д.)
Callback-функция наблюдателя должна соответствовать следующему прототипу:
</simpara>
<methodsynopsis>
<type>void</type>
<methodname>callback</methodname>
<methodparam choice="opt">
<type>object</type>
<parameter>watcher</parameter>
<initializer>NULL</initializer>
</methodparam>
<methodparam choice="opt">
<type>int</type>
<parameter>revents</parameter>
<initializer>NULL</initializer>
</methodparam>
</methodsynopsis>
<variablelist>
<varlistentry>
<term>
<parameter>watcher</parameter>
</term>
<listitem>
<simpara>
Экземпляр наблюдателя (класс расширяющий <classname>EvWatcher</classname>).
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>revents</parameter>
</term>
<listitem>
<simpara>
<link linkend="ev.constants.watcher-revents">Принятые наблюдателем события</link>.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<simpara>
Каждый тип наблюдателя имеет собственный бит в
<parameter>revents</parameter>, ассоциированный с ним,
что позволяет использовать одну и ту же callback-функцию для
множества наблюдателей. Событийная маска именуется после типа, т.е.
<classname>EvChild</classname> (или <methodname>EvLoop::child</methodname>)
устанавливает <constant>EV::CHILD</constant>,
<classname>EvPrepare</classname> (или <methodname>EvLoop::prepare</methodname>)
устанавливает <constant>Ev::PREPARE</constant>,
<classname>EvPeriodic</classname> (или <methodname>EvLoop::periodic</methodname>)
устанавливает <constant>Ev::PERIODIC</constant>
и так далее, с исключением для событий ввода/вывода (которые устанавливают
оба бита, и <constant>Ev::READ</constant> и <constant>Ev::WRITE</constant>).
</simpara>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->