diff options
Diffstat (limited to '')
-rw-r--r-- | docs/doxygen/nel/a03647.html | 1078 |
1 files changed, 1078 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a03647.html b/docs/doxygen/nel/a03647.html new file mode 100644 index 00000000..c86effcd --- /dev/null +++ b/docs/doxygen/nel/a03647.html @@ -0,0 +1,1078 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> +<title>NeL: NLMISC::ICommand class Reference</title> +<link href="doxygen.css" rel="stylesheet" type="text/css"> +</head><body> +<!-- Generated by Doxygen 1.3.6 --> +<div class="qindex"> <form class="search" action="search.php" method="get"> +<a class="qindex" href="main.html">Main Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related Pages</a> | <span class="search"><u>S</u>earch for <input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div> +<h1>NLMISC::ICommand Class Reference</h1><code>#include <<a class="el" href="a05585.html">command.h</a>></code> +<p> +<p>Inheritance diagram for NLMISC::ICommand: +<p><center><img src="a03647.png" usemap="#NLMISC::ICommand_map" border="0" alt=""></center> +<map name="NLMISC::ICommand_map"> +<area href="a03648.html" alt="NLMISC::IVariable" shape="rect" coords="89,56,258,80"> +<area href="a03646.html" alt="NLMISC::CVariable< T >" shape="rect" coords="0,112,169,136"> +<area href="a03650.html" alt="NLMISC::CVariablePtr< T >" shape="rect" coords="179,112,348,136"> +</map> +<hr><a name="_details"></a><h2>Detailed Description</h2> +Create a function that can be call in realtime. Don't use this class directly but use the macro NLMISC_COMMAND <dl compact><dt><b>Author:</b></dt><dd>Vianney Lecroart <p> +Nevrax France </dd></dl> +<dl compact><dt><b>Date:</b></dt><dd>2001 </dd></dl> + +<p> + +<p> +Definition at line <a class="el" href="a05585.html#l00094">94</a> of file <a class="el" href="a05585.html">command.h</a>.<table border=0 cellpadding=0 cellspacing=0> +<tr><td></td></tr> +<tr><td colspan=2><br><h2>Public Types</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::map< std::string,<br> + <a class="el" href="a03647.html">ICommand</a> * > </td><td class="memItemRight" valign=bottom><a class="el" href="a03647.html#NLMISC_1_1IVariablew1">TCommand</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>enum </td><td class="memItemRight" valign=bottom><a class="el" href="a03647.html#NLMISC_1_1IVariablew2">TType</a> { <a class="el" href="a03647.html#NLMISC_1_1IVariablew2NLMISC_1_1IVariablew3">Unknown</a>, +<a class="el" href="a03647.html#NLMISC_1_1IVariablew2NLMISC_1_1IVariablew0">Command</a>, +<a class="el" href="a03647.html#NLMISC_1_1IVariablew2NLMISC_1_1IVariablew4">Variable</a> + }</td></tr> + +<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a03647.html#NLMISC_1_1ICommanda0">execute</a> (const std::vector< std::string > &args, <a class="el" href="a02813.html">NLMISC::CLog</a> &log, bool quiet, bool human=true)=0</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>const std::string & </td><td class="memItemRight" valign=bottom><a class="el" href="a03647.html#NLMISC_1_1IVariablea2">getName</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top> </td><td class="memItemRight" valign=bottom><a class="el" href="a03647.html#NLMISC_1_1ICommanda2">ICommand</a> (const char *commandName, const char *commandHelp, const char *commandArgs)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#NLMISC_1_1ICommanda2"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual </td><td class="memItemRight" valign=bottom><a class="el" href="a03647.html#NLMISC_1_1ICommanda3">~ICommand</a> ()</td></tr> + +<tr><td colspan=2><br><h2>Static Public Member Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03647.html#NLMISC_1_1IVariablee0">execute</a> (const std::string &commandWithArgs, <a class="el" href="a02813.html">NLMISC::CLog</a> &log, bool quiet=false, bool human=true)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a03647.html#NLMISC_1_1IVariablee1">exists</a> (std::string &commandName)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">returns true if the command exists <a href="#NLMISC_1_1IVariablee1"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03647.html#NLMISC_1_1IVariablee2">expand</a> (std::string &commandName, <a class="el" href="a02813.html">NLMISC::CLog</a> &log=*<a class="el" href="a05378.html#a12">InfoLog</a>)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a03647.html#NLMISC_1_1IVariablee4">isCommand</a> (const std::string &str)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">if the string begin with an upper case, it s a variable, otherwise, it s a command <a href="#NLMISC_1_1IVariablee4"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03647.html#NLMISC_1_1IVariablee5">serialCommands</a> (<a class="el" href="a02270.html">IStream</a> &f)</td></tr> + +<tr><td colspan=2><br><h2>Data Fields</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>std::string </td><td class="memItemRight" valign=bottom><a class="el" href="a03647.html#NLMISC_1_1IVariableo0">CommandArgs</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>std::string </td><td class="memItemRight" valign=bottom><a class="el" href="a03647.html#NLMISC_1_1IVariableo1">HelpString</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03647.html#NLMISC_1_1IVariablew2">TType</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a03647.html#NLMISC_1_1IVariableo2">Type</a></td></tr> + +<tr><td colspan=2><br><h2>Static Public Attributes</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03647.html#NLMISC_1_1IVariablew1">TCommand</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a03647.html#NLMISC_1_1IVariables0">Commands</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a03647.html#NLMISC_1_1IVariables1">CommandsInit</a></td></tr> + +<tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>std::string </td><td class="memItemRight" valign=bottom><a class="el" href="a03647.html#NLMISC_1_1IVariablep0">_CommandName</a></td></tr> + +<tr><td colspan=2><br><h2>Friends</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03647.html#NLMISC_1_1IVariablen0">cbVarChanged</a> (<a class="el" href="a02402.html">CConfigFile::CVar</a> &var)</td></tr> + +</table> +<hr><h2>Member Typedef Documentation</h2> +<a class="anchor" name="NLMISC_1_1IVariablew1" doxytag="NLMISC::ICommand::TCommand" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> typedef std::map<std::string, <a class="el" href="a03647.html">ICommand</a> *> <a class="el" href="a03647.html#NLMISC_1_1IVariablew1">NLMISC::ICommand::TCommand</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05585.html#l00116">116</a> of file <a class="el" href="a05585.html">command.h</a>. +<p> +Referenced by <a class="el" href="a05584.html#l00038">ICommand()</a>. </td> + </tr> +</table> +<hr><h2>Member Enumeration Documentation</h2> +<a class="anchor" name="NLMISC_1_1IVariablew2" doxytag="NLMISC::ICommand::TType" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> enum <a class="el" href="a03647.html#NLMISC_1_1IVariablew2">NLMISC::ICommand::TType</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +<dl compact><dt><b>Enumeration values: </b></dt><dd> +<table border=0 cellspacing=2 cellpadding=0> +<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1IVariablew2NLMISC_1_1IVariablew3" doxytag="Unknown" ></a>Unknown</em> </td><td> +</td></tr> +<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1IVariablew2NLMISC_1_1IVariablew0" doxytag="Command" ></a>Command</em> </td><td> +</td></tr> +<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1IVariablew2NLMISC_1_1IVariablew4" doxytag="Variable" ></a>Variable</em> </td><td> +</td></tr> +</table> +</dl> + +<p> +Definition at line <a class="el" href="a05585.html#l00111">111</a> of file <a class="el" href="a05585.html">command.h</a>. +<p> +<div class="fragment"><pre>00111 { <a class="code" href="a03647.html#NLMISC_1_1IVariablew2NLMISC_1_1IVariablew3">Unknown</a>, <a class="code" href="a03647.html#NLMISC_1_1IVariablew2NLMISC_1_1IVariablew0">Command</a>, <a class="code" href="a03647.html#NLMISC_1_1IVariablew2NLMISC_1_1IVariablew4">Variable</a> }; +</pre></div> </td> + </tr> +</table> +<hr><h2>Constructor & Destructor Documentation</h2> +<a class="anchor" name="NLMISC_1_1ICommanda2" doxytag="NLMISC::ICommand::ICommand" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> NLMISC::ICommand::ICommand </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const char * </td> + <td class="mdname" nowrap> <em>commandName</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const char * </td> + <td class="mdname" nowrap> <em>commandHelp</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const char * </td> + <td class="mdname" nowrap> <em>commandArgs</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Constructor. +<p> + +<p> +Definition at line <a class="el" href="a05584.html#l00038">38</a> of file <a class="el" href="a05584.html">command.cpp</a>. +<p> +References <a class="el" href="a05585.html#l00149">_CommandName</a>, <a class="el" href="a03647.html#NLMISC_1_1IVariablew2NLMISC_1_1IVariablew0">Command</a>, <a class="el" href="a05585.html#l00108">CommandArgs</a>, <a class="el" href="a05584.html#l00035">Commands</a>, <a class="el" href="a05584.html#l00036">CommandsInit</a>, <a class="el" href="a05585.html#l00107">HelpString</a>, <a class="el" href="a05622.html#l00460">nlstopex</a>, and <a class="el" href="a05585.html#l00116">TCommand</a>. +<p> +<div class="fragment"><pre>00039 { +00040 <span class="comment">// self registration</span> +00041 +00042 <span class="keywordflow">if</span> (!<a class="code" href="a03647.html#NLMISC_1_1IVariables1">CommandsInit</a>) +00043 { +00044 <span class="comment">//nlinfo ("create map");</span> +00045 <a class="code" href="a03647.html#NLMISC_1_1IVariables0">Commands</a> = <span class="keyword">new</span> <a class="code" href="a03647.html#NLMISC_1_1IVariablew1">TCommand</a>; +00046 <a class="code" href="a03647.html#NLMISC_1_1IVariables1">CommandsInit</a> = <span class="keyword">true</span>; +00047 } +00048 +00049 TCommand::iterator comm = (*Commands).find(commandName); +00050 +00051 <span class="keywordflow">if</span> (comm != (*Commands).end ()) +00052 { +00053 <span class="comment">// 2 commands have the same name</span> +00054 <a class="code" href="a04199.html#a14">nlstopex</a> ((<span class="stringliteral">"There are 2 commands that have the same name in the project (command name '%s'), skip the second definition"</span>, commandName)); +00055 } +00056 <span class="keywordflow">else</span> +00057 { +00058 <span class="comment">// insert the new command in the map</span> +00059 <span class="comment">//nlinfo ("add command '%s'", commandName);</span> +00060 <a class="code" href="a03647.html#NLMISC_1_1IVariableo1">HelpString</a> = commandHelp; +00061 <a class="code" href="a03647.html#NLMISC_1_1IVariableo0">CommandArgs</a> = commandArgs; +00062 <a class="code" href="a03647.html#NLMISC_1_1IVariablep0">_CommandName</a> = commandName; +00063 <a class="code" href="a03647.html#NLMISC_1_1IVariableo2">Type</a> = <a class="code" href="a03647.html#NLMISC_1_1IVariablew2NLMISC_1_1IVariablew0">Command</a>; +00064 (*Commands)[commandName] = <span class="keyword">this</span>; +00065 } +00066 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1ICommanda3" doxytag="NLMISC::ICommand::~ICommand" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> NLMISC::ICommand::~<a class="el" href="a03647.html">ICommand</a> </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05584.html#l00068">68</a> of file <a class="el" href="a05584.html">command.cpp</a>. +<p> +References <a class="el" href="a05584.html#l00035">Commands</a>, <a class="el" href="a05584.html#l00036">CommandsInit</a>, and <a class="el" href="a05622.html#l00416">nlstop</a>. +<p> +<div class="fragment"><pre>00069 { +00070 <span class="comment">// self deregistration</span> +00071 +00072 <span class="keywordflow">if</span> (!<a class="code" href="a03647.html#NLMISC_1_1IVariables1">CommandsInit</a>) +00073 { +00074 <span class="comment">// should never happen</span> +00075 <a class="code" href="a04199.html#a12">nlstop</a>; +00076 <span class="keywordflow">return</span>; +00077 } +00078 +00079 <span class="comment">// find the command</span> +00080 +00081 <span class="keywordflow">for</span> (TCommand::iterator comm = (*Commands).begin(); comm != (*Commands).end(); comm++) +00082 { +00083 <span class="keywordflow">if</span> ((*comm).second == <span class="keyword">this</span>) +00084 { +00085 <span class="comment">//printf("remove command\n");</span> +00086 (*Commands).erase (comm); +00087 +00088 <span class="keywordflow">if</span> ((*Commands).size() == 0) +00089 { +00090 <span class="comment">// if the commands map is empty, destroy it</span> +00091 <span class="comment">//printf("delete map\n");</span> +00092 <span class="keyword">delete</span> <a class="code" href="a03647.html#NLMISC_1_1IVariables0">Commands</a>; +00093 <a class="code" href="a03647.html#NLMISC_1_1IVariables1">CommandsInit</a> = <span class="keyword">false</span>; +00094 } +00095 +00096 <span class="keywordflow">return</span>; +00097 } +00098 } +00099 <span class="comment">// commands is not found</span> +00100 <a class="code" href="a04199.html#a12">nlstop</a>; +00101 } +</pre></div> </td> + </tr> +</table> +<hr><h2>Member Function Documentation</h2> +<a class="anchor" name="NLMISC_1_1IVariablee0" doxytag="NLMISC::ICommand::execute" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::ICommand::execute </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const std::string & </td> + <td class="mdname" nowrap> <em>commandWithArgs</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02813.html">NLMISC::CLog</a> & </td> + <td class="mdname" nowrap> <em>log</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>bool </td> + <td class="mdname" nowrap> <em>quiet</em> = false, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>bool </td> + <td class="mdname" nowrap> <em>human</em> = true</td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [static]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Executes the command and display output to the log <dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>quiet</em> </td><td>true if you don't want to display the "executing the command ..." </td></tr> + </table> +</dl> + +<p> +Definition at line <a class="el" href="a05584.html#l00103">103</a> of file <a class="el" href="a05584.html">command.cpp</a>. +<p> +References <a class="el" href="a05943.html#l00323">NLMISC::CLog::displayNL()</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00104 { +00105 <span class="keywordflow">if</span> (!quiet) log.<a class="code" href="a02813.html#NLNET_1_1CNetLoga7">displayNL</a> (<span class="stringliteral">"Executing command : '%s'"</span>, commandWithArgs.c_str()); +00106 +00107 <span class="comment">// convert the buffer into string vector</span> +00108 vector<pair<string, vector<string> > > commands; +00109 +00110 <span class="keywordtype">bool</span> firstArg = <span class="keyword">true</span>; +00111 <a class="code" href="a04558.html#a15">uint</a> i = 0; +00112 <span class="keywordflow">while</span> (<span class="keyword">true</span>) +00113 { +00114 <span class="comment">// skip whitespace</span> +00115 <span class="keywordflow">while</span> (<span class="keyword">true</span>) +00116 { +00117 <span class="keywordflow">if</span> (i == commandWithArgs.size()) +00118 { +00119 <span class="keywordflow">goto</span> end; +00120 } +00121 <span class="keywordflow">if</span> (commandWithArgs[i] != <span class="charliteral">' '</span> && commandWithArgs[i] != <span class="charliteral">'\t'</span> && commandWithArgs[i] != <span class="charliteral">'\n'</span> && commandWithArgs[i] != <span class="charliteral">'\r'</span>) +00122 { +00123 <span class="keywordflow">break</span>; +00124 } +00125 i++; +00126 } +00127 +00128 <span class="comment">// get param</span> +00129 string arg; +00130 <span class="keywordflow">if</span> (commandWithArgs[i] == <span class="charliteral">'\"'</span>) +00131 { +00132 <span class="comment">// starting with a quote "</span> +00133 i++; +00134 <span class="keywordflow">while</span> (<span class="keyword">true</span>) +00135 { +00136 <span class="keywordflow">if</span> (i == commandWithArgs.size()) +00137 { +00138 <span class="keywordflow">if</span> (!quiet) log.<a class="code" href="a02813.html#NLNET_1_1CNetLoga7">displayNL</a> (<span class="stringliteral">"Missing end quote character \""</span>); +00139 <span class="keywordflow">return</span>; +00140 } +00141 <span class="keywordflow">if</span> (commandWithArgs[i] == <span class="charliteral">'"'</span>) +00142 { +00143 i++; +00144 <span class="keywordflow">break</span>; +00145 } +00146 <span class="keywordflow">if</span> (commandWithArgs[i] == <span class="charliteral">'\\'</span>) +00147 { +00148 <span class="comment">// manage escape char backslash</span> +00149 i++; +00150 <span class="keywordflow">if</span> (i == commandWithArgs.size()) +00151 { +00152 <span class="keywordflow">if</span> (!quiet) log.<a class="code" href="a02813.html#NLNET_1_1CNetLoga7">displayNL</a> (<span class="stringliteral">"Missing character after the backslash \\ character"</span>); +00153 <span class="keywordflow">return</span>; +00154 } +00155 <span class="keywordflow">switch</span> (commandWithArgs[i]) +00156 { +00157 <span class="keywordflow">case</span> <span class="charliteral">'\\'</span>: arg += <span class="charliteral">'\\'</span>; <span class="keywordflow">break</span>; <span class="comment">// double backslash</span> +00158 <span class="keywordflow">case</span> <span class="charliteral">'n'</span>: arg += <span class="charliteral">'\n'</span>; <span class="keywordflow">break</span>; <span class="comment">// new line</span> +00159 <span class="keywordflow">case</span> <span class="charliteral">'"'</span>: arg += <span class="charliteral">'"'</span>; <span class="keywordflow">break</span>; <span class="comment">// "</span> +00160 <span class="keywordflow">default</span>: +00161 <span class="keywordflow">if</span> (!quiet) log.<a class="code" href="a02813.html#NLNET_1_1CNetLoga7">displayNL</a> (<span class="stringliteral">"Unknown escape code '\\%c'"</span>, commandWithArgs[i]); +00162 <span class="keywordflow">return</span>; +00163 } +00164 i++; +00165 } +00166 <span class="keywordflow">else</span> +00167 { +00168 arg += commandWithArgs[i++]; +00169 } +00170 } +00171 } +00172 <span class="keywordflow">else</span> +00173 { +00174 <span class="comment">// normal word</span> +00175 <span class="keywordflow">while</span> (<span class="keyword">true</span>) +00176 { +00177 <span class="keywordflow">if</span> (commandWithArgs[i] == <span class="charliteral">'\\'</span>) +00178 { +00179 <span class="comment">// manage escape char backslash</span> +00180 i++; +00181 <span class="keywordflow">if</span> (i == commandWithArgs.size()) +00182 { +00183 <span class="keywordflow">if</span> (!quiet) log.<a class="code" href="a02813.html#NLNET_1_1CNetLoga7">displayNL</a> (<span class="stringliteral">"Missing character after the backslash \\ character"</span>); +00184 <span class="keywordflow">return</span>; +00185 } +00186 <span class="keywordflow">switch</span> (commandWithArgs[i]) +00187 { +00188 <span class="keywordflow">case</span> <span class="charliteral">'\\'</span>: arg += <span class="charliteral">'\\'</span>; <span class="keywordflow">break</span>; <span class="comment">// double backslash</span> +00189 <span class="keywordflow">case</span> <span class="charliteral">'n'</span>: arg += <span class="charliteral">'\n'</span>; <span class="keywordflow">break</span>; <span class="comment">// new line</span> +00190 <span class="keywordflow">case</span> <span class="charliteral">'"'</span>: arg += <span class="charliteral">'"'</span>; <span class="keywordflow">break</span>; <span class="comment">// "</span> +00191 <span class="keywordflow">case</span> <span class="charliteral">';'</span>: arg += <span class="charliteral">';'</span>; <span class="keywordflow">break</span>; <span class="comment">// ;</span> +00192 <span class="keywordflow">default</span>: +00193 <span class="keywordflow">if</span> (!quiet) log.<a class="code" href="a02813.html#NLNET_1_1CNetLoga7">displayNL</a> (<span class="stringliteral">"Unknown escape code '\\%c'"</span>, commandWithArgs[i]); +00194 <span class="keywordflow">return</span>; +00195 } +00196 } +00197 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (commandWithArgs[i] == <span class="charliteral">';'</span>) +00198 { +00199 <span class="comment">// command separator</span> +00200 <span class="keywordflow">break</span>; +00201 } +00202 <span class="keywordflow">else</span> +00203 { +00204 arg += commandWithArgs[i]; +00205 } +00206 +00207 i++; +00208 +00209 <span class="keywordflow">if</span> (i == commandWithArgs.size() || commandWithArgs[i] == <span class="charliteral">' '</span> || commandWithArgs[i] == <span class="charliteral">'\t'</span> || commandWithArgs[i] == <span class="charliteral">'\n'</span> || commandWithArgs[i] == <span class="charliteral">'\r'</span>) +00210 { +00211 <span class="keywordflow">break</span>; +00212 } +00213 } +00214 } +00215 +00216 <span class="keywordflow">if</span> (!arg.empty()) +00217 { +00218 <span class="keywordflow">if</span> (firstArg) +00219 { +00220 commands.push_back (make_pair(arg, vector<string> () )); +00221 firstArg = <span class="keyword">false</span>; +00222 } +00223 <span class="keywordflow">else</span> +00224 { +00225 commands[commands.size()-1].second.push_back (arg); +00226 } +00227 } +00228 +00229 <span class="comment">// separator</span> +00230 <span class="keywordflow">if</span> (i < commandWithArgs.size() && commandWithArgs[i] == <span class="charliteral">';'</span>) +00231 { +00232 firstArg = <span class="keyword">true</span>; +00233 i++; +00234 } +00235 } +00236 end: +00237 +00238 <span class="comment">// displays args for debug purpose</span> +00239 <span class="comment">/* for (uint u = 0; u < commands.size (); u++)</span> +00240 <span class="comment"> {</span> +00241 <span class="comment"> nlinfo ("c '%s'", commands[u].first.c_str());</span> +00242 <span class="comment"> for (uint t = 0; t < commands[u].second.size (); t++)</span> +00243 <span class="comment"> {</span> +00244 <span class="comment"> nlinfo ("p%d '%s'", t, commands[u].second[t].c_str());</span> +00245 <span class="comment"> }</span> +00246 <span class="comment"> }</span> +00247 <span class="comment">*/</span> +00248 +00249 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> u = 0; u < commands.size (); u++) +00250 { +00251 <span class="comment">// find the command </span> +00252 TCommand::iterator comm = (*Commands).find(commands[u].first); +00253 <span class="keywordflow">if</span> (comm == (*Commands).end ()) +00254 { +00255 <span class="comment">// the command doesn't exist</span> +00256 <span class="keywordflow">if</span> (!quiet) log.<a class="code" href="a02813.html#NLNET_1_1CNetLoga7">displayNL</a>(<span class="stringliteral">"Command '%s' not found, try 'help'"</span>, commands[u].first.c_str()); +00257 } +00258 <span class="keywordflow">else</span> +00259 { +00260 <span class="comment">//nlinfo("execute command '%s'", commands[u].first.c_str());</span> +00261 <span class="keywordflow">if</span> (!(*comm).second->execute (commands[u].second, log, quiet, human)) +00262 { +00263 <span class="keywordflow">if</span> (!quiet) log.<a class="code" href="a02813.html#NLNET_1_1CNetLoga7">displayNL</a>(<span class="stringliteral">"Bad command usage, try 'help %s'"</span>, commands[u].first.c_str()); +00264 } +00265 } +00266 } +00267 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1ICommanda0" doxytag="NLMISC::ICommand::execute" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual bool NLMISC::ICommand::execute </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const std::vector< std::string > & </td> + <td class="mdname" nowrap> <em>args</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02813.html">NLMISC::CLog</a> & </td> + <td class="mdname" nowrap> <em>log</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>bool </td> + <td class="mdname" nowrap> <em>quiet</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>bool </td> + <td class="mdname" nowrap> <em>human</em> = true</td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [pure virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Implemented in <a class="el" href="a03648.html#NLMISC_1_1IVariablea0">NLMISC::IVariable</a>, <a class="el" href="a03646.html#NLMISC_1_1CVariablea1">NLMISC::CVariable< T ></a>, <a class="el" href="a03646.html#NLMISC_1_1CVariablea1">NLMISC::CVariable< uint16 ></a>, and <a class="el" href="a03646.html#NLMISC_1_1CVariablea1">NLMISC::CVariable< std::string ></a>. </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IVariablee1" doxytag="NLMISC::ICommand::exists" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool NLMISC::ICommand::exists </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::string & </td> + <td class="mdname1" valign="top" nowrap> <em>commandName</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [static]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +returns true if the command exists +<p> + +<p> +Definition at line <a class="el" href="a05584.html#l00384">384</a> of file <a class="el" href="a05584.html">command.cpp</a>. +<p> +<div class="fragment"><pre>00385 { +00386 <span class="keywordflow">return</span> ((*Commands).find(commandName) != (*Commands).end ()); +00387 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IVariablee2" doxytag="NLMISC::ICommand::expand" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::ICommand::expand </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::string & </td> + <td class="mdname" nowrap> <em>commandName</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02813.html">NLMISC::CLog</a> & </td> + <td class="mdname" nowrap> <em>log</em> = *<a class="el" href="a05378.html#a12">InfoLog</a></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [static]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Command name completion. Case-sensitive. Displays the list after two calls with the same non-unique completion. Completes commands used with prefixes (such as "help " for example) as well. +<p> +Definition at line <a class="el" href="a05584.html#l00275">275</a> of file <a class="el" href="a05584.html">command.cpp</a>. +<p> +References <a class="el" href="a05943.html#l00323">NLMISC::CLog::displayNL()</a>, <a class="el" href="a05586.html#l00536">NLMISC::strlwr()</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +<div class="fragment"><pre>00276 { +00277 <span class="comment">// Take out the string before the last separator and remember it as a prefix</span> +00278 <a class="code" href="a04558.html#a11">uint32</a> lastseppos = commandName.find_last_of( <span class="stringliteral">" "</span> ); +00279 string prefix; +00280 <span class="keywordtype">bool</span> useprefix; +00281 <span class="keywordflow">if</span> ( lastseppos != string::npos ) +00282 { +00283 prefix = commandName.substr( 0, lastseppos+1 ); +00284 commandName.erase( 0, lastseppos+1 ); +00285 useprefix = <span class="keyword">true</span>; +00286 } +00287 <span class="keywordflow">else</span> +00288 { +00289 useprefix = <span class="keyword">false</span>; +00290 } +00291 +00292 string lowerCommandName = <a class="code" href="a05378.html#a273">strlwr</a>(const_cast<const string &>(commandName)); +00293 <span class="comment">// Build the list of matching command names</span> +00294 vector<string> matchingnames; +00295 <span class="keywordflow">for</span> (TCommand::iterator comm = (*Commands).begin(); comm != (*Commands).end(); comm++) +00296 { +00297 string first = <a class="code" href="a05378.html#a273">strlwr</a>(const_cast<const string &>((*comm).first)); +00298 <span class="keywordflow">if</span> (first.find( lowerCommandName ) == 0) +00299 { +00300 matchingnames.push_back( (*comm).first ); +00301 } +00302 } +00303 +00304 <span class="comment">// Do not complete if there is no result</span> +00305 <span class="keywordflow">if</span> ( matchingnames.empty() ) +00306 { +00307 log.<a class="code" href="a02813.html#NLNET_1_1CNetLoga7">displayNL</a>( <span class="stringliteral">"No matching command"</span> ); +00308 <span class="keywordflow">goto</span> returnFromExpand; +00309 } +00310 +00311 <span class="comment">// Complete if there is a single result</span> +00312 <span class="keywordflow">if</span> ( matchingnames.size() == 1 ) +00313 { +00314 commandName = matchingnames.front() + <span class="stringliteral">" "</span>; +00315 <span class="keywordflow">goto</span> returnFromExpand; +00316 } +00317 +00318 <span class="comment">// Try to complete to the common part if there are several results</span> +00319 { +00320 <span class="comment">// Stop loop when a name size is i or names[i] are different</span> +00321 string commonstr = commandName; +00322 <a class="code" href="a04558.html#a15">uint</a> i = commandName.size(); +00323 <span class="keywordflow">while</span> ( <span class="keyword">true</span> ) +00324 { +00325 <span class="keywordtype">char</span> letter = 0; +00326 vector<string>::iterator imn; +00327 <span class="keywordflow">for</span> ( imn=matchingnames.begin(); imn!=matchingnames.end(); ++imn ) +00328 { +00329 <span class="comment">// Return common string if the next letter is not the same in all matching names</span> +00330 <span class="keywordflow">if</span> ( ((*imn).size() == i) || ( (letter!=0) && ((*imn)[i] != letter) ) ) +00331 { +00332 log.<a class="code" href="a02813.html#NLNET_1_1CNetLoga7">displayNL</a>( <span class="stringliteral">"(Matching command not unique)"</span> ); +00333 <span class="keyword">static</span> string lastCommandName; +00334 commandName = commonstr; +00335 <span class="keywordflow">if</span> ( lastCommandName == commandName ) +00336 { +00337 <span class="comment">// Display all the matching names </span> +00338 vector<string>::iterator imn2; +00339 <span class="comment">//stringstream ss;</span> +00340 string str; +00341 <span class="comment">//ss << "Matching commands:" << endl;</span> +00342 str += <span class="stringliteral">"Matching commands:\n"</span>; +00343 <span class="keywordflow">for</span> ( imn2=matchingnames.begin(); imn2!=matchingnames.end(); ++imn2 ) +00344 { +00345 <span class="comment">//ss << " " << (*imn2);</span> +00346 str += <span class="stringliteral">" "</span> + (*imn2); +00347 } +00348 log.<a class="code" href="a02813.html#NLNET_1_1CNetLoga7">displayNL</a>( <span class="stringliteral">"%s"</span>, str.c_str() ); +00349 } +00350 lastCommandName = commandName; +00351 <span class="keywordflow">goto</span> returnFromExpand; +00352 } +00353 <span class="comment">// Add the next letter to the common string if it is the same in all matching names</span> +00354 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( letter == 0 ) +00355 { +00356 letter = (*imn)[i]; +00357 } +00358 } +00359 commonstr += letter; +00360 ++i; +00361 } +00362 } +00363 +00364 returnFromExpand: +00365 +00366 <span class="comment">// Put back the prefix</span> +00367 <span class="keywordflow">if</span> ( useprefix ) +00368 { +00369 commandName = prefix + commandName; +00370 } +00371 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IVariablea2" doxytag="NLMISC::ICommand::getName" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> const std::string& NLMISC::ICommand::getName </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05585.html#l00145">145</a> of file <a class="el" href="a05585.html">command.h</a>. +<p> +References <a class="el" href="a05585.html#l00149">_CommandName</a>. +<p> +Referenced by <a class="el" href="a06364.html#l00230">NLNET::cbDirectoryChanged()</a>. +<p> +<div class="fragment"><pre>00145 { <span class="keywordflow">return</span> <a class="code" href="a03647.html#NLMISC_1_1IVariablep0">_CommandName</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IVariablee4" doxytag="NLMISC::ICommand::isCommand" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool NLMISC::ICommand::isCommand </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const std::string & </td> + <td class="mdname1" valign="top" nowrap> <em>str</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, static]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +if the string begin with an upper case, it s a variable, otherwise, it s a command +<p> + +<p> +Definition at line <a class="el" href="a05585.html#l00137">137</a> of file <a class="el" href="a05585.html">command.h</a>. +<p> +<div class="fragment"><pre>00138 { +00139 <span class="keywordflow">if</span> (str.empty()) +00140 <span class="keywordflow">return</span> <span class="keyword">false</span>; +00141 +00142 <span class="keywordflow">return</span> isupper(str[0]) == 0; +00143 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IVariablee5" doxytag="NLMISC::ICommand::serialCommands" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::ICommand::serialCommands </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02270.html">IStream</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>f</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [static]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05584.html#l00374">374</a> of file <a class="el" href="a05584.html">command.cpp</a>. +<p> +References <a class="el" href="a06462.html#l00324">NLMISC::IStream::serialCont()</a>. +<p> +<div class="fragment"><pre>00375 { +00376 vector<CSerialCommand> cmd; +00377 <span class="keywordflow">for</span> (TCommand::iterator comm = (*Commands).begin(); comm != (*Commands).end(); comm++) +00378 { +00379 cmd.push_back (<a class="code" href="a03364.html">CSerialCommand</a> ((*comm).first, (*comm).second->Type)); +00380 } +00381 f.serialCont (cmd); +00382 } +</pre></div> </td> + </tr> +</table> +<hr><h2>Friends And Related Function Documentation</h2> +<a class="anchor" name="NLMISC_1_1IVariablen0" doxytag="NLMISC::ICommand::cbVarChanged" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void cbVarChanged </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02402.html">CConfigFile::CVar</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>var</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [friend]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06665.html#l00036">36</a> of file <a class="el" href="a06665.html">variable.cpp</a>. +<p> +<div class="fragment"><pre>00037 { +00038 <span class="keywordflow">for</span> (ICommand::TCommand::iterator comm = (*ICommand::Commands).begin(); comm != (*ICommand::Commands).end(); comm++) +00039 { +00040 <span class="keywordflow">if</span> ((*comm).second->Type == ICommand::Variable && (*comm).second->_CommandName == cvar.Name) +00041 { +00042 <a class="code" href="a03648.html">IVariable</a> *var = (<a class="code" href="a03648.html">IVariable</a> *)((*comm).second); +00043 string val = cvar.<a class="code" href="a02402.html#NLMISC_1_1CConfigFile_1_1CVarz1933_3">asString</a>(); +00044 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"VAR: Setting variable '%s' with value '%s' from config file"</span>, cvar.Name.c_str(), val.c_str()); +00045 var-><a class="code" href="a03648.html#NLMISC_1_1IVariablea1">fromString</a>(val, <span class="keyword">true</span>); +00046 } +00047 } +00048 } +</pre></div> </td> + </tr> +</table> +<hr><h2>Field Documentation</h2> +<a class="anchor" name="NLMISC_1_1IVariablep0" doxytag="NLMISC::ICommand::_CommandName" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> std::string <a class="el" href="a03647.html#NLMISC_1_1IVariablep0">NLMISC::ICommand::_CommandName</a><code> [protected]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05585.html#l00149">149</a> of file <a class="el" href="a05585.html">command.h</a>. +<p> +Referenced by <a class="el" href="a05585.html#l00145">getName()</a>, <a class="el" href="a05584.html#l00038">ICommand()</a>, and <a class="el" href="a06665.html#l00050">NLMISC::IVariable::init()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IVariableo0" doxytag="NLMISC::ICommand::CommandArgs" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> std::string <a class="el" href="a03647.html#NLMISC_1_1IVariableo0">NLMISC::ICommand::CommandArgs</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05585.html#l00108">108</a> of file <a class="el" href="a05585.html">command.h</a>. +<p> +Referenced by <a class="el" href="a05584.html#l00038">ICommand()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IVariables0" doxytag="NLMISC::ICommand::Commands" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03647.html#NLMISC_1_1IVariablew1">ICommand::TCommand</a> * <a class="el" href="a03647.html#NLMISC_1_1IVariables0">NLMISC::ICommand::Commands</a><code> [static]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05584.html#l00035">35</a> of file <a class="el" href="a05584.html">command.cpp</a>. +<p> +Referenced by <a class="el" href="a05584.html#l00038">ICommand()</a>, and <a class="el" href="a05584.html#l00068">~ICommand()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IVariables1" doxytag="NLMISC::ICommand::CommandsInit" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool <a class="el" href="a03647.html#NLMISC_1_1IVariables1">NLMISC::ICommand::CommandsInit</a><code> [static]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05584.html#l00036">36</a> of file <a class="el" href="a05584.html">command.cpp</a>. +<p> +Referenced by <a class="el" href="a05584.html#l00038">ICommand()</a>, and <a class="el" href="a05584.html#l00068">~ICommand()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IVariableo1" doxytag="NLMISC::ICommand::HelpString" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> std::string <a class="el" href="a03647.html#NLMISC_1_1IVariableo1">NLMISC::ICommand::HelpString</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05585.html#l00107">107</a> of file <a class="el" href="a05585.html">command.h</a>. +<p> +Referenced by <a class="el" href="a05584.html#l00038">ICommand()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IVariableo2" doxytag="NLMISC::ICommand::Type" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03647.html#NLMISC_1_1IVariablew2">TType</a> <a class="el" href="a03647.html#NLMISC_1_1IVariableo2">NLMISC::ICommand::Type</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05585.html#l00112">112</a> of file <a class="el" href="a05585.html">command.h</a>. </td> + </tr> +</table> +<hr>The documentation for this class was generated from the following files:<ul> +<li><a class="el" href="a05585.html">command.h</a><li><a class="el" href="a05584.html">command.cpp</a></ul> +<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 13:45:24 2004 for NeL by +<a href="http://www.doxygen.org/index.html"> +<img src="doxygen.png" alt="doxygen" align="middle" border=0 > +</a>1.3.6 </small></address> +</body> +</html> |