/incron-0.5.9/doc/html/inotify-cxx_8h.html
HTML | 366 lines | 317 code | 48 blank | 1 comment | 0 complexity | 9eabd3268cf4f8b1f69f2bbb93fc458d MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.1
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3<title>incron: inotify-cxx.h File Reference</title>
4<link href="doxygen.css" rel="stylesheet" type="text/css">
5<link href="tabs.css" rel="stylesheet" type="text/css">
6</head><body>
7<!-- Generated by Doxygen 1.5.6 -->
8<div class="navigation" id="top">
9 <div class="tabs">
10 <ul>
11 <li><a href="index.html"><span>Main Page</span></a></li>
12 <li><a href="annotated.html"><span>Classes</span></a></li>
13 <li class="current"><a href="files.html"><span>Files</span></a></li>
14 </ul>
15 </div>
16</div>
17<div class="contents">
18<h1>inotify-cxx.h File Reference</h1>inotify C++ interface header <a href="#_details">More...</a>
19<p>
20<code>#include <stdint.h></code><br>
21<code>#include <string></code><br>
22<code>#include <deque></code><br>
23<code>#include <map></code><br>
24<code>#include <sys/syscall.h></code><br>
25<code>#include <sys/inotify.h></code><br>
26<code>#include <sys/inotify-syscalls.h></code><br>
27
28<p>
29<a href="inotify-cxx_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
30<tr><td></td></tr>
31<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
32<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyException.html">InotifyException</a></td></tr>
33
34<tr><td class="mdescLeft"> </td><td class="mdescRight">Class for inotify exceptions. <a href="classInotifyException.html#_details">More...</a><br></td></tr>
35<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td></tr>
36
37<tr><td class="mdescLeft"> </td><td class="mdescRight">inotify event class <a href="classInotifyEvent.html#_details">More...</a><br></td></tr>
38<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classInotifyWatch.html">InotifyWatch</a></td></tr>
39
40<tr><td class="mdescLeft"> </td><td class="mdescRight">inotify watch class <a href="classInotifyWatch.html#_details">More...</a><br></td></tr>
41<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classInotify.html">Inotify</a></td></tr>
42
43<tr><td class="mdescLeft"> </td><td class="mdescRight">inotify class <a href="classInotify.html#_details">More...</a><br></td></tr>
44<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
45<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="inotify-cxx_8h.html#f64b4cc985ba26f31a9cb242153a5014">INOTIFY_EVENT_SIZE</a> (sizeof(struct inotify_event))</td></tr>
46
47<tr><td class="mdescLeft"> </td><td class="mdescRight">Event struct size. <a href="#f64b4cc985ba26f31a9cb242153a5014"></a><br></td></tr>
48<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="inotify-cxx_8h.html#a84911f8e42d71161b60d4a28940abb4">INOTIFY_BUFLEN</a> (1024 * (INOTIFY_EVENT_SIZE + 16))</td></tr>
49
50<tr><td class="mdescLeft"> </td><td class="mdescRight">Event buffer length. <a href="#a84911f8e42d71161b60d4a28940abb4"></a><br></td></tr>
51<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="inotify-cxx_8h.html#fe6b93f7e09db7022f1f9dd102932e12">IN_EXC_MSG</a>(msg) (std::string(__PRETTY_FUNCTION__) + ": " + msg)</td></tr>
52
53<tr><td class="mdescLeft"> </td><td class="mdescRight">Helper macro for creating exception messages. <a href="#fe6b93f7e09db7022f1f9dd102932e12"></a><br></td></tr>
54<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="inotify-cxx_8h.html#904d25c0fd931e1bad4f9d5cd346a766">IN_LOCK_DECL</a></td></tr>
55
56<tr><td class="mdescLeft"> </td><td class="mdescRight">inotify-cxx thread safety <a href="#904d25c0fd931e1bad4f9d5cd346a766"></a><br></td></tr>
57<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="inotify-cxx_8h.html#981aa546075fba39715fd2f63a41f575">IN_LOCK_INIT</a></td></tr>
58
59<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="inotify-cxx_8h.html#08422ec66fb587c1684afbaa575a53dd">IN_LOCK_DONE</a></td></tr>
60
61<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="inotify-cxx_8h.html#963a97dc42487e86715b4e04639b0db8">IN_READ_BEGIN</a></td></tr>
62
63<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="inotify-cxx_8h.html#0b82080ab6709175341b97e1f3c3955d">IN_READ_END</a></td></tr>
64
65<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="inotify-cxx_8h.html#5c6a5be1898ef17662795cc4b420c851">IN_READ_END_NOTHROW</a></td></tr>
66
67<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="inotify-cxx_8h.html#c3a6d87ace9403f7ac58f931bbcd9599">IN_WRITE_BEGIN</a></td></tr>
68
69<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="inotify-cxx_8h.html#f8aeac51b3b4ef56f1791c5c1a2e9cf5">IN_WRITE_END</a></td></tr>
70
71<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="inotify-cxx_8h.html#7e68c4884137939c5e3301f40c198dc7">IN_WRITE_END_NOTHROW</a></td></tr>
72
73<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
74<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::map< int32_t, <br>
75<a class="el" href="classInotifyWatch.html">InotifyWatch</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="inotify-cxx_8h.html#e6b5ebcb4e0d6a9f5ca8da26bc00cc2a">IN_WATCH_MAP</a></td></tr>
76
77<tr><td class="mdescLeft"> </td><td class="mdescRight">Mapping from watch descriptors to watch objects. <a href="#e6b5ebcb4e0d6a9f5ca8da26bc00cc2a"></a><br></td></tr>
78<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::map< std::string, <br>
79<a class="el" href="classInotifyWatch.html">InotifyWatch</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="inotify-cxx_8h.html#5dd7761ff5a6b7cc7271950aebb7ddf6">IN_WP_MAP</a></td></tr>
80
81<tr><td class="mdescLeft"> </td><td class="mdescRight">Mapping from paths to watch objects. <a href="#5dd7761ff5a6b7cc7271950aebb7ddf6"></a><br></td></tr>
82<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
83<tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d">InotifyCapability_t</a> { <a class="el" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d18e969c9c44523b38a13b0a207286dd1">IN_MAX_EVENTS</a> = 0,
84<a class="el" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d43cc45296a9afe5cb68f568176608dd9">IN_MAX_INSTANCES</a> = 1,
85<a class="el" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d594390780d2bdcec064c00aec1f20429">IN_MAX_WATCHES</a> = 2
86 }</td></tr>
87
88<tr><td class="mdescLeft"> </td><td class="mdescRight">inotify capability/limit identifiers <a href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d">More...</a><br></td></tr>
89</table>
90<hr><a name="_details"></a><h2>Detailed Description</h2>
91inotify C++ interface header
92<p>
93inotify C++ interface<p>
94Copyright (C) 2006, 2007, 2008 Lukas Jelinek, <<a href="mailto:lukas@aiken.cz">lukas@aiken.cz</a>><p>
95This program is free software; you can redistribute it and/or modify it under the terms of one of the following licenses:<p>
96<ul>
97<li>1. X11-style license (see LICENSE-X11) </li>
98<li>2. GNU Lesser General Public License, version 2.1 (see LICENSE-LGPL) </li>
99<li>3. GNU General Public License, version 2 (see LICENSE-GPL)</li>
100</ul>
101If you want to help with choosing the best license for you, please visit <a href="http://www.gnu.org/licenses/license-list.html.">http://www.gnu.org/licenses/license-list.html.</a> <hr><h2>Define Documentation</h2>
102<a class="anchor" name="fe6b93f7e09db7022f1f9dd102932e12"></a><!-- doxytag: member="inotify-cxx.h::IN_EXC_MSG" ref="fe6b93f7e09db7022f1f9dd102932e12" args="(msg)" -->
103<div class="memitem">
104<div class="memproto">
105 <table class="memname">
106 <tr>
107 <td class="memname">#define IN_EXC_MSG </td>
108 <td>(</td>
109 <td class="paramtype">msg </td>
110 <td class="paramname"> </td>
111 <td> ) </td>
112 <td> (std::string(__PRETTY_FUNCTION__) + ": " + msg)</td>
113 </tr>
114 </table>
115</div>
116<div class="memdoc">
117
118<p>
119Helper macro for creating exception messages.
120<p>
121It prepends the message by the function name.
122</div>
123</div><p>
124<a class="anchor" name="904d25c0fd931e1bad4f9d5cd346a766"></a><!-- doxytag: member="inotify-cxx.h::IN_LOCK_DECL" ref="904d25c0fd931e1bad4f9d5cd346a766" args="" -->
125<div class="memitem">
126<div class="memproto">
127 <table class="memname">
128 <tr>
129 <td class="memname">#define IN_LOCK_DECL </td>
130 </tr>
131 </table>
132</div>
133<div class="memdoc">
134
135<p>
136inotify-cxx thread safety
137<p>
138If this symbol is defined you can use this interface safely threaded applications. Remember that it slightly degrades performance.<p>
139Even if INOTIFY_THREAD_SAFE is defined some classes stay unsafe. If you must use them (must you?) in more than one thread concurrently you need to implement explicite locking.<p>
140You need not to define INOTIFY_THREAD_SAFE in that cases where the application is multithreaded but all the inotify infrastructure will be managed only in one thread. This is the recommended way.<p>
141Locking may fail (it is very rare but not impossible). In this case an exception is thrown. But if unlocking fails in case of an error it does nothing (this failure is ignored).
142</div>
143</div><p>
144<a class="anchor" name="08422ec66fb587c1684afbaa575a53dd"></a><!-- doxytag: member="inotify-cxx.h::IN_LOCK_DONE" ref="08422ec66fb587c1684afbaa575a53dd" args="" -->
145<div class="memitem">
146<div class="memproto">
147 <table class="memname">
148 <tr>
149 <td class="memname">#define IN_LOCK_DONE </td>
150 </tr>
151 </table>
152</div>
153<div class="memdoc">
154
155<p>
156
157</div>
158</div><p>
159<a class="anchor" name="981aa546075fba39715fd2f63a41f575"></a><!-- doxytag: member="inotify-cxx.h::IN_LOCK_INIT" ref="981aa546075fba39715fd2f63a41f575" args="" -->
160<div class="memitem">
161<div class="memproto">
162 <table class="memname">
163 <tr>
164 <td class="memname">#define IN_LOCK_INIT </td>
165 </tr>
166 </table>
167</div>
168<div class="memdoc">
169
170<p>
171
172</div>
173</div><p>
174<a class="anchor" name="963a97dc42487e86715b4e04639b0db8"></a><!-- doxytag: member="inotify-cxx.h::IN_READ_BEGIN" ref="963a97dc42487e86715b4e04639b0db8" args="" -->
175<div class="memitem">
176<div class="memproto">
177 <table class="memname">
178 <tr>
179 <td class="memname">#define IN_READ_BEGIN </td>
180 </tr>
181 </table>
182</div>
183<div class="memdoc">
184
185<p>
186
187</div>
188</div><p>
189<a class="anchor" name="0b82080ab6709175341b97e1f3c3955d"></a><!-- doxytag: member="inotify-cxx.h::IN_READ_END" ref="0b82080ab6709175341b97e1f3c3955d" args="" -->
190<div class="memitem">
191<div class="memproto">
192 <table class="memname">
193 <tr>
194 <td class="memname">#define IN_READ_END </td>
195 </tr>
196 </table>
197</div>
198<div class="memdoc">
199
200<p>
201
202</div>
203</div><p>
204<a class="anchor" name="5c6a5be1898ef17662795cc4b420c851"></a><!-- doxytag: member="inotify-cxx.h::IN_READ_END_NOTHROW" ref="5c6a5be1898ef17662795cc4b420c851" args="" -->
205<div class="memitem">
206<div class="memproto">
207 <table class="memname">
208 <tr>
209 <td class="memname">#define IN_READ_END_NOTHROW </td>
210 </tr>
211 </table>
212</div>
213<div class="memdoc">
214
215<p>
216
217</div>
218</div><p>
219<a class="anchor" name="c3a6d87ace9403f7ac58f931bbcd9599"></a><!-- doxytag: member="inotify-cxx.h::IN_WRITE_BEGIN" ref="c3a6d87ace9403f7ac58f931bbcd9599" args="" -->
220<div class="memitem">
221<div class="memproto">
222 <table class="memname">
223 <tr>
224 <td class="memname">#define IN_WRITE_BEGIN </td>
225 </tr>
226 </table>
227</div>
228<div class="memdoc">
229
230<p>
231
232</div>
233</div><p>
234<a class="anchor" name="f8aeac51b3b4ef56f1791c5c1a2e9cf5"></a><!-- doxytag: member="inotify-cxx.h::IN_WRITE_END" ref="f8aeac51b3b4ef56f1791c5c1a2e9cf5" args="" -->
235<div class="memitem">
236<div class="memproto">
237 <table class="memname">
238 <tr>
239 <td class="memname">#define IN_WRITE_END </td>
240 </tr>
241 </table>
242</div>
243<div class="memdoc">
244
245<p>
246
247</div>
248</div><p>
249<a class="anchor" name="7e68c4884137939c5e3301f40c198dc7"></a><!-- doxytag: member="inotify-cxx.h::IN_WRITE_END_NOTHROW" ref="7e68c4884137939c5e3301f40c198dc7" args="" -->
250<div class="memitem">
251<div class="memproto">
252 <table class="memname">
253 <tr>
254 <td class="memname">#define IN_WRITE_END_NOTHROW </td>
255 </tr>
256 </table>
257</div>
258<div class="memdoc">
259
260<p>
261
262</div>
263</div><p>
264<a class="anchor" name="a84911f8e42d71161b60d4a28940abb4"></a><!-- doxytag: member="inotify-cxx.h::INOTIFY_BUFLEN" ref="a84911f8e42d71161b60d4a28940abb4" args="" -->
265<div class="memitem">
266<div class="memproto">
267 <table class="memname">
268 <tr>
269 <td class="memname">#define INOTIFY_BUFLEN (1024 * (INOTIFY_EVENT_SIZE + 16)) </td>
270 </tr>
271 </table>
272</div>
273<div class="memdoc">
274
275<p>
276Event buffer length.
277<p>
278
279</div>
280</div><p>
281<a class="anchor" name="f64b4cc985ba26f31a9cb242153a5014"></a><!-- doxytag: member="inotify-cxx.h::INOTIFY_EVENT_SIZE" ref="f64b4cc985ba26f31a9cb242153a5014" args="" -->
282<div class="memitem">
283<div class="memproto">
284 <table class="memname">
285 <tr>
286 <td class="memname">#define INOTIFY_EVENT_SIZE (sizeof(struct inotify_event)) </td>
287 </tr>
288 </table>
289</div>
290<div class="memdoc">
291
292<p>
293Event struct size.
294<p>
295
296</div>
297</div><p>
298<hr><h2>Typedef Documentation</h2>
299<a class="anchor" name="e6b5ebcb4e0d6a9f5ca8da26bc00cc2a"></a><!-- doxytag: member="inotify-cxx.h::IN_WATCH_MAP" ref="e6b5ebcb4e0d6a9f5ca8da26bc00cc2a" args="" -->
300<div class="memitem">
301<div class="memproto">
302 <table class="memname">
303 <tr>
304 <td class="memname">typedef std::map<int32_t, <a class="el" href="classInotifyWatch.html">InotifyWatch</a>*> <a class="el" href="inotify-cxx_8h.html#e6b5ebcb4e0d6a9f5ca8da26bc00cc2a">IN_WATCH_MAP</a> </td>
305 </tr>
306 </table>
307</div>
308<div class="memdoc">
309
310<p>
311Mapping from watch descriptors to watch objects.
312<p>
313
314</div>
315</div><p>
316<a class="anchor" name="5dd7761ff5a6b7cc7271950aebb7ddf6"></a><!-- doxytag: member="inotify-cxx.h::IN_WP_MAP" ref="5dd7761ff5a6b7cc7271950aebb7ddf6" args="" -->
317<div class="memitem">
318<div class="memproto">
319 <table class="memname">
320 <tr>
321 <td class="memname">typedef std::map<std::string, <a class="el" href="classInotifyWatch.html">InotifyWatch</a>*> <a class="el" href="inotify-cxx_8h.html#5dd7761ff5a6b7cc7271950aebb7ddf6">IN_WP_MAP</a> </td>
322 </tr>
323 </table>
324</div>
325<div class="memdoc">
326
327<p>
328Mapping from paths to watch objects.
329<p>
330
331</div>
332</div><p>
333<hr><h2>Enumeration Type Documentation</h2>
334<a class="anchor" name="bccd39d32dd83905178cf42edaae5c4d"></a><!-- doxytag: member="inotify-cxx.h::InotifyCapability_t" ref="bccd39d32dd83905178cf42edaae5c4d" args="" -->
335<div class="memitem">
336<div class="memproto">
337 <table class="memname">
338 <tr>
339 <td class="memname">enum <a class="el" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d">InotifyCapability_t</a> </td>
340 </tr>
341 </table>
342</div>
343<div class="memdoc">
344
345<p>
346inotify capability/limit identifiers
347<p>
348<dl compact><dt><b>Enumerator: </b></dt><dd>
349<table border="0" cellspacing="2" cellpadding="0">
350<tr><td valign="top"><em><a class="anchor" name="bccd39d32dd83905178cf42edaae5c4d18e969c9c44523b38a13b0a207286dd1"></a><!-- doxytag: member="IN_MAX_EVENTS" ref="bccd39d32dd83905178cf42edaae5c4d18e969c9c44523b38a13b0a207286dd1" args="" -->IN_MAX_EVENTS</em> </td><td>
351max. events in the kernel queue </td></tr>
352<tr><td valign="top"><em><a class="anchor" name="bccd39d32dd83905178cf42edaae5c4d43cc45296a9afe5cb68f568176608dd9"></a><!-- doxytag: member="IN_MAX_INSTANCES" ref="bccd39d32dd83905178cf42edaae5c4d43cc45296a9afe5cb68f568176608dd9" args="" -->IN_MAX_INSTANCES</em> </td><td>
353max. inotify file descriptors per process </td></tr>
354<tr><td valign="top"><em><a class="anchor" name="bccd39d32dd83905178cf42edaae5c4d594390780d2bdcec064c00aec1f20429"></a><!-- doxytag: member="IN_MAX_WATCHES" ref="bccd39d32dd83905178cf42edaae5c4d594390780d2bdcec064c00aec1f20429" args="" -->IN_MAX_WATCHES</em> </td><td>
355max. watches per file descriptor </td></tr>
356</table>
357</dl>
358
359</div>
360</div><p>
361</div>
362<hr size="1"><address style="text-align: right;"><small>Generated on Sun Jun 21 22:27:24 2009 for incron by
363<a href="http://www.doxygen.org/index.html">
364<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
365</body>
366</html>