diff options
Diffstat (limited to '')
-rw-r--r-- | docs/doxygen/nel/a03650.html | 1251 |
1 files changed, 1251 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a03650.html b/docs/doxygen/nel/a03650.html new file mode 100644 index 00000000..2c59cd9a --- /dev/null +++ b/docs/doxygen/nel/a03650.html @@ -0,0 +1,1251 @@ +<!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: TemplateNLMISC::CVariablePtr< T > 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::CVariablePtr< T > Class Template Reference</h1><code>#include <<a class="el" href="a06666.html">variable.h</a>></code> +<p> +<p>Inheritance diagram for NLMISC::CVariablePtr< T >: +<p><center><img src="a03650.png" usemap="#NLMISC::CVariablePtr< T >_map" border="0" alt=""></center> +<map name="NLMISC::CVariablePtr< T >_map"> +<area href="a03648.html" alt="NLMISC::IVariable" shape="rect" coords="0,56,169,80"> +<area href="a03647.html" alt="NLMISC::ICommand" shape="rect" coords="0,0,169,24"> +</map> +<h3>template<class T><br> + class NLMISC::CVariablePtr< T ></h3> + +<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> </td><td class="memItemRight" valign=bottom><a class="el" href="a03650.html#NLMISC_1_1CVariablePtra0">CVariablePtr</a> (const char *commandName, const char *commandHelp, T *valueptr, bool useConfigFile=false, void(*cc)(<a class="el" href="a03648.html">IVariable</a> &var)=NULL)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a03648.html#NLMISC_1_1IVariablea0">execute</a> (const std::vector< std::string > &args, <a class="el" href="a02813.html">NLMISC::CLog</a> &log, bool quiet, bool human)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03650.html#NLMISC_1_1CVariablePtra2">fromString</a> (const std::string &val, bool human=false)</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>virtual std::string </td><td class="memItemRight" valign=bottom><a class="el" href="a03650.html#NLMISC_1_1CVariablePtra4">toString</a> (bool human) const </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>void </td><td class="memItemRight" valign=bottom><a class="el" href="a03648.html#NLMISC_1_1IVariablee3">init</a> (<a class="el" href="a02401.html">CConfigFile</a> &configFile)</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 class="memItemLeft" nowrap align=right valign=top>void(* </td><td class="memItemRight" valign=bottom><a class="el" href="a03648.html#NLMISC_1_1IVariablep1">ChangeCallback</a> )(<a class="el" href="a03648.html">IVariable</a> &var)</td></tr> + +<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>T * </td><td class="memItemRight" valign=bottom><a class="el" href="a03650.html#NLMISC_1_1CVariablePtrr0">_ValuePtr</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::CVariablePtr::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><code> [inherited]</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#l00116">116</a> of file <a class="el" href="a05585.html">command.h</a>. +<p> +Referenced by <a class="el" href="a05584.html#l00038">NLMISC::ICommand::ICommand()</a>. </td> + </tr> +</table> +<hr><h2>Member Enumeration Documentation</h2> +<a class="anchor" name="NLMISC_1_1IVariablew2" doxytag="NLMISC::CVariablePtr::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><code> [inherited]</code> + </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_1CVariablePtra0" doxytag="NLMISC::CVariablePtr::CVariablePtr" ></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" colspan="4"> +template<class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a03650.html">NLMISC::CVariablePtr</a>< T >::<a class="el" href="a03650.html">CVariablePtr</a> </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>T * </td> + <td class="mdname" nowrap> <em>valueptr</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>bool </td> + <td class="mdname" nowrap> <em>useConfigFile</em> = false, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>void(* </td> + <td class="mdname" nowrap> <em>cc</em>)(<a class="el" href="a03648.html">IVariable</a> &var) = NULL</td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><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="a06666.html#l00191">191</a> of file <a class="el" href="a06666.html">variable.h</a>. +<p> +References <a class="el" href="a06666.html#l00214">NLMISC::CVariablePtr< T >::_ValuePtr</a>, and <a class="el" href="a05646.html#l01132">value</a>. +<p> +<div class="fragment"><pre>00191 : +00192 <a class="code" href="a03648.html#NLMISC_1_1IVariablea3">IVariable</a> (commandName, commandHelp, <span class="stringliteral">"[<value>]"</span>, useConfigFile, cc), <a class="code" href="a03650.html#NLMISC_1_1CVariablePtrr0">_ValuePtr</a>(valueptr) +00193 { +00194 } + +</pre></div> </td> + </tr> +</table> +<hr><h2>Member Function Documentation</h2> +<a class="anchor" name="NLMISC_1_1IVariablee0" doxytag="NLMISC::CVariablePtr::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, inherited]</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_1IVariablea0" doxytag="NLMISC::CVariablePtr::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::IVariable::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></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Implements <a class="el" href="a03647.html#NLMISC_1_1ICommanda0">NLMISC::ICommand</a>. +<p> +Reimplemented in <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>. +<p> +Definition at line <a class="el" href="a06666.html#l00148">148</a> of file <a class="el" href="a06666.html">variable.h</a>. +<p> +References <a class="el" href="a05943.html#l00323">NLMISC::CLog::displayNL()</a>, <a class="el" href="a03648.html#NLMISC_1_1IVariablea1">NLMISC::IVariable::fromString()</a>, and <a class="el" href="a03648.html#NLMISC_1_1IVariablea4">NLMISC::IVariable::toString()</a>. +<p> +<div class="fragment"><pre>00149 { +00150 <span class="keywordflow">if</span> (args.size() > 1) +00151 <span class="keywordflow">return</span> <span class="keyword">false</span>; +00152 +00153 <span class="keywordflow">if</span> (args.size() == 1) +00154 { +00155 <span class="comment">// set the value</span> +00156 <a class="code" href="a03650.html#NLMISC_1_1CVariablePtra2">fromString</a> (args[0], human); +00157 } +00158 +00159 <span class="comment">// display the value</span> +00160 <span class="keywordflow">if</span> (quiet) +00161 { +00162 log.<a class="code" href="a02813.html#NLNET_1_1CNetLoga7">displayNL</a>(<a class="code" href="a03650.html#NLMISC_1_1CVariablePtra4">toString</a>(human).c_str()); +00163 } +00164 <span class="keywordflow">else</span> +00165 { +00166 log.<a class="code" href="a02813.html#NLNET_1_1CNetLoga7">displayNL</a>(<span class="stringliteral">"Variable %s = %s"</span>, <a class="code" href="a03647.html#NLMISC_1_1IVariablep0">_CommandName</a>.c_str(), <a class="code" href="a03650.html#NLMISC_1_1CVariablePtra4">toString</a>(human).c_str()); +00167 } +00168 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00169 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IVariablee1" doxytag="NLMISC::CVariablePtr::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, inherited]</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::CVariablePtr::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, inherited]</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_1CVariablePtra2" doxytag="NLMISC::CVariablePtr::fromString" ></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" colspan="4"> +template<class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> virtual void <a class="el" href="a03650.html">NLMISC::CVariablePtr</a>< T >::fromString </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const std::string & </td> + <td class="mdname" nowrap> <em>val</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> = false</td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Implements <a class="el" href="a03648.html#NLMISC_1_1IVariablea1">NLMISC::IVariable</a>. +<p> +Definition at line <a class="el" href="a06666.html#l00196">196</a> of file <a class="el" href="a06666.html">variable.h</a>. +<p> +References <a class="el" href="a06666.html#l00214">NLMISC::CVariablePtr< T >::_ValuePtr</a>, <a class="el" href="a03648.html#NLMISC_1_1IVariablep1">NLMISC::IVariable::ChangeCallback</a>, and <a class="el" href="a06465.html#l00203">NLMISC::fromString()</a>. +<p> +<div class="fragment"><pre>00197 { +00198 <span class="comment">//std::stringstream ss (val);</span> +00199 <span class="comment">//ss >> *_ValuePtr;</span> +00200 <a class="code" href="a05378.html#a423">NLMISC::fromString</a>(val, *_ValuePtr); +00201 <span class="keywordflow">if</span> (<a class="code" href="a03648.html#NLMISC_1_1IVariablep1">ChangeCallback</a>) <a class="code" href="a03648.html#NLMISC_1_1IVariablep1">ChangeCallback</a> (*<span class="keyword">this</span>); +00202 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IVariablea2" doxytag="NLMISC::CVariablePtr::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, inherited]</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">NLMISC::ICommand::_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_1IVariablee3" doxytag="NLMISC::CVariablePtr::init" ></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::IVariable::init </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02401.html">CConfigFile</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>configFile</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [static, inherited]</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#l00050">50</a> of file <a class="el" href="a06665.html">variable.cpp</a>. +<p> +References <a class="el" href="a05585.html#l00149">NLMISC::ICommand::_CommandName</a>, <a class="el" href="a06666.html#l00175">NLMISC::IVariable::_UseConfigFile</a>, <a class="el" href="a05597.html#l00097">NLMISC::CConfigFile::CVar::asString()</a>, <a class="el" href="a06665.html#l00036">NLMISC::cbVarChanged()</a>, <a class="el" href="a03648.html#NLMISC_1_1IVariablea1">NLMISC::IVariable::fromString()</a>, <a class="el" href="a05598.html#l00258">NLMISC::CConfigFile::getFilename()</a>, <a class="el" href="a05597.html#l00441">NLMISC::CConfigFile::getVarPtr()</a>, <a class="el" href="a05622.html#l00111">nlinfo</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, and <a class="el" href="a05597.html#l00647">NLMISC::CConfigFile::setCallback()</a>. +<p> +Referenced by <a class="el" href="a06364.html#l00419">NLNET::IService::main()</a>. +<p> +<div class="fragment"><pre>00051 { +00052 <span class="keywordflow">for</span> (TCommand::iterator comm = (*Commands).begin(); comm != (*Commands).end(); comm++) +00053 { +00054 <span class="keywordflow">if</span> ((*comm).second->Type == ICommand::Variable) +00055 { +00056 <a class="code" href="a03648.html">IVariable</a> *var = (<a class="code" href="a03648.html">IVariable</a> *)((*comm).second); +00057 <span class="keywordflow">if</span> (var-><a class="code" href="a03648.html#NLMISC_1_1IVariabler0">_UseConfigFile</a>) +00058 { +00059 configFile.<a class="code" href="a02401.html#NLMISC_1_1CConfigFilea17">setCallback</a>(var-><a class="code" href="a03647.html#NLMISC_1_1IVariablep0">_CommandName</a>, cbVarChanged); +00060 <a class="code" href="a02402.html">CConfigFile::CVar</a> *cvar = configFile.<a class="code" href="a02401.html#NLMISC_1_1CConfigFilea10">getVarPtr</a>(var-><a class="code" href="a03647.html#NLMISC_1_1IVariablep0">_CommandName</a>); +00061 <span class="keywordflow">if</span> (cvar != 0) +00062 { +00063 string val = cvar-><a class="code" href="a02402.html#NLMISC_1_1CConfigFile_1_1CVarz1933_3">asString</a>(); +00064 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"VAR: Setting variable '%s' with value '%s' from config file '%s'"</span>, var-><a class="code" href="a03647.html#NLMISC_1_1IVariablep0">_CommandName</a>.c_str(), val.c_str(), configFile.<a class="code" href="a02401.html#NLMISC_1_1CConfigFilea6">getFilename</a>().c_str()); +00065 var-><a class="code" href="a03648.html#NLMISC_1_1IVariablea1">fromString</a>(val, <span class="keyword">true</span>); +00066 } +00067 <span class="keywordflow">else</span> +00068 { +00069 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"VAR: No variable '%s' in config file '%s'"</span>, var-><a class="code" href="a03647.html#NLMISC_1_1IVariablep0">_CommandName</a>.c_str(), configFile.<a class="code" href="a02401.html#NLMISC_1_1CConfigFilea6">getFilename</a>().c_str()); +00070 } +00071 } +00072 } +00073 } +00074 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IVariablee4" doxytag="NLMISC::CVariablePtr::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, inherited]</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::CVariablePtr::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, inherited]</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> +<a class="anchor" name="NLMISC_1_1CVariablePtra4" doxytag="NLMISC::CVariablePtr::toString" ></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" colspan="4"> +template<class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> virtual std::string <a class="el" href="a03650.html">NLMISC::CVariablePtr</a>< T >::toString </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>human</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Implements <a class="el" href="a03648.html#NLMISC_1_1IVariablea4">NLMISC::IVariable</a>. +<p> +Definition at line <a class="el" href="a06666.html#l00204">204</a> of file <a class="el" href="a06666.html">variable.h</a>. +<p> +References <a class="el" href="a06666.html#l00214">NLMISC::CVariablePtr< T >::_ValuePtr</a>, and <a class="el" href="a06229.html#l02652">NLMISC::toString()</a>. +<p> +<div class="fragment"><pre>00205 { +00206 <span class="comment">//std::stringstream ss;</span> +00207 <span class="comment">//ss << *_ValuePtr;</span> +00208 <span class="comment">//return ss.str();</span> +00209 <span class="keywordflow">return</span> <a class="code" href="a05378.html#a244">NLMISC::toString</a>(*_ValuePtr); +00210 } +</pre></div> </td> + </tr> +</table> +<hr><h2>Friends And Related Function Documentation</h2> +<a class="anchor" name="NLMISC_1_1IVariablen0" doxytag="NLMISC::CVariablePtr::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, inherited]</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::CVariablePtr::_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, inherited]</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">NLMISC::ICommand::getName()</a>, <a class="el" href="a05584.html#l00038">NLMISC::ICommand::ICommand()</a>, and <a class="el" href="a06665.html#l00050">NLMISC::IVariable::init()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CVariablePtrr0" doxytag="NLMISC::CVariablePtr::_ValuePtr" ></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" colspan="4"> +template<class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> T* <a class="el" href="a03650.html">NLMISC::CVariablePtr</a>< T >::<a class="el" href="a03650.html#NLMISC_1_1CVariablePtrr0">_ValuePtr</a><code> [private]</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="a06666.html#l00214">214</a> of file <a class="el" href="a06666.html">variable.h</a>. +<p> +Referenced by <a class="el" href="a06666.html#l00191">NLMISC::CVariablePtr< T >::CVariablePtr()</a>, <a class="el" href="a06666.html#l00196">NLMISC::CVariablePtr< T >::fromString()</a>, and <a class="el" href="a06666.html#l00204">NLMISC::CVariablePtr< T >::toString()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IVariablep1" doxytag="NLMISC::CVariablePtr::ChangeCallback" ></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(* <a class="el" href="a03648.html#NLMISC_1_1IVariablep1">NLMISC::IVariable::ChangeCallback</a>)(<a class="el" href="a03648.html">IVariable</a> &var)<code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Referenced by <a class="el" href="a06666.html#l00196">NLMISC::CVariablePtr< T >::fromString()</a>, <a class="el" href="a06666.html#l00138">NLMISC::IVariable::IVariable()</a>, and <a class="el" href="a06666.html#l00257">NLMISC::CVariable< std::string >::set()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IVariableo0" doxytag="NLMISC::CVariablePtr::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><code> [inherited]</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#l00108">108</a> of file <a class="el" href="a05585.html">command.h</a>. +<p> +Referenced by <a class="el" href="a05584.html#l00038">NLMISC::ICommand::ICommand()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IVariables0" doxytag="NLMISC::CVariablePtr::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, inherited]</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">NLMISC::ICommand::ICommand()</a>, and <a class="el" href="a05584.html#l00068">NLMISC::ICommand::~ICommand()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IVariables1" doxytag="NLMISC::CVariablePtr::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, inherited]</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">NLMISC::ICommand::ICommand()</a>, and <a class="el" href="a05584.html#l00068">NLMISC::ICommand::~ICommand()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IVariableo1" doxytag="NLMISC::CVariablePtr::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><code> [inherited]</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#l00107">107</a> of file <a class="el" href="a05585.html">command.h</a>. +<p> +Referenced by <a class="el" href="a05584.html#l00038">NLMISC::ICommand::ICommand()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IVariableo2" doxytag="NLMISC::CVariablePtr::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><code> [inherited]</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#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 file:<ul> +<li><a class="el" href="a06666.html">variable.h</a></ul> +<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 13:41:04 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> |