root / docstrings / pyinotify.Notifier-class.html

Revision f7cd60146b00bdffd25b207639d1d2fb326a2174, 23.4 kB (checked in by Sebastien Martini <ookoi@…>, 5 months ago)

- Documentation updated.
- Version 0.8.0t released.

  • Property mode set to 100644
Line 
1<?xml version="1.0" encoding="ascii"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3          "DTD/xhtml1-transitional.dtd">
4<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5<head>
6  <title>pyinotify.Notifier</title>
7  <link rel="stylesheet" href="epydoc.css" type="text/css" />
8  <script type="text/javascript" src="epydoc.js"></script>
9</head>
10
11<body bgcolor="white" text="black" link="blue" vlink="#204080"
12      alink="#204080">
13<!-- ==================== NAVIGATION BAR ==================== -->
14<table class="navbar" border="0" width="100%" cellpadding="0"
15       bgcolor="#a0c0ff" cellspacing="0">
16  <tr valign="middle">
17  <!-- Home link -->
18      <th>&nbsp;&nbsp;&nbsp;<a
19        href="pyinotify-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
20
21  <!-- Tree link -->
22      <th>&nbsp;&nbsp;&nbsp;<a
23        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
24
25  <!-- Index link -->
26      <th>&nbsp;&nbsp;&nbsp;<a
27        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
28
29  <!-- Help link -->
30      <th>&nbsp;&nbsp;&nbsp;<a
31        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
32
33      <th class="navbar" width="100%"></th>
34  </tr>
35</table>
36<table width="100%" cellpadding="0" cellspacing="0">
37  <tr valign="top">
38    <td width="100%">
39      <span class="breadcrumbs">
40        <a href="pyinotify-module.html">Module&nbsp;pyinotify</a> ::
41        Class&nbsp;Notifier
42      </span>
43    </td>
44    <td>
45      <table cellpadding="0" cellspacing="0">
46        <!-- hide/show private -->
47        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
48    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
49        <tr><td align="right"><span class="options"
50            >[<a href="frames.html" target="_top">frames</a
51            >]&nbsp;|&nbsp;<a href="pyinotify.Notifier-class.html"
52            target="_top">no&nbsp;frames</a>]</span></td></tr>
53      </table>
54    </td>
55  </tr>
56</table>
57<!-- ==================== CLASS DESCRIPTION ==================== -->
58<h1 class="epydoc">Class Notifier</h1><span class="codelink"><a href="pyinotify-pysrc.html#Notifier">source&nbsp;code</a></span><br /><br />
59<center>
60<center>  <map id="uml_class_diagram_for_pyinotif_11" name="uml_class_diagram_for_pyinotif_11">
61<area shape="rect" href="pyinotify.ThreadedNotifier&#45;class.html" title="This notifier inherits from threading.Thread for instantiating a separate thread, and also inherits from Notifier, because it is a threaded notifier." alt="" coords="273,198,380,224"/>
62<area shape="rect" href="pyinotify.Notifier&#45;class.html#read_events" title="Read events from device, build _RawEvents, and enqueue them." alt="" coords="17,36,636,55"/>
63<area shape="rect" href="pyinotify.Notifier&#45;class.html#stop" title="Close the inotify&#39;s instance (close its file descriptor)." alt="" coords="17,55,636,74"/>
64<area shape="rect" href="pyinotify.Notifier&#45;class.html#check_events" title="Check for new events available to read, blocks up to timeout milliseconds." alt="" coords="17,74,636,92"/>
65<area shape="rect" href="pyinotify.Notifier&#45;class.html#proc_fun" title="pyinotify.Notifier.proc_fun" alt="" coords="17,92,636,111"/>
66<area shape="rect" href="pyinotify.Notifier&#45;class.html#loop" title="Events are read only once time every min(read_freq, timeout) seconds at  best and only if the size to read is &gt;= treshold." alt="" coords="17,111,636,130"/>
67<area shape="rect" href="pyinotify.Notifier&#45;class.html#__init__" title="Initialization." alt="" coords="17,130,636,148"/>
68<area shape="rect" href="pyinotify.Notifier&#45;class.html#process_events" title="Routine for processing events from queue by calling their associated  proccessing function (instance of ProcessEvent)." alt="" coords="17,148,636,167"/>
69<area shape="rect" href="pyinotify.Notifier&#45;class.html" title="Read notifications, process events." alt="" coords="16,11,637,168"/>
70</map>
71  <img src="uml_class_diagram_for_pyinotif_11.gif" alt='' usemap="#uml_class_diagram_for_pyinotif_11" ismap="ismap" class="graph-without-title" />
72</center></center>
73<hr />
74Read notifications, process events.<br /><br />
75
76<!-- ==================== INSTANCE METHODS ==================== -->
77<a name="section-InstanceMethods"></a>
78<table class="summary" border="1" cellpadding="3"
79       cellspacing="0" width="100%" bgcolor="white">
80<tr bgcolor="#70b0f0" class="table-header">
81  <td colspan="2" class="table-header">
82    <table border="0" cellpadding="0" cellspacing="0" width="100%">
83      <tr valign="top">
84        <td align="left"><span class="table-header">Instance Methods</span></td>
85        <td align="right" valign="top"
86         ><span class="options">[<a href="#section-InstanceMethods"
87         class="privatelink" onclick="toggle_private();"
88         >hide private</a>]</span></td>
89      </tr>
90    </table>
91  </td>
92</tr>
93<tr>
94    <td width="15%" align="right" valign="top" class="summary">
95      <span class="summary-type">&nbsp;</span>
96    </td><td class="summary">
97      <table width="100%" cellpadding="0" cellspacing="0" border="0">
98        <tr>
99          <td><span class="summary-sig"><a href="pyinotify.Notifier-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
100        <span class="summary-sig-arg">watch_manager</span>,
101        <span class="summary-sig-arg">default_proc_fun</span>=<span class="summary-sig-default">&lt;ProcessEvent&gt;</span>,
102        <span class="summary-sig-arg">read_freq</span>=<span class="summary-sig-default">0</span>,
103        <span class="summary-sig-arg">treshold</span>=<span class="summary-sig-default">0</span>,
104        <span class="summary-sig-arg">timeout</span>=<span class="summary-sig-default">None</span>)</span><br />
105      Initialization.</td>
106          <td align="right" valign="top">
107            <span class="codelink"><a href="pyinotify-pysrc.html#Notifier.__init__">source&nbsp;code</a></span>
108           
109          </td>
110        </tr>
111      </table>
112     
113    </td>
114  </tr>
115<tr>
116    <td width="15%" align="right" valign="top" class="summary">
117      <span class="summary-type">&nbsp;</span>
118    </td><td class="summary">
119      <table width="100%" cellpadding="0" cellspacing="0" border="0">
120        <tr>
121          <td><span class="summary-sig"><a name="proc_fun"></a><span class="summary-sig-name">proc_fun</span>(<span class="summary-sig-arg">self</span>)</span></td>
122          <td align="right" valign="top">
123            <span class="codelink"><a href="pyinotify-pysrc.html#Notifier.proc_fun">source&nbsp;code</a></span>
124           
125          </td>
126        </tr>
127      </table>
128     
129    </td>
130  </tr>
131<tr>
132    <td width="15%" align="right" valign="top" class="summary">
133      <span class="summary-type">bool</span>
134    </td><td class="summary">
135      <table width="100%" cellpadding="0" cellspacing="0" border="0">
136        <tr>
137          <td><span class="summary-sig"><a href="pyinotify.Notifier-class.html#check_events" class="summary-sig-name">check_events</a>(<span class="summary-sig-arg">self</span>)</span><br />
138      Check for new events available to read, blocks up to timeout
139      milliseconds.</td>
140          <td align="right" valign="top">
141            <span class="codelink"><a href="pyinotify-pysrc.html#Notifier.check_events">source&nbsp;code</a></span>
142           
143          </td>
144        </tr>
145      </table>
146     
147    </td>
148  </tr>
149<tr>
150    <td width="15%" align="right" valign="top" class="summary">
151      <span class="summary-type">&nbsp;</span>
152    </td><td class="summary">
153      <table width="100%" cellpadding="0" cellspacing="0" border="0">
154        <tr>
155          <td><span class="summary-sig"><a name="read_events"></a><span class="summary-sig-name">read_events</span>(<span class="summary-sig-arg">self</span>)</span><br />
156      Read events from device, build _RawEvents, and enqueue them.</td>
157          <td align="right" valign="top">
158            <span class="codelink"><a href="pyinotify-pysrc.html#Notifier.read_events">source&nbsp;code</a></span>
159           
160          </td>
161        </tr>
162      </table>
163     
164    </td>
165  </tr>
166<tr>
167    <td width="15%" align="right" valign="top" class="summary">
168      <span class="summary-type">&nbsp;</span>
169    </td><td class="summary">
170      <table width="100%" cellpadding="0" cellspacing="0" border="0">
171        <tr>
172          <td><span class="summary-sig"><a href="pyinotify.Notifier-class.html#process_events" class="summary-sig-name">process_events</a>(<span class="summary-sig-arg">self</span>)</span><br />
173      Routine for processing events from queue by calling their
174      associated proccessing function (instance of ProcessEvent).</td>
175          <td align="right" valign="top">
176            <span class="codelink"><a href="pyinotify-pysrc.html#Notifier.process_events">source&nbsp;code</a></span>
177           
178          </td>
179        </tr>
180      </table>
181     
182    </td>
183  </tr>
184<tr class="private">
185    <td width="15%" align="right" valign="top" class="summary">
186      <span class="summary-type">&nbsp;</span>
187    </td><td class="summary">
188      <table width="100%" cellpadding="0" cellspacing="0" border="0">
189        <tr>
190          <td><span class="summary-sig"><a href="pyinotify.Notifier-class.html#__daemonize" class="summary-sig-name">__daemonize</a>(<span class="summary-sig-arg">self</span>,
191        <span class="summary-sig-arg">pid_file</span>=<span class="summary-sig-default">None</span>,
192        <span class="summary-sig-arg">force_kill</span>=<span class="summary-sig-default">False</span>,
193        <span class="summary-sig-arg">stdin</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">/dev/null</code><code class="variable-quote">'</code></span>,
194        <span class="summary-sig-arg">stdout</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">/dev/null</code><code class="variable-quote">'</code></span>,
195        <span class="summary-sig-arg">stderr</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">/dev/null</code><code class="variable-quote">'</code></span>)</span><br />
196      pid_file: file to which pid will be written.</td>
197          <td align="right" valign="top">
198            <span class="codelink"><a href="pyinotify-pysrc.html#Notifier.__daemonize">source&nbsp;code</a></span>
199           
200          </td>
201        </tr>
202      </table>
203     
204    </td>
205  </tr>
206<tr class="private">
207    <td width="15%" align="right" valign="top" class="summary">
208      <span class="summary-type">&nbsp;</span>
209    </td><td class="summary">
210      <table width="100%" cellpadding="0" cellspacing="0" border="0">
211        <tr>
212          <td><span class="summary-sig"><a name="_sleep"></a><span class="summary-sig-name">_sleep</span>(<span class="summary-sig-arg">self</span>,
213        <span class="summary-sig-arg">ref_time</span>)</span></td>
214          <td align="right" valign="top">
215            <span class="codelink"><a href="pyinotify-pysrc.html#Notifier._sleep">source&nbsp;code</a></span>
216           
217          </td>
218        </tr>
219      </table>
220     
221    </td>
222  </tr>
223<tr>
224    <td width="15%" align="right" valign="top" class="summary">
225      <span class="summary-type">&nbsp;</span>
226    </td><td class="summary">
227      <table width="100%" cellpadding="0" cellspacing="0" border="0">
228        <tr>
229          <td><span class="summary-sig"><a href="pyinotify.Notifier-class.html#loop" class="summary-sig-name">loop</a>(<span class="summary-sig-arg">self</span>,
230        <span class="summary-sig-arg">callback</span>=<span class="summary-sig-default">None</span>,
231        <span class="summary-sig-arg">daemonize</span>=<span class="summary-sig-default">False</span>,
232        <span class="summary-sig-arg">**args</span>)</span><br />
233      Events are read only once time every min(read_freq, timeout)
234      seconds at best and only if the size to read is &gt;= treshold.</td>
235          <td align="right" valign="top">
236            <span class="codelink"><a href="pyinotify-pysrc.html#Notifier.loop">source&nbsp;code</a></span>
237           
238          </td>
239        </tr>
240      </table>
241     
242    </td>
243  </tr>
244<tr>
245    <td width="15%" align="right" valign="top" class="summary">
246      <span class="summary-type">&nbsp;</span>
247    </td><td class="summary">
248      <table width="100%" cellpadding="0" cellspacing="0" border="0">
249        <tr>
250          <td><span class="summary-sig"><a href="pyinotify.Notifier-class.html#stop" class="summary-sig-name">stop</a>(<span class="summary-sig-arg">self</span>)</span><br />
251      Close the inotify's instance (close its file descriptor).</td>
252          <td align="right" valign="top">
253            <span class="codelink"><a href="pyinotify-pysrc.html#Notifier.stop">source&nbsp;code</a></span>
254           
255          </td>
256        </tr>
257      </table>
258     
259    </td>
260  </tr>
261  <tr>
262    <td colspan="2" class="summary">
263    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
264      <code>__delattr__</code>,
265      <code>__getattribute__</code>,
266      <code>__hash__</code>,
267      <code>__new__</code>,
268      <code>__reduce__</code>,
269      <code>__reduce_ex__</code>,
270      <code>__repr__</code>,
271      <code>__setattr__</code>,
272      <code>__str__</code>
273      </p>
274    </td>
275  </tr>
276</table>
277<!-- ==================== PROPERTIES ==================== -->
278<a name="section-Properties"></a>
279<table class="summary" border="1" cellpadding="3"
280       cellspacing="0" width="100%" bgcolor="white">
281<tr bgcolor="#70b0f0" class="table-header">
282  <td colspan="2" class="table-header">
283    <table border="0" cellpadding="0" cellspacing="0" width="100%">
284      <tr valign="top">
285        <td align="left"><span class="table-header">Properties</span></td>
286        <td align="right" valign="top"
287         ><span class="options">[<a href="#section-Properties"
288         class="privatelink" onclick="toggle_private();"
289         >hide private</a>]</span></td>
290      </tr>
291    </table>
292  </td>
293</tr>
294  <tr>
295    <td colspan="2" class="summary">
296    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
297      <code>__class__</code>
298      </p>
299    </td>
300  </tr>
301</table>
302<!-- ==================== METHOD DETAILS ==================== -->
303<a name="section-MethodDetails"></a>
304<table class="details" border="1" cellpadding="3"
305       cellspacing="0" width="100%" bgcolor="white">
306<tr bgcolor="#70b0f0" class="table-header">
307  <td colspan="2" class="table-header">
308    <table border="0" cellpadding="0" cellspacing="0" width="100%">
309      <tr valign="top">
310        <td align="left"><span class="table-header">Method Details</span></td>
311        <td align="right" valign="top"
312         ><span class="options">[<a href="#section-MethodDetails"
313         class="privatelink" onclick="toggle_private();"
314         >hide private</a>]</span></td>
315      </tr>
316    </table>
317  </td>
318</tr>
319</table>
320<a name="__init__"></a>
321<div>
322<table class="details" border="1" cellpadding="3"
323       cellspacing="0" width="100%" bgcolor="white">
324<tr><td>
325  <table width="100%" cellpadding="0" cellspacing="0" border="0">
326  <tr valign="top"><td>
327  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
328        <span class="sig-arg">watch_manager</span>,
329        <span class="sig-arg">default_proc_fun</span>=<span class="sig-default">&lt;ProcessEvent&gt;</span>,
330        <span class="sig-arg">read_freq</span>=<span class="sig-default">0</span>,
331        <span class="sig-arg">treshold</span>=<span class="sig-default">0</span>,
332        <span class="sig-arg">timeout</span>=<span class="sig-default">None</span>)</span>
333    <br /><em class="fname">(Constructor)</em>
334  </h3>
335  </td><td align="right" valign="top"
336    ><span class="codelink"><a href="pyinotify-pysrc.html#Notifier.__init__">source&nbsp;code</a></span>&nbsp;
337    </td>
338  </table>
339 
340  Initialization. read_freq, treshold and timeout parameters are used
341  when looping.
342  <dl class="fields">
343    <dt>Parameters:</dt>
344    <dd><ul class="nomargin-top">
345        <li><strong class="pname"><code>watch_manager</code></strong> (WatchManager instance) - Watch Manager.</li>
346        <li><strong class="pname"><code>default_proc_fun</code></strong> (instance of ProcessEvent) - Default processing method.</li>
347        <li><strong class="pname"><code>read_freq</code></strong> (int) - if read_freq == 0, events are read asap, if read_freq is &gt; 
348          0, this thread sleeps max(0, read_freq - timeout) seconds. But if
349          timeout is None it can be different because poll is blocking
350          waiting for something to read.</li>
351        <li><strong class="pname"><code>treshold</code></strong> (int) - File descriptor will be read only if its size to read is &gt;=
352          treshold. If != 0, you likely want to use it in combination with
353          read_freq because without that you keep looping without really
354          reading anything and that until the amount to read is &gt;=
355          treshold. At least with read_freq you may sleep.</li>
356        <li><strong class="pname"><code>timeout</code></strong> (int) - see
357          http://docs.python.org/lib/poll-objects.html#poll-objects</li>
358    </ul></dd>
359    <dt>Overrides:
360      object.__init__
361    </dt>
362  </dl>
363</td></tr></table>
364</div>
365<a name="check_events"></a>
366<div>
367<table class="details" border="1" cellpadding="3"
368       cellspacing="0" width="100%" bgcolor="white">
369<tr><td>
370  <table width="100%" cellpadding="0" cellspacing="0" border="0">
371  <tr valign="top"><td>
372  <h3 class="epydoc"><span class="sig"><span class="sig-name">check_events</span>(<span class="sig-arg">self</span>)</span>
373  </h3>
374  </td><td align="right" valign="top"
375    ><span class="codelink"><a href="pyinotify-pysrc.html#Notifier.check_events">source&nbsp;code</a></span>&nbsp;
376    </td>
377  </table>
378 
379  Check for new events available to read, blocks up to timeout
380  milliseconds.
381  <dl class="fields">
382    <dt>Returns: bool</dt>
383        <dd>New events to read.</dd>
384  </dl>
385</td></tr></table>
386</div>
387<a name="process_events"></a>
388<div>
389<table class="details" border="1" cellpadding="3"
390       cellspacing="0" width="100%" bgcolor="white">
391<tr><td>
392  <table width="100%" cellpadding="0" cellspacing="0" border="0">