mirror of
https://github.com/php/doc-ru.git
synced 2026-03-23 23:32:16 +01:00
92 lines
3.8 KiB
XML
92 lines
3.8 KiB
XML
<?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
|
||
-->
|