Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > a964702347d726c5f8ba742f8b9d5908 > files > 44

incron-0.5.9-1mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>incron: UserTable Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>UserTable Class Reference</h1><!-- doxytag: class="UserTable" -->User table class.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="usertable_8h-source.html">usertable.h</a>&gt;</code>
<p>

<p>
<a href="classUserTable-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">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUserTable.html#e9c8e2d54f6d131fa0c46a724cb5ab94">UserTable</a> (<a class="el" href="classEventDispatcher.html">EventDispatcher</a> *pEd, const std::string &amp;rUser, bool fSysTable)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor.  <a href="#e9c8e2d54f6d131fa0c46a724cb5ab94"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUserTable.html#0ef59efae87ec768c26290982408a8fa">~UserTable</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor.  <a href="#0ef59efae87ec768c26290982408a8fa"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUserTable.html#08f1b2836694e3f8c5b13c890a08df9f">Load</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Loads the table.  <a href="#08f1b2836694e3f8c5b13c890a08df9f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUserTable.html#e24db4723aa83fc966ee60f0bb942eac">Dispose</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes all entries from the table.  <a href="#e24db4723aa83fc966ee60f0bb942eac"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUserTable.html#795e26a707b148a092f85d1f2da02196">OnEvent</a> (<a class="el" href="classInotifyEvent.html">InotifyEvent</a> &amp;rEvt)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Processes an inotify event.  <a href="#795e26a707b148a092f85d1f2da02196"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUserTable.html#f4dff514ae940802e062f067835c83bf">MayAccess</a> (const std::string &amp;rPath, bool fNoFollow) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks whether the user may access a file.  <a href="#f4dff514ae940802e062f067835c83bf"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUserTable.html#1f614a23987028538cded38c2c4c15db">IsSystem</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks whether it is a system table.  <a href="#1f614a23987028538cded38c2c4c15db"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classInotify.html">Inotify</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUserTable.html#2ae939d2227dc168554d1b13aaeddcbb">GetInotify</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the related inotify object.  <a href="#2ae939d2227dc168554d1b13aaeddcbb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUserTable.html#e22959dbccee9b31d8c732c65e660391">RunAsUser</a> (char *const *argv) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Runs a program as the table's user.  <a href="#e22959dbccee9b31d8c732c65e660391"></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 void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUserTable.html#69af22ff6f6b2dc109e227f56731aceb">FinishDone</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cleans-up all zombie child processes and enables disabled watches.  <a href="#69af22ff6f6b2dc109e227f56731aceb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classUserTable.html#fa3c0512fa34aaea9d0b2909ca07595b">CheckUser</a> (const char *user)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks whether an user exists and has permission to use incron.  <a href="#fa3c0512fa34aaea9d0b2909ca07595b"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
User table class. 
<p>
This class processes inotify events for an user. It creates child processes which do appropriate actions as defined in the user table file. <hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="e9c8e2d54f6d131fa0c46a724cb5ab94"></a><!-- doxytag: member="UserTable::UserTable" ref="e9c8e2d54f6d131fa0c46a724cb5ab94" args="(EventDispatcher *pEd, const std::string &amp;rUser, bool fSysTable)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">UserTable::UserTable           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classEventDispatcher.html">EventDispatcher</a> *&nbsp;</td>
          <td class="paramname"> <em>pEd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>rUser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>fSysTable</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></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>&nbsp;</td><td valign="top"><em>pEd</em>&nbsp;</td><td>event dispatcher </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>rUser</em>&nbsp;</td><td>user name </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>fSysTable</em>&nbsp;</td><td>system table yes/no </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="0ef59efae87ec768c26290982408a8fa"></a><!-- doxytag: member="UserTable::~UserTable" ref="0ef59efae87ec768c26290982408a8fa" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">UserTable::~UserTable           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Destructor. 
<p>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="08f1b2836694e3f8c5b13c890a08df9f"></a><!-- doxytag: member="UserTable::Load" ref="08f1b2836694e3f8c5b13c890a08df9f" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UserTable::Load           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Loads the table. 
<p>
All loaded entries have their inotify watches and are registered for event dispatching. If loading fails the table remains empty. 
</div>
</div><p>
<a class="anchor" name="e24db4723aa83fc966ee60f0bb942eac"></a><!-- doxytag: member="UserTable::Dispose" ref="e24db4723aa83fc966ee60f0bb942eac" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UserTable::Dispose           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Removes all entries from the table. 
<p>
All entries are unregistered from the event dispatcher and their watches are destroyed. 
</div>
</div><p>
<a class="anchor" name="795e26a707b148a092f85d1f2da02196"></a><!-- doxytag: member="UserTable::OnEvent" ref="795e26a707b148a092f85d1f2da02196" args="(InotifyEvent &amp;rEvt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UserTable::OnEvent           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classInotifyEvent.html">InotifyEvent</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>rEvt</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Processes an inotify event. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>rEvt</em>&nbsp;</td><td>inotify event </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="69af22ff6f6b2dc109e227f56731aceb"></a><!-- doxytag: member="UserTable::FinishDone" ref="69af22ff6f6b2dc109e227f56731aceb" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UserTable::FinishDone           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Cleans-up all zombie child processes and enables disabled watches. 
<p>
<dl class="attention" compact><dt><b>Attention:</b></dt><dd>This method must be called AFTER processing all events which has been caused by the processes. </dd></dl>

</div>
</div><p>
<a class="anchor" name="f4dff514ae940802e062f067835c83bf"></a><!-- doxytag: member="UserTable::MayAccess" ref="f4dff514ae940802e062f067835c83bf" args="(const std::string &amp;rPath, bool fNoFollow) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool UserTable::MayAccess           </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>rPath</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>fNoFollow</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks whether the user may access a file. 
<p>
Any access right (RWX) is sufficient.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>rPath</em>&nbsp;</td><td>absolute file path </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>fNoFollow</em>&nbsp;</td><td>don't follow a symbolic link </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>true = access granted, false = otherwise </dd></dl>

</div>
</div><p>
<a class="anchor" name="1f614a23987028538cded38c2c4c15db"></a><!-- doxytag: member="UserTable::IsSystem" ref="1f614a23987028538cded38c2c4c15db" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool UserTable::IsSystem           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks whether it is a system table. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>true = system table, false = user table </dd></dl>

</div>
</div><p>
<a class="anchor" name="2ae939d2227dc168554d1b13aaeddcbb"></a><!-- doxytag: member="UserTable::GetInotify" ref="2ae939d2227dc168554d1b13aaeddcbb" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classInotify.html">Inotify</a>* UserTable::GetInotify           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the related inotify object. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>related inotify object </dd></dl>

</div>
</div><p>
<a class="anchor" name="fa3c0512fa34aaea9d0b2909ca07595b"></a><!-- doxytag: member="UserTable::CheckUser" ref="fa3c0512fa34aaea9d0b2909ca07595b" args="(const char *user)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static bool UserTable::CheckUser           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>user</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks whether an user exists and has permission to use incron. 
<p>
It searches for the given user name in the user database. If it failes it returns 'false'. Otherwise it checks permission files for this user (see InCronTab::CheckUser()).<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>user</em>&nbsp;</td><td>user name </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>true = user has permission to use incron, false = otherwise</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd>InCronTab::CheckUser() </dd></dl>

</div>
</div><p>
<a class="anchor" name="e22959dbccee9b31d8c732c65e660391"></a><!-- doxytag: member="UserTable::RunAsUser" ref="e22959dbccee9b31d8c732c65e660391" args="(char *const *argv) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UserTable::RunAsUser           </td>
          <td>(</td>
          <td class="paramtype">char *const *&nbsp;</td>
          <td class="paramname"> <em>argv</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Runs a program as the table's user. 
<p>
<dl class="attention" compact><dt><b>Attention:</b></dt><dd>Don't call from the main process (before forking)! </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>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun Jun 21 22:27:24 2009 for incron by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>