<!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: icd-main.cpp File 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 Page</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> </div> <div class="contents"> <h1>icd-main.cpp File Reference</h1>inotify cron daemon main file <a href="#_details">More...</a> <p> <code>#include <map></code><br> <code>#include <signal.h></code><br> <code>#include <wait.h></code><br> <code>#include <fcntl.h></code><br> <code>#include <pwd.h></code><br> <code>#include <dirent.h></code><br> <code>#include <syslog.h></code><br> <code>#include <errno.h></code><br> <code>#include <sys/poll.h></code><br> <code>#include <sys/stat.h></code><br> <code>#include <cstring></code><br> <code>#include "<a class="el" href="inotify-cxx_8h-source.html">inotify-cxx.h</a>"</code><br> <code>#include "<a class="el" href="appinst_8h-source.html">appinst.h</a>"</code><br> <code>#include "<a class="el" href="appargs_8h-source.html">appargs.h</a>"</code><br> <code>#include "<a class="el" href="incron_8h-source.html">incron.h</a>"</code><br> <code>#include "<a class="el" href="incrontab_8h-source.html">incrontab.h</a>"</code><br> <code>#include "<a class="el" href="usertable_8h-source.html">usertable.h</a>"</code><br> <code>#include "<a class="el" href="incroncfg_8h-source.html">incroncfg.h</a>"</code><br> <table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Defines</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#1b84812e74f21a986bc5aa8d33c27710">INCRON_LOG_OPTS</a> (LOG_CONS | LOG_PID)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Logging options (console as fallback, log PID). <a href="#1b84812e74f21a986bc5aa8d33c27710"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#9c4a692d77625a6e2c89a4859ffbcaf4">INCRON_LOG_FACIL</a> LOG_CRON</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Logging facility (use CRON). <a href="#9c4a692d77625a6e2c89a4859ffbcaf4"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#78420617decce797effe9015f9871fc4">INCROND_VERSION</a> INCROND_NAME " " INCRON_VERSION</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">incrond version string <a href="#78420617decce797effe9015f9871fc4"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#937d4f25f3142b6b23e87db51ce923cc">INCROND_DESCRIPTION</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">incrontab description string <a href="#937d4f25f3142b6b23e87db51ce923cc"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#a009c75345b3ef62a1eea04fb3435031">INCROND_HELP</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">incrontab help string <a href="#a009c75345b3ef62a1eea04fb3435031"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#e2b69e649a6b4428ec11bdd0a260f20d">CHILD_PIPE_BUF_LEN</a> 32</td></tr> <tr><td colspan="2"><br><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#49430e2d0ab1d2554ee2f4719f124453">on_signal</a> (int signo)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Handles a signal. <a href="#49430e2d0ab1d2554ee2f4719f124453"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#6d41c37c974d655525f705b6c6f0716e">load_tables</a> (<a class="el" href="classEventDispatcher.html">EventDispatcher</a> *pEd) throw (InotifyException)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Attempts to load all (user and system) incron tables. <a href="#6d41c37c974d655525f705b6c6f0716e"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#ad2b62ecc78cde29f5c17023b7f3dbbf">free_tables</a> (<a class="el" href="classEventDispatcher.html">EventDispatcher</a> *pEd)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Deallocates all memory used by incron tables and unregisters them from the dispatcher. <a href="#ad2b62ecc78cde29f5c17023b7f3dbbf"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#290979d4c24417b39e7ae8c1274ba3e9">prepare_pipe</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Prepares a 'dead/done child' notification pipe. <a href="#290979d4c24417b39e7ae8c1274ba3e9"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#51f34ab639073cd212dad9f8ab39c01a">init_poll_array</a> (struct pollfd pfd[], int pipefd, int infd)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Checks whether a parameter string is a specific command. <a href="#51f34ab639073cd212dad9f8ab39c01a"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#3c04138a5bfe5d72780bb7e82a18e627">main</a> (int argc, char **argv)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Main application function. <a href="#3c04138a5bfe5d72780bb7e82a18e627"></a><br></td></tr> <tr><td colspan="2"><br><h2>Variables</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="usertable_8h.html#9aa598e8878c4709e214b51047e52e13">SUT_MAP</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#7b1aaf113e44f11e01cf42487aeb5359">g_ut</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">User name to user table mapping table. <a href="#7b1aaf113e44f11e01cf42487aeb5359"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">volatile bool </td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#1295917a6eebc00317fc77da160096fa">g_fFinish</a> = false</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Finish program yes/no. <a href="#1295917a6eebc00317fc77da160096fa"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#4d8a4d0f07d2d9d35fcad5176d85422f">g_cldPipe</a> [2]</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Pipe for notifying about dead children. <a href="#4d8a4d0f07d2d9d35fcad5176d85422f"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">char </td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#396871ab1873161138a2e5d330b0c9c0">g_cldPipeBuf</a> [CHILD_PIPE_BUF_LEN]</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#9b04c4f885c4831357ef60072756a130">g_daemon</a> = true</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Daemonize true/false. <a href="#9b04c4f885c4831357ef60072756a130"></a><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> inotify cron daemon main file <p> inotify cron system<p> Copyright (C) 2006, 2007, 2008 Lukas Jelinek, <<a href="mailto:lukas@aiken.cz">lukas@aiken.cz</a>><p> This program is free software; you can use it, redistribute it and/or modify it under the terms of the GNU General Public License, version 2 (see LICENSE-GPL). <hr><h2>Define Documentation</h2> <a class="anchor" name="e2b69e649a6b4428ec11bdd0a260f20d"></a><!-- doxytag: member="icd-main.cpp::CHILD_PIPE_BUF_LEN" ref="e2b69e649a6b4428ec11bdd0a260f20d" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define CHILD_PIPE_BUF_LEN 32 </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="9c4a692d77625a6e2c89a4859ffbcaf4"></a><!-- doxytag: member="icd-main.cpp::INCRON_LOG_FACIL" ref="9c4a692d77625a6e2c89a4859ffbcaf4" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define INCRON_LOG_FACIL LOG_CRON </td> </tr> </table> </div> <div class="memdoc"> <p> Logging facility (use CRON). <p> </div> </div><p> <a class="anchor" name="1b84812e74f21a986bc5aa8d33c27710"></a><!-- doxytag: member="icd-main.cpp::INCRON_LOG_OPTS" ref="1b84812e74f21a986bc5aa8d33c27710" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define INCRON_LOG_OPTS (LOG_CONS | LOG_PID) </td> </tr> </table> </div> <div class="memdoc"> <p> Logging options (console as fallback, log PID). <p> </div> </div><p> <a class="anchor" name="937d4f25f3142b6b23e87db51ce923cc"></a><!-- doxytag: member="icd-main.cpp::INCROND_DESCRIPTION" ref="937d4f25f3142b6b23e87db51ce923cc" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define INCROND_DESCRIPTION </td> </tr> </table> </div> <div class="memdoc"> <p> <b>Value:</b><div class="fragment"><pre class="fragment"><span class="stringliteral">"incrond - inotify cron daemon\n"</span> \ <span class="stringliteral">"(c) Lukas Jelinek, 2006, 2007, 2008"</span> </pre></div>incrontab description string <p> </div> </div><p> <a class="anchor" name="a009c75345b3ef62a1eea04fb3435031"></a><!-- doxytag: member="icd-main.cpp::INCROND_HELP" ref="a009c75345b3ef62a1eea04fb3435031" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define INCROND_HELP </td> </tr> </table> </div> <div class="memdoc"> <p> <b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="icd-main_8cpp.html#937d4f25f3142b6b23e87db51ce923cc" title="incrontab description string">INCROND_DESCRIPTION</a> <span class="stringliteral">"\n\n"</span> \ <span class="stringliteral">"usage: incrond [<options>]\n\n"</span> \ <span class="stringliteral">"<operation> may be one of the following:\n"</span> \ <span class="stringliteral">"These options may be used:\n"</span> \ <span class="stringliteral">" -?, --about gives short information about program\n"</span> \ <span class="stringliteral">" -h, --help prints this help text\n"</span> \ <span class="stringliteral">" -n, --foreground runs on foreground (no daemonizing)\n"</span> \ <span class="stringliteral">" -k, --kill terminates running instance of incrond\n"</span> \ <span class="stringliteral">" -f <FILE>, --config=<FILE> overrides default configuration file (requires root privileges)\n"</span> \ <span class="stringliteral">" -V, --version prints program version\n\n"</span> \ <span class="stringliteral">"For reporting bugs please use http://bts.aiken.cz\n"</span> </pre></div>incrontab help string <p> </div> </div><p> <a class="anchor" name="78420617decce797effe9015f9871fc4"></a><!-- doxytag: member="icd-main.cpp::INCROND_VERSION" ref="78420617decce797effe9015f9871fc4" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define INCROND_VERSION INCROND_NAME " " INCRON_VERSION </td> </tr> </table> </div> <div class="memdoc"> <p> incrond version string <p> </div> </div><p> <hr><h2>Function Documentation</h2> <a class="anchor" name="ad2b62ecc78cde29f5c17023b7f3dbbf"></a><!-- doxytag: member="icd-main.cpp::free_tables" ref="ad2b62ecc78cde29f5c17023b7f3dbbf" args="(EventDispatcher *pEd)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void free_tables </td> <td>(</td> <td class="paramtype"><a class="el" href="classEventDispatcher.html">EventDispatcher</a> * </td> <td class="paramname"> <em>pEd</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Deallocates all memory used by incron tables and unregisters them from the dispatcher. <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>pEd</em> </td><td>event dispatcher </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="51f34ab639073cd212dad9f8ab39c01a"></a><!-- doxytag: member="icd-main.cpp::init_poll_array" ref="51f34ab639073cd212dad9f8ab39c01a" args="(struct pollfd pfd[], int pipefd, int infd)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void init_poll_array </td> <td>(</td> <td class="paramtype">struct pollfd </td> <td class="paramname"> <em>pfd</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>pipefd</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>infd</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Checks whether a parameter string is a specific command. <p> The string is accepted if it equals either the short or long form of the command.<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>s</em> </td><td>checked string </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>shortCmd</em> </td><td>short form of command </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>longCmd</em> </td><td>long form of command </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>true = string accepted, false = otherwise Initializes a poll array. </dd></dl> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[out]</tt> </td><td valign="top"><em>pfd</em> </td><td>poll structure array </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>pipefd</em> </td><td>pipe file descriptor </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>infd</em> </td><td>inotify infrastructure file descriptor </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="6d41c37c974d655525f705b6c6f0716e"></a><!-- doxytag: member="icd-main.cpp::load_tables" ref="6d41c37c974d655525f705b6c6f0716e" args="(EventDispatcher *pEd)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void load_tables </td> <td>(</td> <td class="paramtype"><a class="el" href="classEventDispatcher.html">EventDispatcher</a> * </td> <td class="paramname"> <em>pEd</em> </td> <td> ) </td> <td> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)</td> </tr> </table> </div> <div class="memdoc"> <p> Attempts to load all (user and system) incron tables. <p> Loaded tables are registered for processing events.<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>pEd</em> </td><td>inotify event dispatcher</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" title="Class for inotify exceptions.">InotifyException</a></em> </td><td>thrown if base table directory cannot be read </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="3c04138a5bfe5d72780bb7e82a18e627"></a><!-- doxytag: member="icd-main.cpp::main" ref="3c04138a5bfe5d72780bb7e82a18e627" args="(int argc, char **argv)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int main </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>argc</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char ** </td> <td class="paramname"> <em>argv</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Main application function. <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>argc</em> </td><td>argument count </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>argv</em> </td><td>argument array </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, 1 on error</dd></dl> <dl class="attention" compact><dt><b>Attention:</b></dt><dd>In daemon mode, it finishes immediately. </dd></dl> </div> </div><p> <a class="anchor" name="49430e2d0ab1d2554ee2f4719f124453"></a><!-- doxytag: member="icd-main.cpp::on_signal" ref="49430e2d0ab1d2554ee2f4719f124453" args="(int signo)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void on_signal </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>signo</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Handles a signal. <p> For SIGTERM and SIGINT it sets the program finish variable. For SIGCHLD it writes a character into the notification pipe (this is a workaround made due to disability to reliably wait for dead children).<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>signo</em> </td><td>signal number </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="290979d4c24417b39e7ae8c1274ba3e9"></a><!-- doxytag: member="icd-main.cpp::prepare_pipe" ref="290979d4c24417b39e7ae8c1274ba3e9" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void prepare_pipe </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Prepares a 'dead/done child' notification pipe. <p> This function returns no value at all and on error it throws an exception. </div> </div><p> <hr><h2>Variable Documentation</h2> <a class="anchor" name="4d8a4d0f07d2d9d35fcad5176d85422f"></a><!-- doxytag: member="icd-main.cpp::g_cldPipe" ref="4d8a4d0f07d2d9d35fcad5176d85422f" args="[2]" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int <a class="el" href="icd-main_8cpp.html#4d8a4d0f07d2d9d35fcad5176d85422f">g_cldPipe</a>[2] </td> </tr> </table> </div> <div class="memdoc"> <p> Pipe for notifying about dead children. <p> </div> </div><p> <a class="anchor" name="396871ab1873161138a2e5d330b0c9c0"></a><!-- doxytag: member="icd-main.cpp::g_cldPipeBuf" ref="396871ab1873161138a2e5d330b0c9c0" args="[CHILD_PIPE_BUF_LEN]" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char <a class="el" href="icd-main_8cpp.html#396871ab1873161138a2e5d330b0c9c0">g_cldPipeBuf</a>[CHILD_PIPE_BUF_LEN] </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="9b04c4f885c4831357ef60072756a130"></a><!-- doxytag: member="icd-main.cpp::g_daemon" ref="9b04c4f885c4831357ef60072756a130" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="icd-main_8cpp.html#9b04c4f885c4831357ef60072756a130">g_daemon</a> = true </td> </tr> </table> </div> <div class="memdoc"> <p> Daemonize true/false. <p> </div> </div><p> <a class="anchor" name="1295917a6eebc00317fc77da160096fa"></a><!-- doxytag: member="icd-main.cpp::g_fFinish" ref="1295917a6eebc00317fc77da160096fa" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">volatile bool <a class="el" href="usertable_8cpp.html#1295917a6eebc00317fc77da160096fa">g_fFinish</a> = false </td> </tr> </table> </div> <div class="memdoc"> <p> Finish program yes/no. <p> </div> </div><p> <a class="anchor" name="7b1aaf113e44f11e01cf42487aeb5359"></a><!-- doxytag: member="icd-main.cpp::g_ut" ref="7b1aaf113e44f11e01cf42487aeb5359" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="usertable_8h.html#9aa598e8878c4709e214b51047e52e13">SUT_MAP</a> <a class="el" href="usertable_8cpp.html#7b1aaf113e44f11e01cf42487aeb5359">g_ut</a> </td> </tr> </table> </div> <div class="memdoc"> <p> User name to user table mapping table. <p> </div> </div><p> </div> <hr size="1"><address style="text-align: right;"><small>Generated on Sun Jun 21 22:27:24 2009 for incron by <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>