Notice: the grml team is migrating from Mercurial to Git.
Please visit git.grml.org instead!
| author | Michael Prokop <mika@grml.org> |
| Wed Jan 24 22:57:51 2007 +0100 (22 months ago) | |
| changeset 7 | 3ed6279a114c |
| manifest | 3ed6279a114c |
| parent 6 | 3d3fc7d793a4 |
| child 8 | e9bc7f5cf698 |
--- a/CHANGELOG Sun Jan 07 10:59:10 2007 +0100+++ b/CHANGELOG Wed Jan 24 22:57:51 2007 +0100@@ -1,3 +1,15 @@ 0.3.5 2007-01-09+0.4.0 2007-01-13+* based on inotify-cxx 0.7.0+* incrontab has a feature to find out supported event types (--types or -t)+* incrond now supports command line arguments+* incrond can be run on foreground (--foreground, -n)+* incrond can be simply stopped (--kill, -k)+* support for system tables (/etc/incron.d) added+* eaccess() replaced by euiaccess() (#0000125)+* each table now use its own inotify descriptor (#0000129)+* descriptors are closed on executing child processes++0.3.5 2007-01-09* based on inotify-cxx 0.6.3* a security bug related to access rights to watched files fixed (#0000119)
--- a/Makefile Sun Jan 07 10:59:10 2007 +0100+++ b/Makefile Wed Jan 24 22:57:51 2007 +0100@@ -1,6 +1,7 @@PREFIX = /usr/local-DATADIR = /var/spool/incron+USERDATADIR = /var/spool/incron+SYSDATADIR = /etc/incron.dMANPATH = /usr/share/manRELEASE = incron-`cat VERSION`RELEASEDIR = /tmp/$(RELEASE)@@ -46,7 +47,8 @@ install: all install-man[ -d $(PREFIX) ]$(INSTALL) -m 04755 -o $(USER) incrontab $(PREFIX)/bin/$(INSTALL) -m 0755 incrond $(PREFIX)/sbin/- $(INSTALL) -m 0755 -o $(USER) -d $(DATADIR)+ $(INSTALL) -m 0755 -o $(USER) -d $(USERDATADIR)+ $(INSTALL) -m 0755 -o $(USER) -d $(SYSDATADIR)install-man: incrontab.1 incrontab.5 incrond.8$(INSTALL) -m 0755 -d $(MANPATH)/man1
--- a/README Sun Jan 07 10:59:10 2007 +0100+++ b/README Wed Jan 24 22:57:51 2007 +0100@@ -84,6 +84,10 @@ It have to monitor all events on files i/tmp IN_ALL_EVENTS efg $@/$# $&+Since 0.4.0 also system tables are supported. They are located in+/etc/incron.d and their commands use root privileges. System tables+are intended to be changed directly (without incrontab).+5. Bugs, suggestionsTHIS PROGRAM IS AN ALPHA VERSION. IT PROBABLY CONTAINS BUGS AND
--- a/VERSION Sun Jan 07 10:59:10 2007 +0100+++ b/VERSION Wed Jan 24 22:57:51 2007 +0100@@ -1,1 +1,1 @@ 0.3.5-0.3.5+0.4.0
--- a/debian/changelog Sun Jan 07 10:59:10 2007 +0100+++ b/debian/changelog Wed Jan 24 22:57:51 2007 +0100@@ -1,3 +1,10 @@ incron (0.3.5-1) unstable; urgency=low+incron (0.4.0-1) unstable; urgency=low++ * New upstream release.+ * Add debian/watch (thanks for changes at webserver, Lukas Jelinek!)++ -- Michael Prokop <mika@grml.org> Wed, 24 Jan 2007 22:53:48 +0100+incron (0.3.5-1) unstable; urgency=low* Initial release.
--- a/doc/html/annotated.html Sun Jan 07 10:59:10 2007 +0100+++ b/doc/html/annotated.html Wed Jan 24 22:57:51 2007 +0100@@ -29,7 +29,7 @@<tr><td class="indexkey"><a class="el" href="classStringTokenizer.html">StringTokenizer</a></td><td class="indexvalue">Simple string tokenizer class </td></tr><tr><td class="indexkey"><a class="el" href="classUserTable.html">UserTable</a></td><td class="indexvalue">User table class </td></tr></table>-<hr size="1"><address style="align: right;"><small>Generated on Sat Jan 6 23:06:33 2007 for incron by +<hr size="1"><address style="align: right;"><small>Generated on Sat Jan 13 18:46:44 2007 for incron by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address></body>
--- a/doc/html/classEventDispatcher-members.html Sun Jan 07 10:59:10 2007 +0100+++ b/doc/html/classEventDispatcher-members.html Wed Jan 24 22:57:51 2007 +0100@@ -17,13 +17,14 @@<li><a href="functions.html"><span>Class Members</span></a></li></ul></div><h1>EventDispatcher Member List</h1>This is the complete list of members for <a class="el" href="classEventDispatcher.html">EventDispatcher</a>, including all inherited members.<p><table>- <tr class="memlist"><td><a class="el" href="classEventDispatcher.html#24e083068eebe67e31134c070651c774">DispatchEvent</a>(InotifyEvent &rEvt)</td><td><a class="el" href="classEventDispatcher.html">EventDispatcher</a></td><td></td></tr>- <tr class="memlist"><td><a class="el" href="classEventDispatcher.html#e2599b7237a5521bb089292f4b566c99">EventDispatcher</a>(Inotify *pIn)</td><td><a class="el" href="classEventDispatcher.html">EventDispatcher</a></td><td></td></tr>- <tr class="memlist"><td><a class="el" href="classEventDispatcher.html#dfbc3497f8dff679aaa172d80f6bbf1d">Register</a>(InotifyWatch *pWatch, UserTable *pTab)</td><td><a class="el" href="classEventDispatcher.html">EventDispatcher</a></td><td></td></tr>- <tr class="memlist"><td><a class="el" href="classEventDispatcher.html#6291128f9a82da9d2a5f53f31fba362c">Unregister</a>(InotifyWatch *pWatch)</td><td><a class="el" href="classEventDispatcher.html">EventDispatcher</a></td><td></td></tr>- <tr class="memlist"><td><a class="el" href="classEventDispatcher.html#f9a6ecb43ed13dc1d0e64b11b9a30e3d">UnregisterAll</a>(UserTable *pTab)</td><td><a class="el" href="classEventDispatcher.html">EventDispatcher</a></td><td></td></tr>- <tr class="memlist"><td><a class="el" href="classEventDispatcher.html#bb5f401014e87f03027d6c4450964e55">~EventDispatcher</a>()</td><td><a class="el" href="classEventDispatcher.html">EventDispatcher</a></td><td><code> [inline]</code></td></tr>-</table><hr size="1"><address style="align: right;"><small>Generated on Sat Jan 6 23:06:33 2007 for incron by + <tr class="memlist"><td><a class="el" href="classEventDispatcher.html#a85c268c8fa835ded477659ecd017ad4">EventDispatcher</a>(int iPipeFd, Inotify *pIn, InotifyWatch *pSys, InotifyWatch *pUser)</td><td><a class="el" href="classEventDispatcher.html">EventDispatcher</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classEventDispatcher.html#1309b15de686e9bdbf8f1ff8a1285e79">GetPollData</a>()</td><td><a class="el" href="classEventDispatcher.html">EventDispatcher</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classEventDispatcher.html#8ee04a2d54b7d15622dacc2d4bb2349f">GetSize</a>() const</td><td><a class="el" href="classEventDispatcher.html">EventDispatcher</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classEventDispatcher.html#c2b9520436761282001d8c5ea539482a">ProcessEvents</a>()</td><td><a class="el" href="classEventDispatcher.html">EventDispatcher</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classEventDispatcher.html#35f9789ceaf15a9cbeeae65717c0a068">Register</a>(UserTable *pTab)</td><td><a class="el" href="classEventDispatcher.html">EventDispatcher</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classEventDispatcher.html#6bd699c73e11db92ffc737ece3c30715">Unregister</a>(UserTable *pTab)</td><td><a class="el" href="classEventDispatcher.html">EventDispatcher</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classEventDispatcher.html#bb5f401014e87f03027d6c4450964e55">~EventDispatcher</a>()</td><td><a class="el" href="classEventDispatcher.html">EventDispatcher</a></td><td></td></tr>+</table><hr size="1"><address style="align: right;"><small>Generated on Sat Jan 13 18:46:44 2007 for incron by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address></body>
--- a/doc/html/classEventDispatcher.html Sun Jan 07 10:59:10 2007 +0100+++ b/doc/html/classEventDispatcher.html Wed Jan 24 22:57:51 2007 +0100@@ -24,122 +24,61 @@<a href="classEventDispatcher-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0"><tr><td></td></tr><tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>-<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classEventDispatcher.html#e2599b7237a5521bb089292f4b566c99">EventDispatcher</a> (<a class="el" href="classInotify.html">Inotify</a> *pIn)</td></tr>--<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#e2599b7237a5521bb089292f4b566c99"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classEventDispatcher.html#a85c268c8fa835ded477659ecd017ad4">EventDispatcher</a> (int iPipeFd, <a class="el" href="classInotify.html">Inotify</a> *pIn, <a class="el" href="classInotifyWatch.html">InotifyWatch</a> *pSys, <a class="el" href="classInotifyWatch.html">InotifyWatch</a> *pUser)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#a85c268c8fa835ded477659ecd017ad4"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classEventDispatcher.html#bb5f401014e87f03027d6c4450964e55">~EventDispatcher</a> ()</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <a href="#bb5f401014e87f03027d6c4450964e55"></a><br></td></tr>-<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classEventDispatcher.html#24e083068eebe67e31134c070651c774">DispatchEvent</a> (<a class="el" href="classInotifyEvent.html">InotifyEvent</a> &rEvt)</td></tr>--<tr><td class="mdescLeft"> </td><td class="mdescRight">Dispatches an event. <a href="#24e083068eebe67e31134c070651c774"></a><br></td></tr>-<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classEventDispatcher.html#dfbc3497f8dff679aaa172d80f6bbf1d">Register</a> (<a class="el" href="classInotifyWatch.html">InotifyWatch</a> *pWatch, <a class="el" href="classUserTable.html">UserTable</a> *pTab)</td></tr>--<tr><td class="mdescLeft"> </td><td class="mdescRight">Registers a watch for an user table. <a href="#dfbc3497f8dff679aaa172d80f6bbf1d"></a><br></td></tr>-<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classEventDispatcher.html#6291128f9a82da9d2a5f53f31fba362c">Unregister</a> (<a class="el" href="classInotifyWatch.html">InotifyWatch</a> *pWatch)</td></tr>--<tr><td class="mdescLeft"> </td><td class="mdescRight">Unregisters a watch. <a href="#6291128f9a82da9d2a5f53f31fba362c"></a><br></td></tr>-<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classEventDispatcher.html#f9a6ecb43ed13dc1d0e64b11b9a30e3d">UnregisterAll</a> (<a class="el" href="classUserTable.html">UserTable</a> *pTab)</td></tr>--<tr><td class="mdescLeft"> </td><td class="mdescRight">Unregisters all watches for an user table. <a href="#f9a6ecb43ed13dc1d0e64b11b9a30e3d"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classEventDispatcher.html#c2b9520436761282001d8c5ea539482a">ProcessEvents</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Processes events. <a href="#c2b9520436761282001d8c5ea539482a"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classEventDispatcher.html#35f9789ceaf15a9cbeeae65717c0a068">Register</a> (<a class="el" href="classUserTable.html">UserTable</a> *pTab)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Registers an user table. <a href="#35f9789ceaf15a9cbeeae65717c0a068"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classEventDispatcher.html#6bd699c73e11db92ffc737ece3c30715">Unregister</a> (<a class="el" href="classUserTable.html">UserTable</a> *pTab)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Unregisters an user table. <a href="#6bd699c73e11db92ffc737ece3c30715"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classEventDispatcher.html#8ee04a2d54b7d15622dacc2d4bb2349f">GetSize</a> () const</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the poll data size. <a href="#8ee04a2d54b7d15622dacc2d4bb2349f"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">pollfd * </td><td class="memItemRight" valign="bottom"><a class="el" href="classEventDispatcher.html#1309b15de686e9bdbf8f1ff8a1285e79">GetPollData</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the poll data. <a href="#1309b15de686e9bdbf8f1ff8a1285e79"></a><br></td></tr></table><hr><a name="_details"></a><h2>Detailed Description</h2>Event dispatcher class.<p>-This class distributes inotify events to appropriate user tables.+This class processes events and distributes them as needed.<p><hr><h2>Constructor & Destructor Documentation</h2>-<a class="anchor" name="e2599b7237a5521bb089292f4b566c99"></a><!-- doxytag: member="EventDispatcher::EventDispatcher" ref="e2599b7237a5521bb089292f4b566c99" args="(Inotify *pIn)" -->+<a class="anchor" name="a85c268c8fa835ded477659ecd017ad4"></a><!-- doxytag: member="EventDispatcher::EventDispatcher" ref="a85c268c8fa835ded477659ecd017ad4" args="(int iPipeFd, Inotify *pIn, InotifyWatch *pSys, InotifyWatch *pUser)" --><div class="memitem"><div class="memproto"><table class="memname"><tr><td class="memname">EventDispatcher::EventDispatcher </td><td>(</td>+ <td class="paramtype">int </td>+ <td class="paramname"> <em>iPipeFd</em>, </td>+ </tr>+ <tr>+ <td class="paramkey"></td>+ <td></td><td class="paramtype"><a class="el" href="classInotify.html">Inotify</a> * </td>- <td class="paramname"> <em>pIn</em> </td>- <td> ) </td>- <td width="100%"></td>- </tr>- </table>-</div>-<div class="memdoc">--<p>-Constructor.-<p>-<dl compact><dt><b>Parameters:</b></dt><dd>- <table border="0" cellspacing="2" cellpadding="0">- <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>pIn</em> </td><td>inotify object </td></tr>- </table>-</dl>--</div>-</div><p>-<a class="anchor" name="bb5f401014e87f03027d6c4450964e55"></a><!-- doxytag: member="EventDispatcher::~EventDispatcher" ref="bb5f401014e87f03027d6c4450964e55" args="()" -->-<div class="memitem">-<div class="memproto">- <table class="memname">- <tr>- <td class="memname">EventDispatcher::~EventDispatcher </td>- <td>(</td>- <td class="paramname"> </td>- <td> ) </td>- <td width="100%"><code> [inline]</code></td>- </tr>- </table>-</div>-<div class="memdoc">--<p>-Destructor.-<p>--</div>-</div><p>-<hr><h2>Member Function Documentation</h2>-<a class="anchor" name="24e083068eebe67e31134c070651c774"></a><!-- doxytag: member="EventDispatcher::DispatchEvent" ref="24e083068eebe67e31134c070651c774" args="(InotifyEvent &rEvt)" -->-<div class="memitem">-<div class="memproto">- <table class="memname">- <tr>- <td class="memname">void EventDispatcher::DispatchEvent </td>- <td>(</td>- <td class="paramtype"><a class="el" href="classInotifyEvent.html">InotifyEvent</a> & </td>- <td class="paramname"> <em>rEvt</em> </td>- <td> ) </td>- <td width="100%"></td>- </tr>- </table>-</div>-<div class="memdoc">--<p>-Dispatches an event.-<p>-<dl compact><dt><b>Parameters:</b></dt><dd>- <table border="0" cellspacing="2" cellpadding="0">- <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>rEvt</em> </td><td>inotify event </td></tr>- </table>-</dl>--</div>-</div><p>-<a class="anchor" name="dfbc3497f8dff679aaa172d80f6bbf1d"></a><!-- doxytag: member="EventDispatcher::Register" ref="dfbc3497f8dff679aaa172d80f6bbf1d" args="(InotifyWatch *pWatch, UserTable *pTab)" -->-<div class="memitem">-<div class="memproto">- <table class="memname">- <tr>- <td class="memname">void EventDispatcher::Register </td>- <td>(</td>+ <td class="paramname"> <em>pIn</em>, </td>+ </tr>+ <tr>+ <td class="paramkey"></td>+ <td></td><td class="paramtype"><a class="el" href="classInotifyWatch.html">InotifyWatch</a> * </td>- <td class="paramname"> <em>pWatch</em>, </td>- </tr>- <tr>- <td class="paramkey"></td>- <td></td>- <td class="paramtype"><a class="el" href="classUserTable.html">UserTable</a> * </td>- <td class="paramname"> <em>pTab</em></td><td> </td>+ <td class="paramname"> <em>pSys</em>, </td>+ </tr>+ <tr>+ <td class="paramkey"></td>+ <td></td>+ <td class="paramtype"><a class="el" href="classInotifyWatch.html">InotifyWatch</a> * </td>+ <td class="paramname"> <em>pUser</em></td><td> </td></tr><tr><td></td>@@ -151,50 +90,69 @@ Dispatches an event.<div class="memdoc"><p>-Registers a watch for an user table.-<p>-<dl compact><dt><b>Parameters:</b></dt><dd>- <table border="0" cellspacing="2" cellpadding="0">- <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>pWatch</em> </td><td>inotify watch </td></tr>- <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>pTab</em> </td><td>user table </td></tr>- </table>-</dl>--</div>-</div><p>-<a class="anchor" name="6291128f9a82da9d2a5f53f31fba362c"></a><!-- doxytag: member="EventDispatcher::Unregister" ref="6291128f9a82da9d2a5f53f31fba362c" args="(InotifyWatch *pWatch)" -->-<div class="memitem">-<div class="memproto">- <table class="memname">- <tr>- <td class="memname">void EventDispatcher::Unregister </td>- <td>(</td>- <td class="paramtype"><a class="el" href="classInotifyWatch.html">InotifyWatch</a> * </td>- <td class="paramname"> <em>pWatch</em> </td>- <td> ) </td>- <td width="100%"></td>- </tr>- </table>-</div>-<div class="memdoc">--<p>-Unregisters a watch.-<p>-<dl compact><dt><b>Parameters:</b></dt><dd>- <table border="0" cellspacing="2" cellpadding="0">- <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>pWatch</em> </td><td>inotify watch </td></tr>- </table>-</dl>--</div>-</div><p>-<a class="anchor" name="f9a6ecb43ed13dc1d0e64b11b9a30e3d"></a><!-- doxytag: member="EventDispatcher::UnregisterAll" ref="f9a6ecb43ed13dc1d0e64b11b9a30e3d" args="(UserTable *pTab)" -->-<div class="memitem">-<div class="memproto">- <table class="memname">- <tr>- <td class="memname">void EventDispatcher::UnregisterAll </td>+Constructor.+<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>iPipeFd</em> </td><td>pipe descriptor </td></tr>+ <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>pIn</em> </td><td>inotify object for table management </td></tr>+ <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>pSys</em> </td><td>watch for system tables </td></tr>+ <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>pUser</em> </td><td>watch for user tables </td></tr>+ </table>+</dl>++</div>+</div><p>+<a class="anchor" name="bb5f401014e87f03027d6c4450964e55"></a><!-- doxytag: member="EventDispatcher::~EventDispatcher" ref="bb5f401014e87f03027d6c4450964e55" args="()" -->+<div class="memitem">+<div class="memproto">+ <table class="memname">+ <tr>+ <td class="memname">EventDispatcher::~EventDispatcher </td>+ <td>(</td>+ <td class="paramname"> </td>+ <td> ) </td>+ <td width="100%"></td>+ </tr>+ </table>+</div>+<div class="memdoc">++<p>+Destructor.+<p>++</div>+</div><p>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="c2b9520436761282001d8c5ea539482a"></a><!-- doxytag: member="EventDispatcher::ProcessEvents" ref="c2b9520436761282001d8c5ea539482a" args="()" -->+<div class="memitem">+<div class="memproto">+ <table class="memname">+ <tr>+ <td class="memname">bool EventDispatcher::ProcessEvents </td>+ <td>(</td>+ <td class="paramname"> </td>+ <td> ) </td>+ <td width="100%"></td>+ </tr>+ </table>+</div>+<div class="memdoc">++<p>+Processes events.+<p>+<dl class="return" compact><dt><b>Returns:</b></dt><dd>pipe event occurred yes/no </dd></dl>++</div>+</div><p>+<a class="anchor" name="35f9789ceaf15a9cbeeae65717c0a068"></a><!-- doxytag: member="EventDispatcher::Register" ref="35f9789ceaf15a9cbeeae65717c0a068" args="(UserTable *pTab)" -->+<div class="memitem">+<div class="memproto">+ <table class="memname">+ <tr>+ <td class="memname">void EventDispatcher::Register </td><td>(</td><td class="paramtype"><a class="el" href="classUserTable.html">UserTable</a> * </td><td class="paramname"> <em>pTab</em> </td>@@ -206,19 +164,90 @@ Unregisters a watch.<div class="memdoc"><p>-Unregisters all watches for an user table.+Registers an user table.<p><dl compact><dt><b>Parameters:</b></dt><dd><table border="0" cellspacing="2" cellpadding="0"><tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>pTab</em> </td><td>user table </td></tr></table></dl>++</div>+</div><p>+<a class="anchor" name="6bd699c73e11db92ffc737ece3c30715"></a><!-- doxytag: member="EventDispatcher::Unregister" ref="6bd699c73e11db92ffc737ece3c30715" args="(UserTable *pTab)" -->+<div class="memitem">+<div class="memproto">+ <table class="memname">+ <tr>+ <td class="memname">void EventDispatcher::Unregister </td>+ <td>(</td>+ <td class="paramtype"><a class="el" href="classUserTable.html">UserTable</a> * </td>+ <td class="paramname"> <em>pTab</em> </td>+ <td> ) </td>+ <td width="100%"></td>+ </tr>+ </table>+</div>+<div class="memdoc">++<p>+Unregisters an user table.+<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>pTab</em> </td><td>user table </td></tr>+ </table>+</dl>++</div>+</div><p>+<a class="anchor" name="8ee04a2d54b7d15622dacc2d4bb2349f"></a><!-- doxytag: member="EventDispatcher::GetSize" ref="8ee04a2d54b7d15622dacc2d4bb2349f" args="() const" -->+<div class="memitem">+<div class="memproto">+ <table class="memname">+ <tr>+ <td class="memname">size_t EventDispatcher::GetSize </td>+ <td>(</td>+ <td class="paramname"> </td>+ <td> ) </td>+ <td width="100%"> const<code> [inline]</code></td>+ </tr>+ </table>+</div>+<div class="memdoc">++<p>+Returns the poll data size.+<p>+<dl class="return" compact><dt><b>Returns:</b></dt><dd>poll data size </dd></dl>++</div>+</div><p>+<a class="anchor" name="1309b15de686e9bdbf8f1ff8a1285e79"></a><!-- doxytag: member="EventDispatcher::GetPollData" ref="1309b15de686e9bdbf8f1ff8a1285e79" args="()" -->+<div class="memitem">+<div class="memproto">+ <table class="memname">+ <tr>+ <td class="memname">struct pollfd* EventDispatcher::GetPollData </td>+ <td>(</td>+ <td class="paramname"> </td>+ <td> ) </td>+ <td width="100%"><code> [inline]</code></td>+ </tr>+ </table>+</div>+<div class="memdoc">++<p>+Returns the poll data.+<p>+<dl class="return" compact><dt><b>Returns:</b></dt><dd>poll data </dd></dl></div></div><p><hr>The documentation for this class was generated from the following files:<ul><li><a class="el" href="usertable_8h-source.html">usertable.h</a><li><a class="el" href="usertable_8cpp.html">usertable.cpp</a></ul>-<hr size="1"><address style="align: right;"><small>Generated on Sat Jan 6 23:06:33 2007 for incron by +<hr size="1"><address style="align: right;"><small>Generated on Sat Jan 13 18:46:44 2007 for incron by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address></body>
--- a/doc/html/classInCronTab-members.html Sun Jan 07 10:59:10 2007 +0100+++ b/doc/html/classInCronTab-members.html Wed Jan 24 22:57:51 2007 +0100@@ -22,6 +22,7 @@<tr class="memlist"><td><a class="el" href="classInCronTab.html#de9a88efd643b547cbe6102b795d0106">Clear</a>()</td><td><a class="el" href="classInCronTab.html">InCronTab</a></td><td><code> [inline]</code></td></tr><tr class="memlist"><td><a class="el" href="classInCronTab.html#275fed43299d32c1d7b0be2aeb218c7c">GetCount</a>() const</td><td><a class="el" href="classInCronTab.html">InCronTab</a></td><td><code> [inline]</code></td></tr><tr class="memlist"><td><a class="el" href="classInCronTab.html#378b4042354c7d9b1c75d0dfe8f02e60">GetEntry</a>(int index)</td><td><a class="el" href="classInCronTab.html">InCronTab</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classInCronTab.html#e7c8836ec776278925100f60b9d31cf5">GetSystemTablePath</a>(const std::string &rName)</td><td><a class="el" href="classInCronTab.html">InCronTab</a></td><td><code> [static]</code></td></tr><tr class="memlist"><td><a class="el" href="classInCronTab.html#626b19bdc1a2c016f7287360c729744f">GetUserTablePath</a>(const std::string &rUser)</td><td><a class="el" href="classInCronTab.html">InCronTab</a></td><td><code> [static]</code></td></tr><tr class="memlist"><td><a class="el" href="classInCronTab.html#de621f047a78af4820b2c61eb30c0f14">InCronTab</a>()</td><td><a class="el" href="classInCronTab.html">InCronTab</a></td><td><code> [inline]</code></td></tr><tr class="memlist"><td><a class="el" href="classInCronTab.html#4c253bbadcc5dacd78cdcc14e55a5609">IsEmpty</a>() const</td><td><a class="el" href="classInCronTab.html">InCronTab</a></td><td><code> [inline]</code></td></tr>@@ -29,7 +30,7 @@<tr class="memlist"><td><a class="el" href="classInCronTab.html#2d47d7a637cdbdd48a5b44610e3a149b">m_tab</a></td><td><a class="el" href="classInCronTab.html">InCronTab</a></td><td><code> [protected]</code></td></tr><tr class="memlist"><td><a class="el" href="classInCronTab.html#c1bccf49a6cb27f8f40d8fe270f7f240">Save</a>(const std::string &rPath)</td><td><a class="el" href="classInCronTab.html">InCronTab</a></td><td></td></tr><tr class="memlist"><td><a class="el" href="classInCronTab.html#f207b31aa99823a503d96160aad433f5">~InCronTab</a>()</td><td><a class="el" href="classInCronTab.html">InCronTab</a></td><td><code> [inline]</code></td></tr>-</table><hr size="1"><address style="align: right;"><small>Generated on Sat Jan 6 23:06:33 2007 for incron by +</table><hr size="1"><address style="align: right;"><small>Generated on Sat Jan 13 18:46:44 2007 for incron by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address></body>
--- a/doc/html/classInCronTab.html Sun Jan 07 10:59:10 2007 +0100+++ b/doc/html/classInCronTab.html Wed Jan 24 22:57:51 2007 +0100@@ -58,6 +58,9 @@<tr><td class="memItemLeft" nowrap align="right" valign="top">static std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classInCronTab.html#626b19bdc1a2c016f7287360c729744f">GetUserTablePath</a> (const std::string &rUser)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Composes a path to an user incron table file. <a href="#626b19bdc1a2c016f7287360c729744f"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">static std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classInCronTab.html#e7c8836ec776278925100f60b9d31cf5">GetSystemTablePath</a> (const std::string &rName)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Composes a path to a system incron table file. <a href="#e7c8836ec776278925100f60b9d31cf5"></a><br></td></tr><tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">std::deque< <a class="el" href="classInCronTabEntry.html">InCronTabEntry</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classInCronTab.html#2d47d7a637cdbdd48a5b44610e3a149b">m_tab</a></td></tr>@@ -339,6 +342,35 @@ Composes a path to an user incron table</div></div><p>+<a class="anchor" name="e7c8836ec776278925100f60b9d31cf5"></a><!-- doxytag: member="InCronTab::GetSystemTablePath" ref="e7c8836ec776278925100f60b9d31cf5" args="(const std::string &rName)" -->+<div class="memitem">+<div class="memproto">+ <table class="memname">+ <tr>+ <td class="memname">std::string InCronTab::GetSystemTablePath </td>+ <td>(</td>+ <td class="paramtype">const std::string & </td>+ <td class="paramname"> <em>rName</em> </td>+ <td> ) </td>+ <td width="100%"><code> [static]</code></td>+ </tr>+ </table>+</div>+<div class="memdoc">++<p>+Composes a path to a system incron table file.+<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>rName</em> </td><td>table name (pseudouser) </td></tr>+ </table>+</dl>+<dl class="return" compact><dt><b>Returns:</b></dt><dd>path to the table file</dd></dl>+<dl class="attention" compact><dt><b>Attention:</b></dt><dd>No tests (existence, permission etc.) are done. </dd></dl>++</div>+</div><p><hr><h2>Member Data Documentation</h2><a class="anchor" name="2d47d7a637cdbdd48a5b44610e3a149b"></a><!-- doxytag: member="InCronTab::m_tab" ref="2d47d7a637cdbdd48a5b44610e3a149b" args="" --><div class="memitem">@@ -359,7 +391,7 @@ incron table</div><p><hr>The documentation for this class was generated from the following files:<ul><li><a class="el" href="incrontab_8h-source.html">incrontab.h</a><li><a class="el" href="incrontab_8cpp.html">incrontab.cpp</a></ul>-<hr size="1"><address style="align: right;"><small>Generated on Sat Jan 6 23:06:33 2007 for incron by +<hr size="1"><address style="align: right;"><small>Generated on Sat Jan 13 18:46:44 2007 for incron by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address></body>
--- a/doc/html/classInCronTabEntry-members.html Sun Jan 07 10:59:10 2007 +0100+++ b/doc/html/classInCronTabEntry-members.html Wed Jan 24 22:57:51 2007 +0100@@ -31,7 +31,7 @@<tr class="memlist"><td><a class="el" href="classInCronTabEntry.html#4142f0f0e717bc95d1805b4523333a50">Parse</a>(const std::string &rStr, InCronTabEntry &rEntry)</td><td><a class="el" href="classInCronTabEntry.html">InCronTabEntry</a></td><td><code> [static]</code></td></tr><tr class="memlist"><td><a class="el" href="classInCronTabEntry.html#f0e4948c3c3b0895bd7317081feeaf5f">ToString</a>() const</td><td><a class="el" href="classInCronTabEntry.html">InCronTabEntry</a></td><td></td></tr><tr class="memlist"><td><a class="el" href="classInCronTabEntry.html#5fbb806c73240819cba9edf59a0aaefd">~InCronTabEntry</a>()</td><td><a class="el" href="classInCronTabEntry.html">InCronTabEntry</a></td><td><code> [inline]</code></td></tr>-</table><hr size="1"><address style="align: right;"><small>Generated on Sat Jan 6 23:06:33 2007 for incron by +</table><hr size="1"><address style="align: right;"><small>Generated on Sat Jan 13 18:46:44 2007 for incron by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address></body>
--- a/doc/html/classInCronTabEntry.html Sun Jan 07 10:59:10 2007 +0100+++ b/doc/html/classInCronTabEntry.html Wed Jan 24 22:57:51 2007 +0100@@ -414,7 +414,7 @@ no loop yes/no</div><p><hr>The documentation for this class was generated from the following files:<ul><li><a class="el" href="incrontab_8h-source.html">incrontab.h</a><li><a class="el" href="incrontab_8cpp.html">incrontab.cpp</a></ul>-<hr size="1"><address style="align: right;"><small>Generated on Sat Jan 6 23:06:33 2007 for incron by +<hr size="1"><address style="align: right;"><small>Generated on Sat Jan 13 18:46:44 2007 for incron by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address></body>
--- a/doc/html/classInotify-members.html Sun Jan 07 10:59:10 2007 +0100+++ b/doc/html/classInotify-members.html Wed Jan 24 22:57:51 2007 +0100@@ -40,13 +40,14 @@<tr class="memlist"><td><a class="el" href="classInotify.html#ac1a52b2ff6bfec07021a44e55d496a6">Remove</a>(InotifyWatch &rWatch)</td><td><a class="el" href="classInotify.html">Inotify</a></td><td><code> [inline]</code></td></tr><tr class="memlist"><td><a class="el" href="classInotify.html#bc1fd5830ca561efb69bcd2283981741">RemoveAll</a>()</td><td><a class="el" href="classInotify.html">Inotify</a></td><td></td></tr><tr class="memlist"><td><a class="el" href="classInotify.html#734538233ba2136164f76f4df6c3654e">SetCapability</a>(InotifyCapability_t cap, uint32_t val)</td><td><a class="el" href="classInotify.html">Inotify</a></td><td><code> [static]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classInotify.html#124dd5816205900af61034d47ae65255">SetCloseOnExec</a>(bool fClOnEx)</td><td><a class="el" href="classInotify.html">Inotify</a></td><td></td></tr><tr class="memlist"><td><a class="el" href="classInotify.html#66d90ebfa516d4bd1463749def2b58f9">SetMaxEvents</a>(uint32_t val)</td><td><a class="el" href="classInotify.html">Inotify</a></td><td><code> [inline, static]</code></td></tr><tr class="memlist"><td><a class="el" href="classInotify.html#620c891962fe5acd26485c64e9b28d19">SetMaxInstances</a>(uint32_t val)</td><td><a class="el" href="classInotify.html">Inotify</a></td><td><code> [inline, static]</code></td></tr><tr class="memlist"><td><a class="el" href="classInotify.html#5064380cdb4a726ab33f3fa18d15c77a">SetMaxWatches</a>(uint32_t val)</td><td><a class="el" href="classInotify.html">Inotify</a></td><td><code> [inline, static]</code></td></tr><tr class="memlist"><td><a class="el" href="classInotify.html#b2c8ab8ad4322fb6f0dae0eae442402b">SetNonBlock</a>(bool fNonBlock)</td><td><a class="el" href="classInotify.html">Inotify</a></td><td></td></tr><tr class="memlist"><td><a class="el" href="classInotify.html#139c27c6643bb199619f3eae9b32e53b">WaitForEvents</a>(bool fNoIntr=false)</td><td><a class="el" href="classInotify.html">Inotify</a></td><td></td></tr><tr class="memlist"><td><a class="el" href="classInotify.html#f19dd5e491395673e4798eb9dbf5f682">~Inotify</a>()</td><td><a class="el" href="classInotify.html">Inotify</a></td><td></td></tr>-</table><hr size="1"><address style="align: right;"><small>Generated on Sat Jan 6 23:06:33 2007 for incron by +</table><hr size="1"><address style="align: right;"><small>Generated on Sat Jan 13 18:46:44 2007 for incron by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address></body>
--- a/doc/html/classInotify.html Sun Jan 07 10:59:10 2007 +0100+++ b/doc/html/classInotify.html Wed Jan 24 22:57:51 2007 +0100@@ -84,6 +84,9 @@<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classInotify.html#b2c8ab8ad4322fb6f0dae0eae442402b">SetNonBlock</a> (bool fNonBlock) throw (InotifyException)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Enables/disables non-blocking mode. <a href="#b2c8ab8ad4322fb6f0dae0eae442402b"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classInotify.html#124dd5816205900af61034d47ae65255">SetCloseOnExec</a> (bool fClOnEx) throw (InotifyException)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Enables/disables closing on exec. <a href="#124dd5816205900af61034d47ae65255"></a><br></td></tr><tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">static uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classInotify.html#70b3b57e8661fbb4c5bc404b86225c3b">GetCapability</a> (<a class="el" href="inotify-cxx_8h.html#bccd39d32dd83905178cf42edaae5c4d">InotifyCapability_t</a> cap) throw (InotifyException)</td></tr>@@ -680,6 +683,7 @@ Enables/disables non-blocking mode.Enables/disables non-blocking mode.<p>Use this mode if you want to monitor the descriptor (acquired thru <a class="el" href="classInotify.html#678271faf4799840ad71805163a24b13">GetDescriptor()</a>) in functions such as poll(), select() etc.<p>+Non-blocking mode is disabled by default.<p><dl compact><dt><b>Parameters:</b></dt><dd><table border="0" cellspacing="2" cellpadding="0"><tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>fNonBlock</em> </td><td>enable/disable non-blocking mode</td></tr>@@ -690,7 +694,42 @@ Use this mode if you want to monitor the<tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html">InotifyException</a></em> </td><td>thrown if setting mode failed</td></tr></table></dl>-<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classInotify.html#678271faf4799840ad71805163a24b13">GetDescriptor()</a> </dd></dl>+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classInotify.html#678271faf4799840ad71805163a24b13">GetDescriptor()</a>, <a class="el" href="classInotify.html#124dd5816205900af61034d47ae65255">SetCloseOnExec()</a> </dd></dl>++</div>+</div><p>+<a class="anchor" name="124dd5816205900af61034d47ae65255"></a><!-- doxytag: member="Inotify::SetCloseOnExec" ref="124dd5816205900af61034d47ae65255" args="(bool fClOnEx)" -->+<div class="memitem">+<div class="memproto">+ <table class="memname">+ <tr>+ <td class="memname">void Inotify::SetCloseOnExec </td>+ <td>(</td>+ <td class="paramtype">bool </td>+ <td class="paramname"> <em>fClOnEx</em> </td>+ <td> ) </td>+ <td width="100%"> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)</td>+ </tr>+ </table>+</div>+<div class="memdoc">++<p>+Enables/disables closing on exec.+<p>+Enable this if you want to close the descriptor when executing another program. Otherwise, the descriptor will be inherited.<p>+Closing on exec is disabled by default.<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>fClOnEx</em> </td><td>enable/disable closing on exec</td></tr>+ </table>+</dl>+<dl compact><dt><b>Exceptions:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html">InotifyException</a></em> </td><td>thrown if setting failed</td></tr>+ </table>+</dl>+<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classInotify.html#678271faf4799840ad71805163a24b13">GetDescriptor()</a>, <a class="el" href="classInotify.html#b2c8ab8ad4322fb6f0dae0eae442402b">SetNonBlock()</a> </dd></dl></div></div><p>@@ -970,7 +1009,7 @@ Sets the maximum number of inotify watch</div><p><hr>The documentation for this class was generated from the following files:<ul><li><a class="el" href="inotify-cxx_8h-source.html">inotify-cxx.h</a><li><a class="el" href="inotify-cxx_8cpp.html">inotify-cxx.cpp</a></ul>-<hr size="1"><address style="align: right;"><small>Generated on Sat Jan 6 23:06:33 2007 for incron by +<hr size="1"><address style="align: right;"><small>Generated on Sat Jan 13 18:46:44 2007 for incron by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address></body>
--- a/doc/html/classInotifyEvent-members.html Sun Jan 07 10:59:10 2007 +0100+++ b/doc/html/classInotifyEvent-members.html Wed Jan 24 22:57:51 2007 +0100@@ -32,7 +32,7 @@<tr class="memlist"><td><a class="el" href="classInotifyEvent.html#309ebf3c5b131522295185a926d551bb">IsType</a>(uint32_t uValue, uint32_t uType)</td><td><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td><code> [inline, static]</code></td></tr><tr class="memlist"><td><a class="el" href="classInotifyEvent.html#7fdee6664ec63ccc87ff1221abba9abc">IsType</a>(uint32_t uType) const</td><td><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td><code> [inline]</code></td></tr><tr class="memlist"><td><a class="el" href="classInotifyEvent.html#a48030da1d3a1b1741ca791c9e129888">~InotifyEvent</a>()</td><td><a class="el" href="classInotifyEvent.html">InotifyEvent</a></td><td><code> [inline]</code></td></tr>-</table><hr size="1"><address style="align: right;"><small>Generated on Sat Jan 6 23:06:33 2007 for incron by +</table><hr size="1"><address style="align: right;"><small>Generated on Sat Jan 13 18:46:44 2007 for incron by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address></body>
--- a/doc/html/classInotifyEvent.html Sun Jan 07 10:59:10 2007 +0100+++ b/doc/html/classInotifyEvent.html Wed Jan 24 22:57:51 2007 +0100@@ -480,7 +480,7 @@ Fills the string with all types containe</div><p><hr>The documentation for this class was generated from the following files:<ul><li><a class="el" href="inotify-cxx_8h-source.html">inotify-cxx.h</a><li><a class="el" href="inotify-cxx_8cpp.html">inotify-cxx.cpp</a></ul>-<hr size="1"><address style="align: right;"><small>Generated on Sat Jan 6 23:06:33 2007 for incron by +<hr size="1"><address style="align: right;"><small>Generated on Sat Jan 13 18:46:44 2007 for incron by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address></body>
--- a/doc/html/classInotifyException-members.html Sun Jan 07 10:59:10 2007 +0100+++ b/doc/html/classInotifyException-members.html Wed Jan 24 22:57:51 2007 +0100@@ -24,7 +24,7 @@<tr class="meml