aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/agent_string_h-source.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/doxygen/nel/agent_string_h-source.html')
-rw-r--r--docs/doxygen/nel/agent_string_h-source.html398
1 files changed, 398 insertions, 0 deletions
diff --git a/docs/doxygen/nel/agent_string_h-source.html b/docs/doxygen/nel/agent_string_h-source.html
new file mode 100644
index 00000000..03dab69c
--- /dev/null
+++ b/docs/doxygen/nel/agent_string_h-source.html
@@ -0,0 +1,398 @@
+<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<HTML>
+<HEAD>
+ <TITLE>nevrax.org : docs</TITLE>
+ <LINK REL=stylesheet TYPE="text/css" HREF="http://www.nevrax.org/inc/css/nevrax.css">
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
+</HEAD>
+<BODY MARGINHEIGHT="0" MARGINWIDTH="0">
+
+<!-- uplinks -->
+<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0>
+ <TR>
+ <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD WIDTH=140 BGCOLOR=#dddddd><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD><IMG width=6 height=14 SRC="http://www.nevrax.org/inc/img/reddots.gif" ALT="#" VSPACE=2 HSPACE=2 BORDER=0 ></TD><TD VALIGN=middle>&nbsp;<A CLASS=uplinks HREF=http://www.nevrax.org><b>Home</B></FONT></A>&nbsp;&nbsp;&nbsp;</TD>
+ <TD><IMG width=6 height=14 SRC="http://www.nevrax.org/inc/img/reddots.gif" ALT="#" VSPACE=2 HSPACE=2 BORDER=0 ></TD><TD VALIGN=middle>&nbsp;<A CLASS=uplinks HREF=http://www.nevrax.com><b>nevrax.com</B></FONT></A>&nbsp;&nbsp;&nbsp;</TD>
+ </TR>
+</TABLE>
+
+<!-- banner Nevrax -->
+<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%>
+ <TR><TD BGCOLOR="#000000" BACKGROUND="http://www.nevrax.org/inc/img/black_banner.jpg"><A HREF="http://www.nevrax.org"><IMG SRC="http://www.nevrax.org/inc/img/nevrax.gif" WIDTH="170" HEIGHT="45" BORDER=0 ALT="Nevrax" ></A></TD></TR>
+</TABLE>
+
+<!-- main table -->
+<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 height=100%>
+ <TR>
+ <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="10" BORDER=0 ALT=""></TD>
+ <TD WIDTH=140 BGCOLOR=#dddddd VALIGN=TOP ALIGN=middle><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="10" BORDER=0 ALT="">
+
+ <!------ Begin Box ------>
+ <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 BGCOLOR=black><TR><TD><TABLE border=0 cellspacing=2 cellpadding=0 width=120><tr><TD ALIGN=middle bgcolor=black>
+ <FONT COLOR=white FACE="sans-serif"><B>Nevrax.org</B></FONT></TD></TR><tr><td colspan=2 bgcolor=#FFFFFF>
+ <TABLE cellspacing=0 cellpadding=1 border=0>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/news/" TITLE="Rubrique news"><img width=13 height=15 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-news.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/news/" TITLE="News">News</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/mail/" TITLE="Rubrique mail"><img width=15 height=11 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-mail.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/mail/" TITLE="Mailing list archive">Mailing-list</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/docs/" TITLE="Rubrique docs"><img width=14 height=16 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-docs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/docs/" TITLE="Documentation">Documentation</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/cvs/" TITLE="Rubrique cvs"><img width=13 height=17 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-cvs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/cvs/" TITLE="CVS Web">CVS</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/bugs/" TITLE="Rubrique bugs"><img width=20 height=16 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-bugs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/bugs/" TITLE="Bugtracking">Bugs</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/GPL.php3" TITLE="Rubrique license"><img width=18 height=12 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-gpl.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/GPL.php3" TITLE="License">License</a></td></tr>
+ </TABLE>
+ </TD></TR></TABLE></TD></TR></TABLE>
+ <!------ End Box ------>
+
+ </TD>
+ <TD WIDTH=15><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD ALIGN=left valign=top><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="10" BORDER=0 ALT="">
+
+<!-- title -->
+<TABLE background="http://www.nevrax.org/inc/img/redline.gif" CELLSPACING=0 CELLPADDING=0 BORDER=0 width=100%><tr><td>
+<A HREF="http://www.nevrax.org/docs/"><img src="http://www.nevrax.org/inc/img/t_docs.gif" ALT="Docs" HEIGHT=20 BORDER=0></A>
+</td><td><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="1" HEIGHT="1" BORDER=0 ALT="">
+</td></tr></table>
+&nbsp;
+
+<!-- block -->
+<TABLE bgcolor="#dddddd" CELLSPACING=0 CELLPADDING=0 BORDER=0 width=100%><tr><td width=1% valign=middle><img width=6 height=14 hspace=2 vspace=2 src="http://www.nevrax.org/inc/img/reddots.gif"></TD>
+ <TD><B>Documentation</B></TD>
+ <TD ALIGN=RIGHT>&nbsp;</td>
+</tr></table>
+<!-- Generated by Doxygen 1.2.2 on Mon Mar 5 22:00:39 2001 -->
+<center>
+<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="namespacemembers.html">Namespace Members</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; <a class="qindex" href="pages.html">Related Pages</a> &nbsp; <a class="qindexRef" doxygen="_cgi:http://www.nevrax.org/cgi-bin/nel-search.cgi" href="http://www.nevrax.org/cgi-bin/nel-search.cgi">Search</a> &nbsp; </center>
+<hr><h1>agent_string.h</h1><a href="agent_string_h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001
+00006 <font class="comment">/* Copyright, 2000 Nevrax Ltd.
+</font>00007 <font class="comment"> *
+</font>00008 <font class="comment"> * This file is part of NEVRAX NEL.
+</font>00009 <font class="comment"> * NEVRAX NEL is free software; you can redistribute it and/or modify
+</font>00010 <font class="comment"> * it under the terms of the GNU General Public License as published by
+</font>00011 <font class="comment"> * the Free Software Foundation; either version 2, or (at your option)
+</font>00012 <font class="comment"> * any later version.
+</font>00013 <font class="comment">
+</font>00014 <font class="comment"> * NEVRAX NEL is distributed in the hope that it will be useful, but
+</font>00015 <font class="comment"> * WITHOUT ANY WARRANTY; without even the implied warranty of
+</font>00016 <font class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+</font>00017 <font class="comment"> * General Public License for more details.
+</font>00018 <font class="comment">
+</font>00019 <font class="comment"> * You should have received a copy of the GNU General Public License
+</font>00020 <font class="comment"> * along with NEVRAX NEL; see the file COPYING. If not, write to the
+</font>00021 <font class="comment"> * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+</font>00022 <font class="comment"> * MA 02111-1307, USA.
+</font>00023 <font class="comment"> */</font>
+00024 <font class="preprocessor">#ifndef NL_AGENT_STRING_H
+</font>00025 <font class="preprocessor"></font><font class="preprocessor">#define NL_AGENT_STRING_H
+</font>00026 <font class="preprocessor"></font><font class="preprocessor">#include &lt;list&gt;</font>
+00027
+00028 <font class="keyword">namespace</font> NLAIAGENT
+00029 {
+<a name="l00037"></a><a class="code" href="class_NLAIAGENT__IVarName.html">00037</a> <font class="keyword">class </font>IVarName: <font class="keyword">public</font> NLAIC::IBasicInterface
+00038 {
+00039 <font class="keyword">public</font>:
+00040
+<a name="l00041"></a><a class="code" href="class_NLAIAGENT__IVarName.html#a0">00041</a> IVarName()<font class="keyword">
+</font>00042 <font class="keyword"> </font>{
+00043 }
+00044
+00046 <font class="keyword">virtual</font> <font class="keyword">const</font> <font class="keywordtype">char</font> *getString() <font class="keyword">const</font> = 0;
+00047
+00049
+<a name="l00050"></a><a class="code" href="class_NLAIAGENT__IVarName.html#a2">00050</a> <font class="keywordtype">bool</font> operator &lt; (<font class="keyword">const</font> IVarName &amp;v)<font class="keyword"> const
+</font>00051 <font class="keyword"> </font>{
+00052 <font class="keyword">const</font> <font class="keywordtype">char</font> *name1 = getString();
+00053 <font class="keyword">const</font> <font class="keywordtype">char</font> *name2 = v.getString();
+00054 <font class="keywordflow">if</font>(name1[0] &lt; name2[0]) <font class="keywordflow">return</font> <font class="keyword">true</font>;
+00055 <font class="keywordflow">else</font> <font class="keywordflow">return</font> strcmp(name1,name2) &lt; 0;
+00056 }
+00057
+<a name="l00058"></a><a class="code" href="class_NLAIAGENT__IVarName.html#a3">00058</a> <font class="keywordtype">bool</font> operator &gt; (<font class="keyword">const</font> IVarName &amp;v)<font class="keyword"> const
+</font>00059 <font class="keyword"> </font>{
+00060 <font class="keyword">const</font> <font class="keywordtype">char</font> *name1 = getString();
+00061 <font class="keyword">const</font> <font class="keywordtype">char</font> *name2 = v.getString();
+00062 <font class="keywordflow">if</font>(name1[0] &gt; name2[0]) <font class="keywordflow">return</font> <font class="keyword">true</font>;
+00063 <font class="keywordflow">else</font> <font class="keywordflow">return</font> strcmp(name1,name2) &gt; 0;
+00064 }
+00065
+00066
+<a name="l00067"></a><a class="code" href="class_NLAIAGENT__IVarName.html#a4">00067</a> <font class="keywordtype">bool</font> operator == (<font class="keyword">const</font> IVarName &amp;v)<font class="keyword"> const
+</font>00068 <font class="keyword"> </font>{
+00069 <font class="keyword">const</font> <font class="keywordtype">char</font> *name1 = getString();
+00070 <font class="keyword">const</font> <font class="keywordtype">char</font> *name2 = v.getString();
+00071 <font class="keywordflow">if</font>(name1[0] == name2[0]) <font class="keywordflow">return</font> strcmp(name1,name2) == 0;
+00072
+00073 <font class="keywordflow">return</font> <font class="keyword">false</font>;
+00074 }
+00076
+<a name="l00078"></a><a class="code" href="class_NLAIAGENT__IVarName.html#a5">00078</a> <font class="keyword">const</font> <font class="keywordtype">char</font> *addString(<font class="keyword">const</font> IVarName &amp;s)<font class="keyword"> const
+</font>00079 <font class="keyword"> </font>{
+00080 <font class="keywordtype">char</font> *nameTmp,*str = (<font class="keywordtype">char</font> *)s.getString();
+00081 nameTmp = (<font class="keywordtype">char</font> *)getString();
+00082 <font class="keywordtype">char</font> *name = <font class="keyword">new</font> <font class="keywordtype">char</font> [strlen(str) + strlen(nameTmp) + 2];
+00083 sprintf(name,<font class="stringliteral">"%s%s"</font>,nameTmp,str);
+00084 <font class="keywordflow">return</font> name;
+00085 }
+00086
+<a name="l00088"></a><a class="code" href="class_NLAIAGENT__IVarName.html#a6">00088</a> <font class="keyword">const</font> <font class="keywordtype">char</font> *subString(<font class="keyword">const</font> IVarName &amp;s)<font class="keyword"> const
+</font>00089 <font class="keyword"> </font>{
+00090 <font class="keywordtype">char</font> *nameTmp,*str = (<font class="keywordtype">char</font> *)s.getString();
+00091 nameTmp = (<font class="keywordtype">char</font> *)getString();
+00092
+00093 sint32 k = strlen(nameTmp);
+00094
+00095 <font class="keywordflow">for</font>(sint32 i = 0; i &lt; k; i ++)
+00096 {
+00097 <font class="keywordflow">if</font>(!strcmp(&amp;nameTmp[i],str))
+00098 {
+00099 sint32 l,n = strlen(str);
+00100 <font class="keywordtype">char</font> *name = <font class="keyword">new</font> <font class="keywordtype">char</font> [(l = (k - n + 1))];
+00101 memcpy(name,nameTmp,i);
+00102 memcpy(&amp;name[i],nameTmp + n,l);
+00103 <font class="keywordflow">return</font> name;
+00104 }
+00105 }
+00106 <font class="keywordflow">return</font> NULL;
+00107 }
+00108
+00110
+00111 <font class="keyword">virtual</font> IVarName &amp;operator += (<font class="keyword">const</font> IVarName &amp;s) = 0;
+00112 <font class="keyword">virtual</font> IVarName &amp;operator -= (<font class="keyword">const</font> IVarName &amp;s) = 0;
+00113 <font class="keyword">virtual</font> IVarName &amp;operator = (<font class="keyword">const</font> IVarName &amp;v) = 0;
+00115
+<a name="l00116"></a><a class="code" href="class_NLAIAGENT__IVarName.html#a10">00116</a> <font class="keyword">virtual</font> ~IVarName()<font class="keyword">
+</font>00117 <font class="keyword"> </font>{
+00118 }
+00119 <font class="comment">//virtual typeVarName getEnumType() const = 0;</font>
+00120
+00121 };
+00122
+<a name="l00130"></a><a class="code" href="class_NLAIAGENT__CStringVarName.html">00130</a> <font class="keyword">class </font>CStringVarName : <font class="keyword">public</font> IVarName
+00131 {
+00132 <font class="keyword">public</font>:
+<a name="l00133"></a><a class="code" href="class_NLAIAGENT__CStringVarName.html#p0">00133</a> <font class="keyword">static</font> <font class="keyword">const</font> <a class="code" href="class_NLAIC__CIdentType.html">NLAIC::CIdentType</a> IdStringVarName;
+00134 <font class="keyword">private</font>:
+<a name="l00135"></a><a class="code" href="class_NLAIAGENT__CStringVarName.html#o0">00135</a> <font class="keywordtype">char</font> *_Name;
+00136 <font class="keyword">public</font>:
+<a name="l00137"></a><a class="code" href="class_NLAIAGENT__CStringVarName.html#a0">00137</a> CStringVarName(<font class="keyword">const</font> <font class="keywordtype">char</font> *name)<font class="keyword">
+</font>00138 <font class="keyword"> </font>{
+00139 sint32 i = strlen(name) + 1;
+00140 _Name = <font class="keyword">new</font> <font class="keywordtype">char</font> [i];
+00141 <font class="keywordflow">if</font>(i == 1)
+00142 {
+00143 _Name[0] = 0;
+00144 }
+00145 <font class="keywordflow">else</font> memcpy(_Name,name,i);
+00146 }
+00147
+<a name="l00148"></a><a class="code" href="class_NLAIAGENT__CStringVarName.html#a1">00148</a> CStringVarName(<font class="keyword">const</font> CStringVarName &amp;s)<font class="keyword">
+</font>00149 <font class="keyword"> </font>{
+00150 sint32 i = strlen(s._Name) + 1;
+00151 _Name = <font class="keyword">new</font> <font class="keywordtype">char</font> [i];
+00152 <font class="keywordflow">if</font>(i == 1)
+00153 {
+00154 _Name[0] = 0;
+00155 }
+00156 <font class="keywordflow">else</font> memcpy(_Name,s._Name,i);
+00157 }
+00158
+<a name="l00159"></a><a class="code" href="class_NLAIAGENT__CStringVarName.html#a2">00159</a> CStringVarName(<a class="code" href="class_NLMISC__IStream.html">NLMISC::IStream</a> &amp;is):_Name(NULL)
+00160 {
+00161 load(is);
+00162 }
+00163
+00164
+<a name="l00165"></a><a class="code" href="class_NLAIAGENT__CStringVarName.html#a3">00165</a> <font class="keyword">virtual</font> ~CStringVarName()<font class="keyword">
+</font>00166 <font class="keyword"> </font>{
+00167 <font class="keyword">delete</font> []_Name;
+00168 }
+00169
+<a name="l00170"></a><a class="code" href="class_NLAIAGENT__CStringVarName.html#a4">00170</a> <font class="keyword">virtual</font> <font class="keyword">const</font> <font class="keywordtype">char</font> *getString()<font class="keyword"> const
+</font>00171 <font class="keyword"> </font>{
+00172 <font class="keywordflow">return</font> _Name;
+00173 }
+00174
+00175 <font class="keyword">const</font> <a class="code" href="class_NLAIC__CIdentType.html">NLAIC::CIdentType</a> &amp;getType() <font class="keyword">const</font>;
+00176
+00177
+<a name="l00178"></a><a class="code" href="class_NLAIAGENT__CStringVarName.html#a6">00178</a> <font class="keywordtype">void</font> save(<a class="code" href="class_NLMISC__IStream.html">NLMISC::IStream</a> &amp;os)<font class="keyword">
+</font>00179 <font class="keyword"> </font>{
+00180 uint32 size = strlen(_Name) + 1;
+00181 os.<a class="code" href="class_NLMISC__IStream.html#a3">serial</a>( size );
+00182 std::string x = std::string(_Name);
+00183 os.<a class="code" href="class_NLMISC__IStream.html#a3">serial</a>( x );
+00184 }
+00185
+<a name="l00186"></a><a class="code" href="class_NLAIAGENT__CStringVarName.html#a7">00186</a> <font class="keywordtype">void</font> load(<a class="code" href="class_NLMISC__IStream.html">NLMISC::IStream</a> &amp;is)<font class="keyword">
+</font>00187 <font class="keyword"> </font>{
+00188 uint32 i;
+00189 is.<a class="code" href="class_NLMISC__IStream.html#a3">serial</a>(i);
+00190 <font class="keywordflow">if</font>(_Name != NULL) <font class="keyword">delete</font> []_Name;
+00191 _Name = <font class="keyword">new</font> <font class="keywordtype">char</font> [i];
+00192 std::string name;
+00193 is.<a class="code" href="class_NLMISC__IStream.html#a3">serial</a>( name );
+00194 strcpy(_Name, name.c_str() );
+00195 }
+00196
+<a name="l00197"></a><a class="code" href="class_NLAIAGENT__CStringVarName.html#a8">00197</a> IVarName &amp;operator += (<font class="keyword">const</font> IVarName &amp;s)<font class="keyword">
+</font>00198 <font class="keyword"> </font>{
+00199 <font class="keywordtype">char</font> *nameTmp = (<font class="keywordtype">char</font> *)addString(s);
+00200 <font class="keyword">delete</font> _Name;
+00201 _Name = nameTmp;
+00202 <font class="keywordflow">return</font> *<font class="keyword">this</font>;
+00203 }
+00204
+<a name="l00205"></a><a class="code" href="class_NLAIAGENT__CStringVarName.html#a9">00205</a> IVarName &amp;operator -= (<font class="keyword">const</font> IVarName &amp;s)<font class="keyword">
+</font>00206 <font class="keyword"> </font>{
+00207 <font class="keywordtype">char</font> *n = (<font class="keywordtype">char</font> *)subString(s);
+00208 <font class="keywordflow">if</font>(n)
+00209 {
+00210 <font class="keyword">delete</font> _Name;
+00211 _Name = n;
+00212 }
+00213 <font class="keywordflow">return</font> *<font class="keyword">this</font>;
+00214 }
+00215
+<a name="l00216"></a><a class="code" href="class_NLAIAGENT__CStringVarName.html#a10">00216</a> IVarName &amp;operator = (<font class="keyword">const</font> IVarName &amp;v)<font class="keyword">
+</font>00217 <font class="keyword"> </font>{
+00218 <font class="keyword">delete</font> _Name;
+00219 sint32 i = strlen(v.getString()) + 1;
+00220 _Name = <font class="keyword">new</font> <font class="keywordtype">char</font> [i];
+00221 memcpy(_Name,v.getString(),i);
+00222 <font class="keywordflow">return</font> *<font class="keyword">this</font>;
+00223 }
+00224
+<a name="l00225"></a><a class="code" href="class_NLAIAGENT__CStringVarName.html#a11">00225</a> CStringVarName &amp;operator = (<font class="keyword">const</font> CStringVarName &amp;v)<font class="keyword">
+</font>00226 <font class="keyword"> </font>{
+00227 <font class="keyword">delete</font> _Name;
+00228 sint32 i = strlen(v.getString()) + 1;
+00229 _Name = <font class="keyword">new</font> <font class="keywordtype">char</font> [i];
+00230 memcpy(_Name,v.getString(),i);
+00231 <font class="keywordflow">return</font> *<font class="keyword">this</font>;
+00232 }
+00233
+<a name="l00234"></a><a class="code" href="class_NLAIAGENT__CStringVarName.html#a12">00234</a> <font class="keyword">const</font> <a class="code" href="class_NLAIC__IBasicType.html">NLAIC::IBasicType</a> *clone()<font class="keyword"> const
+</font>00235 <font class="keyword"> </font>{
+00236 <a class="code" href="class_NLAIC__IBasicInterface.html">NLAIC::IBasicInterface</a> *m = <font class="keyword">new</font> CStringVarName(_Name);
+00237 <font class="keywordflow">return</font> m;
+00238 }
+00239
+<a name="l00240"></a><a class="code" href="class_NLAIAGENT__CStringVarName.html#a13">00240</a> <font class="keyword">const</font> <a class="code" href="class_NLAIC__IBasicType.html">NLAIC::IBasicType</a> *newInstance()<font class="keyword"> const
+</font>00241 <font class="keyword"> </font>{
+00242 <font class="keywordflow">return</font> clone();
+00243 }
+00244
+<a name="l00245"></a><a class="code" href="class_NLAIAGENT__CStringVarName.html#a14">00245</a> <font class="keywordtype">void</font> getDebugString(<font class="keywordtype">char</font> *text)<font class="keyword"> const
+</font>00246 <font class="keyword"> </font>{
+00247 sprintf(text,<font class="stringliteral">"'%s'"</font>,_Name);
+00248 }
+00249 };
+00250
+<a name="l00259"></a><a class="code" href="class_NLAIAGENT__CIndexedVarName.html">00259</a> <font class="keyword">class </font>CIndexedVarName : <font class="keyword">public</font> IVarName
+00260 {
+00261
+00262 <font class="keyword">public</font>:
+<a name="l00263"></a><a class="code" href="class_NLAIAGENT__CIndexedVarName.html#p0">00263</a> <font class="keyword">static</font> <font class="keyword">const</font> <a class="code" href="class_NLAIC__CIdentType.html">NLAIC::CIdentType</a> IdIndexedVarName;
+00264 <font class="keyword">private</font>:
+<a name="l00266"></a><a class="code" href="class_NLAIAGENT__CIndexedVarName__CNameStruc.html">00266</a> <font class="keyword">struct </font>CNameStruc
+00267 {
+<a name="l00269"></a><a class="code" href="class_NLAIAGENT__CIndexedVarName__CNameStruc.html#m0">00269</a> sint32 Count;
+<a name="l00271"></a><a class="code" href="class_NLAIAGENT__CIndexedVarName__CNameStruc.html#m1">00271</a> sint32 Index;
+<a name="l00273"></a><a class="code" href="class_NLAIAGENT__CIndexedVarName__CNameStruc.html#m2">00273</a> CStringVarName *Name;
+00274
+00275
+<a name="l00276"></a><a class="code" href="class_NLAIAGENT__CIndexedVarName__CNameStruc.html#a0">00276</a> CNameStruc():Count(0),Index(0),Name(NULL) {}
+<a name="l00277"></a><a class="code" href="class_NLAIAGENT__CIndexedVarName__CNameStruc.html#a1">00277</a> CNameStruc(CStringVarName *name,sint32 index):Count(0),Index(index),Name(name){}
+<a name="l00279"></a><a class="code" href="class_NLAIAGENT__CIndexedVarName__CNameStruc.html#a2">00279</a> <font class="keyword">const</font> sint32 &amp;inc()<font class="keyword">
+</font>00280 <font class="keyword"> </font>{
+00281 <font class="keywordflow">return</font> ++Count;
+00282 }
+<a name="l00284"></a><a class="code" href="class_NLAIAGENT__CIndexedVarName__CNameStruc.html#a3">00284</a> <font class="keyword">const</font> sint32 &amp;dec()<font class="keyword">
+</font>00285 <font class="keyword"> </font>{
+00286 <font class="keywordflow">return</font> --Count;
+00287 }
+00288
+<a name="l00289"></a><a class="code" href="class_NLAIAGENT__CIndexedVarName__CNameStruc.html#a4">00289</a> <font class="keyword">virtual</font> <font class="keywordtype">void</font> save(<a class="code" href="class_NLMISC__IStream.html">NLMISC::IStream</a> &amp;)<font class="keyword">
+</font>00290 <font class="keyword"> </font>{
+00291 <font class="comment">// TODO</font>
+00292 <font class="comment">/* os.serial( Count );
+</font>00293 <font class="comment"> os.serial( Index );
+</font>00294 <font class="comment"> os.serial( *Name );*/</font>
+00295 }
+00296
+<a name="l00297"></a><a class="code" href="class_NLAIAGENT__CIndexedVarName__CNameStruc.html#a5">00297</a> <font class="keyword">virtual</font> <font class="keywordtype">void</font> load(<a class="code" href="class_NLMISC__IStream.html">NLMISC::IStream</a> &amp;)<font class="keyword">
+</font>00298 <font class="keyword"> </font>{
+00299 <font class="comment">/* is.serial(Count);
+</font>00300 <font class="comment"> is.serial(Index);
+</font>00301 <font class="comment"> if(Name == NULL)
+</font>00302 <font class="comment"> Name = new CStringVarName(is);
+</font>00303 <font class="comment"> is.serial(Name);*/</font>
+00304 }
+00305 };
+00306
+<a name="l00308"></a><a class="code" href="class_NLAIAGENT__CIndexedVarName.html#u0">00308</a> <font class="keyword">typedef</font> std::map&lt;CStringVarName ,CNameStruc *&gt; tMapName;
+00309
+00310 <font class="keyword">private</font>:
+00311
+00313 <font class="keyword">static</font> tMapName *_Map;
+00315 <font class="keyword">static</font> CNameStruc *_TableName;
+00320 <font class="keyword">static</font> <font class="keyword">const</font> sint32 _Bank;
+00321
+00323 <font class="keyword">static</font> sint32 _Count;
+00327 <font class="keyword">static</font> std::list&lt;CNameStruc *&gt; *_Empty;
+00328
+00329 <font class="keyword">private</font>:
+<a name="l00331"></a><a class="code" href="class_NLAIAGENT__CIndexedVarName.html#o0">00331</a> sint32 _Index;
+00332
+00333 <font class="keyword">public</font>:
+00334 CIndexedVarName(<font class="keyword">const</font> <font class="keywordtype">char</font> *name);
+00335 CIndexedVarName(<font class="keyword">const</font> CIndexedVarName &amp;name);
+00336 CIndexedVarName(<a class="code" href="class_NLMISC__IStream.html">NLMISC::IStream</a> &amp;is);
+00337
+00338
+00339 sint32 newIndex();
+00340
+00341 <font class="keyword">const</font> <font class="keywordtype">char</font> *getString() <font class="keyword">const</font>;
+00342
+00343 <font class="keyword">const</font> <a class="code" href="class_NLAIC__CIdentType.html">NLAIC::CIdentType</a> &amp;getType() <font class="keyword">const</font>;
+00344
+<a name="l00345"></a><a class="code" href="class_NLAIAGENT__CIndexedVarName.html#a6">00345</a> <font class="keyword">const</font> sint32 &amp;getIndex()<font class="keyword"> const
+</font>00346 <font class="keyword"> </font>{
+00347 <font class="keywordflow">return</font> _Index;
+00348 }
+00349
+00350 IVarName &amp;operator += (<font class="keyword">const</font> IVarName &amp;s);
+00351
+00352 IVarName &amp;operator -= (<font class="keyword">const</font> IVarName &amp;s);
+00353
+00354 IVarName &amp;operator = (<font class="keyword">const</font> IVarName &amp;v);
+00355
+00356 <font class="keywordtype">void</font> save(<a class="code" href="class_NLMISC__IStream.html">NLMISC::IStream</a> &amp;os);
+00357 <font class="keywordtype">void</font> load(<a class="code" href="class_NLMISC__IStream.html">NLMISC::IStream</a> &amp;is);
+00358 <font class="keyword">const</font> <a class="code" href="class_NLAIC__IBasicType.html">NLAIC::IBasicType</a> *clone() <font class="keyword">const</font>;
+00359 <font class="keyword">const</font> <a class="code" href="class_NLAIC__IBasicType.html">NLAIC::IBasicType</a> *newInstance() <font class="keyword">const</font>;
+00360 <font class="keywordtype">void</font> getDebugString(<font class="keywordtype">char</font> *text) <font class="keyword">const</font>;
+00361
+00362 ~CIndexedVarName();
+00363
+00364 <font class="keyword">private</font>:
+00366 <font class="keywordtype">void</font> insert(<font class="keyword">const</font> CStringVarName &amp;name);
+00368 <font class="keywordtype">void</font> clear();
+00369
+00370 <font class="keyword">public</font>:
+00371 <font class="keyword">static</font> <font class="keywordtype">void</font> initClass();
+00372 <font class="keyword">static</font> <font class="keywordtype">void</font> saveClass(<a class="code" href="class_NLMISC__IStream.html">NLMISC::IStream</a> &amp;is);
+00373 <font class="keyword">static</font> <font class="keywordtype">void</font> loadClass(<a class="code" href="class_NLMISC__IStream.html">NLMISC::IStream</a> &amp;is);
+00374 <font class="keyword">static</font> <font class="keywordtype">void</font> releaseClass();
+00375 };
+00376 }
+00377 <font class="preprocessor">#endif
+</font></div></pre>
+
+<!-- footer -->
+<BR><FONT Size=+5>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </FONT>
+</TD>
+<TD WIDTH=15><IMG SRC=http://www.nevrax.org/inc/img/pixel.gif WIDTH=15 HEIGHT=15 BORDER=0 ALT=""></TD>
+</TR>
+</TABLE>
+</BODY>
+</HTML>