-
Notifications
You must be signed in to change notification settings - Fork 80
Expand file tree
/
Copy pathevstat.xml
More file actions
145 lines (142 loc) · 6.98 KB
/
evstat.xml
File metadata and controls
145 lines (142 loc) · 6.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: b4fbf4434abeca44c58575ff3967e5640f7877d5 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<reference xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xml:id="class.evstat" role="class">
<title>Класс EvStat</title>
<titleabbrev>EvStat</titleabbrev>
<partintro>
<!-- {{{ EvStat intro -->
<section xml:id="evstat.intro">
&reftitle.intro;
<simpara>
Класс <classname>EvStat</classname> отслеживает путь файловой системы
на предмет изменений атрибутов. Класс вызывает для этого пути
метод <emphasis>stat()</emphasis> через регулярные интервалы времени,
или когда операционная система сигнализирует об изменении,
и смотрит, изменился ли путь по сравнению с прошлым разом. Класс вызывает
callback-функцию, если объект наблюдения изменился.
</simpara>
<simpara>
Путь не обязан существовать: изменение состояния с «путь существует»
на «путь не существует» — это изменение состояния, как и любое другое.
На условие «путь не существует» указывает значение 0
элемента с ключом <literal>'nlink'</literal> в массиве, который возвращает
метод <methodname>EvStat::attr</methodname>.
</simpara>
<simpara>
Путь не должен оканчиваться слешем или содержать специальные
компоненты наподобие <literal>'.'</literal> или <literal>..</literal>.
Путь должен быть абсолютным. Если задать относительный путь и сменить
рабочий каталог, то поведение будет неопределённым.
</simpara>
<simpara>
Поскольку нет переносимого интерфейса оповещения об изменениях,
переносимая реализация просто регулярно вызывает метод
<emphasis>stat()</emphasis> для пути и смотрит, не изменился объект наблюдения.
Поэтому рекомендуют задавать интервал опроса. Если интервал
опроса задали равным рекомендуемому значению <literal>0.0</literal>,
то метод будет использовать подходящее неопределённое значение по умолчанию,
которое равно примерно 5 секундам и изменяется динамически.
Модуль <emphasis>libev</emphasis> также наложит минимальный интервал,
значение которого примерно равно <literal>0.1</literal>,
но обычно это избыточно.
</simpara>
<simpara>
Этот тип наблюдателя не рассчитан на большое количество
<classname>EvStat</classname>-наблюдателей, поскольку даже
при работе с уведомлениями об изменениях,
которые поддерживает ОС, это потребует дополнительных ресурсов.
</simpara>
</section>
<!-- }}} -->
<section xml:id="evstat.synopsis">
&reftitle.classsynopsis;
<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass>
<classname>EvStat</classname>
</ooclass>
<!-- {{{ Class synopsis -->
<classsynopsisinfo>
<ooclass>
<classname>EvStat</classname>
</ooclass>
<ooclass>
<modifier>extends</modifier>
<classname>EvWatcher</classname>
</ooclass>
</classsynopsisinfo>
<!-- }}} -->
<classsynopsisinfo role="comment">&Properties;</classsynopsisinfo>
<fieldsynopsis>
<modifier>public</modifier>
<varname linkend="evstat.props.path">path</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<varname linkend="evstat.props.interval">interval</varname>
</fieldsynopsis>
<classsynopsisinfo role="comment">&InheritedProperties;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('evwatcher.synopsis')/descendant::db:fieldsynopsis)"/>
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.evstat')/db:refentry/db:refsect1[@role='description']/descendant::db:constructorsynopsis[not(@role='procedural')])"/>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.evstat')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])"/>
<classsynopsisinfo role="comment">&InheritedMethods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.evwatcher')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])"/>
</classsynopsis>
<!-- }}} -->
</section>
<!-- {{{ EvStat properties -->
<section xml:id="evstat.props">
&reftitle.properties;
<variablelist>
<varlistentry xml:id="evstat.props.interval">
<term>
<varname>interval</varname>
</term>
<listitem>
<simpara>
<emphasis>Только чтение</emphasis>.
Подсказывает, как часто метод будет обнаруживать изменения, и обычно ровно
<literal>0.0</literal>, что разрешает модулю <emphasis>libev</emphasis>
самому определять интервал.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="evstat.props.path">
<term>
<varname>path</varname>
</term>
<listitem>
<simpara>
<emphasis>Только чтение</emphasis>.
Путь, по которому метод отслеживает изменения.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</section>
<!-- }}} -->
</partintro>
&reference.ev.entities.evstat;
</reference>
<!-- 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
-->