Paradiseo-eo sources added
git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@40 331e1502-861f-0410-8da2-ba01fb791d7f
This commit is contained in:
parent
bc1f453978
commit
c3aec878e5
3609 changed files with 342772 additions and 0 deletions
210
trunk/paradiseo-eo/doc/html/eo_parser_8h-source.html
Normal file
210
trunk/paradiseo-eo/doc/html/eo_parser_8h-source.html
Normal file
|
|
@ -0,0 +1,210 @@
|
|||
<!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>EO: eoParser.h Source File</title>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
||||
</head><body>
|
||||
<!-- Generated by Doxygen 1.3.9.1 -->
|
||||
<div class="qindex"> <form class="search" action="search.php" method="get">
|
||||
<a class="qindex" href="main.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</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">Class List</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">Class Members</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>
|
||||
<div class="nav">
|
||||
<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000011.html">utils</a></div>
|
||||
<h1>eoParser.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">/* (c) Marc Schoenauer, Maarten Keijzer and GeNeura Team, 2000</span>
|
||||
00002 <span class="comment"></span>
|
||||
00003 <span class="comment">This library is free software; you can redistribute it and/or modify it under</span>
|
||||
00004 <span class="comment">the terms of the GNU Lesser General Public License as published by the Free</span>
|
||||
00005 <span class="comment">Software Foundation; either version 2 of the License, or (at your option) any</span>
|
||||
00006 <span class="comment">later version.</span>
|
||||
00007 <span class="comment"></span>
|
||||
00008 <span class="comment">This library is distributed in the hope that it will be useful, but WITHOUT ANY</span>
|
||||
00009 <span class="comment">WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A</span>
|
||||
00010 <span class="comment">PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.</span>
|
||||
00011 <span class="comment"></span>
|
||||
00012 <span class="comment">You should have received a copy of the GNU Lesser General Public License along</span>
|
||||
00013 <span class="comment">with this library; if not, write to the Free Software Foundation, Inc., 59</span>
|
||||
00014 <span class="comment">Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>
|
||||
00015 <span class="comment"></span>
|
||||
00016 <span class="comment">Contact: http://eodev.sourceforge.net</span>
|
||||
00017 <span class="comment"> todos@geneura.ugr.es, http://geneura.ugr.es</span>
|
||||
00018 <span class="comment"> Marc.Schoenauer@polytechnique.fr</span>
|
||||
00019 <span class="comment"> mkeijzer@dhi.dk</span>
|
||||
00020 <span class="comment">*/</span>
|
||||
00021
|
||||
00022
|
||||
00023 <span class="preprocessor">#ifndef EO_PARSER_H</span>
|
||||
00024 <span class="preprocessor"></span><span class="preprocessor">#define EO_PARSER_H</span>
|
||||
00025 <span class="preprocessor"></span>
|
||||
00026 <span class="preprocessor">#include <map></span>
|
||||
00027 <span class="preprocessor">#include <sstream></span>
|
||||
00028 <span class="preprocessor">#include <string></span>
|
||||
00029
|
||||
00030 <span class="preprocessor">#include "eoParam.h"</span>
|
||||
00031 <span class="preprocessor">#include "eoObject.h"</span>
|
||||
00032 <span class="preprocessor">#include "eoPersistent.h"</span>
|
||||
00033
|
||||
<a name="l00040"></a><a class="code" href="classeo_parameter_loader.html">00040</a> <span class="keyword">class </span><a class="code" href="classeo_parameter_loader.html">eoParameterLoader</a>
|
||||
00041 {
|
||||
00042 <span class="keyword">public</span> :
|
||||
00043
|
||||
00045 <span class="keyword">virtual</span> ~<a class="code" href="classeo_parameter_loader.html">eoParameterLoader</a>();
|
||||
00046
|
||||
00052 <span class="keyword">virtual</span> <span class="keywordtype">void</span> processParam(<a class="code" href="classeo_param.html">eoParam</a>& param, std::string section = <span class="stringliteral">""</span>) = 0;
|
||||
00053
|
||||
00057 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isItThere(<a class="code" href="classeo_param.html">eoParam</a>& _param) <span class="keyword">const </span>= 0;
|
||||
00058
|
||||
00069 <span class="keyword">template</span> <<span class="keyword">class</span> ValueType>
|
||||
<a name="l00070"></a><a class="code" href="classeo_parameter_loader.html#a3">00070</a> <a class="code" href="classeo_value_param.html">eoValueParam<ValueType></a>& createParam(ValueType _defaultValue,
|
||||
00071 std::string _longName,
|
||||
00072 std::string _description,
|
||||
00073 <span class="keywordtype">char</span> _shortHand = 0,
|
||||
00074 std::string _section = <span class="stringliteral">""</span>,
|
||||
00075 <span class="keywordtype">bool</span> _required = <span class="keyword">false</span>)
|
||||
00076 {
|
||||
00077 <a class="code" href="classeo_value_param.html">eoValueParam<ValueType></a>* p = <span class="keyword">new</span> <a class="code" href="classeo_value_param.html">eoValueParam<ValueType></a>(_defaultValue,
|
||||
00078 _longName,
|
||||
00079 _description,
|
||||
00080 _shortHand,
|
||||
00081 _required);
|
||||
00082 ownedParams.push_back(p);
|
||||
00083 processParam(*p, _section);
|
||||
00084 <span class="keywordflow">return</span> *p;
|
||||
00085 }
|
||||
00086
|
||||
00087
|
||||
00088 <span class="keyword">private</span> :
|
||||
00089
|
||||
00090 std::vector<eoParam*> ownedParams;
|
||||
00091 };
|
||||
00092
|
||||
00093
|
||||
00094
|
||||
<a name="l00100"></a><a class="code" href="classeo_parser.html">00100</a> <span class="keyword">class </span><a class="code" href="classeo_parser.html">eoParser</a> : <span class="keyword">public</span> <a class="code" href="classeo_parameter_loader.html">eoParameterLoader</a>, <span class="keyword">public</span> <a class="code" href="classeo_object.html">eoObject</a>, <span class="keyword">public</span> <a class="code" href="classeo_persistent.html">eoPersistent</a>
|
||||
00101 {
|
||||
00102
|
||||
00103 <span class="keyword">public</span>:
|
||||
00104
|
||||
00119 <a class="code" href="classeo_parser.html#a0">eoParser</a> ( <span class="keywordtype">unsigned</span> _argc, <span class="keywordtype">char</span> **_argv , std::string _programDescription = <span class="stringliteral">""</span>,
|
||||
00120 std::string _lFileParamName = <span class="stringliteral">"param-file"</span>, <span class="keywordtype">char</span> _shortHand = <span class="charliteral">'p'</span>);
|
||||
00121
|
||||
00125 <span class="keywordtype">void</span> <a class="code" href="classeo_parser.html#a1">processParam</a>(<a class="code" href="classeo_param.html">eoParam</a>& param, std::string section = <span class="stringliteral">""</span>);
|
||||
00126
|
||||
00127 <span class="keywordtype">void</span> <a class="code" href="classeo_parser.html#a2">readFrom</a>(std::istream& is);
|
||||
00128
|
||||
00129 <span class="keywordtype">void</span> <a class="code" href="classeo_parser.html#a3">printOn</a>(std::ostream& os) <span class="keyword">const</span>;
|
||||
00130
|
||||
<a name="l00132"></a><a class="code" href="classeo_parser.html#a4">00132</a> std::string <a class="code" href="classeo_parser.html#a4">className</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="stringliteral">"Parser"</span>; }
|
||||
00133
|
||||
00135 <span class="keywordtype">bool</span> <a class="code" href="classeo_parser.html#a5">userNeedsHelp</a>(<span class="keywordtype">void</span>);
|
||||
00140 <span class="keywordtype">void</span> <a class="code" href="classeo_parser.html#a6">printHelp</a>(std::ostream& os);
|
||||
00141
|
||||
00142 std::string ProgramName() { <span class="keywordflow">return</span> programName; }
|
||||
00143
|
||||
<a name="l00148"></a><a class="code" href="classeo_parser.html#a8">00148</a> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classeo_parser.html#a8">isItThere</a>(<a class="code" href="classeo_param.html">eoParam</a>& _param)<span class="keyword"> const</span>
|
||||
00149 <span class="keyword"> </span>{ <span class="keywordflow">return</span> getValue(_param).first; }
|
||||
00150
|
||||
00159 <a class="code" href="classeo_param.html">eoParam</a> * <a class="code" href="classeo_parser.html#a9">getParamWithLongName</a>(<span class="keyword">const</span> std::string& _name) <span class="keyword">const</span>;
|
||||
00160
|
||||
00161
|
||||
00162
|
||||
00172 <span class="keyword">template</span> <<span class="keyword">class</span> ValueType>
|
||||
<a name="l00173"></a><a class="code" href="classeo_parser.html#a10">00173</a> <a class="code" href="classeo_value_param.html">eoValueParam<ValueType></a>& <a class="code" href="classeo_parser.html#a10">getORcreateParam</a>(ValueType _defaultValue,
|
||||
00174 std::string _longName,
|
||||
00175 std::string _description,
|
||||
00176 <span class="keywordtype">char</span> _shortHand = 0,
|
||||
00177 std::string _section = <span class="stringliteral">""</span>,
|
||||
00178 <span class="keywordtype">bool</span> _required = <span class="keyword">false</span>)
|
||||
00179 {
|
||||
00180 <a class="code" href="classeo_param.html">eoParam</a>* ptParam = <a class="code" href="classeo_parser.html#a9">getParamWithLongName</a>(_longName);
|
||||
00181 <span class="keywordflow">if</span> (ptParam) {
|
||||
00182 <span class="comment">// found</span>
|
||||
00183 <a class="code" href="classeo_value_param.html">eoValueParam<ValueType></a>* ptTypedParam =
|
||||
00184 dynamic_cast<eoValueParam<ValueType>*>(ptParam);
|
||||
00185 <span class="keywordflow">return</span> *ptTypedParam;
|
||||
00186 }
|
||||
00187 <span class="comment">// not found -> create it</span>
|
||||
00188 <span class="keywordflow">return</span> <a class="code" href="classeo_parameter_loader.html#a3">createParam</a> (_defaultValue, _longName, _description,
|
||||
00189 _shortHand, _section, _required);
|
||||
00190 }
|
||||
00191
|
||||
00192
|
||||
00193
|
||||
00210 <span class="keyword">template</span> <<span class="keyword">class</span> ValueType>
|
||||
<a name="l00211"></a><a class="code" href="classeo_parser.html#a11">00211</a> <a class="code" href="classeo_value_param.html">eoValueParam<ValueType></a>& <a class="code" href="classeo_parser.html#a11">setORcreateParam</a>(ValueType _defaultValue,
|
||||
00212 std::string _longName,
|
||||
00213 std::string _description,
|
||||
00214 <span class="keywordtype">char</span> _shortHand = 0,
|
||||
00215 std::string _section = <span class="stringliteral">""</span>,
|
||||
00216 <span class="keywordtype">bool</span> _required = <span class="keyword">false</span>)
|
||||
00217 {
|
||||
00218 <a class="code" href="classeo_value_param.html">eoValueParam<ValueType></a>& param = <a class="code" href="classeo_parameter_loader.html#a3">createParam</a>(_defaultValue, _longName, _description,
|
||||
00219 _shortHand, _section, _required);
|
||||
00220 std::ostringstream os;
|
||||
00221 os << _defaultValue;
|
||||
00222 <span class="keywordflow">if</span>(<a class="code" href="classeo_parser.html#a8">isItThere</a>(param)) {
|
||||
00223 param.<a class="code" href="classeo_value_param.html#a5">setValue</a>(os.str());
|
||||
00224 } <span class="keywordflow">else</span> {
|
||||
00225 longNameMap[_longName] = os.str();
|
||||
00226 shortNameMap[_shortHand] = os.str();
|
||||
00227 }
|
||||
00228 <span class="keywordflow">return</span> param;
|
||||
00229 }
|
||||
00230
|
||||
00231
|
||||
00232
|
||||
<a name="l00234"></a><a class="code" href="classeo_parser.html#a12">00234</a> <span class="keywordtype">void</span> <a class="code" href="classeo_parser.html#a12">setStopOnUnknownParam</a>(<span class="keywordtype">bool</span> _b) {stopOnUnknownParam.<a class="code" href="classeo_value_param.html#a2">value</a>()=_b;}
|
||||
00235 <span class="keywordtype">bool</span> getStopOnUnknownParam() {<span class="keywordflow">return</span> stopOnUnknownParam.<a class="code" href="classeo_value_param.html#a2">value</a>();}
|
||||
00236
|
||||
<a name="l00238"></a><a class="code" href="classeo_parser.html#a14">00238</a> <span class="keywordtype">void</span> <a class="code" href="classeo_parser.html#a14">setPrefix</a>(<span class="keyword">const</span> std:: string & _prefix) {prefix = _prefix;}
|
||||
00239
|
||||
00240 <span class="keywordtype">void</span> resetPrefix() {prefix = <span class="stringliteral">""</span>;}
|
||||
00241
|
||||
00242 std::string getPrefix() {<span class="keywordflow">return</span> prefix;}
|
||||
00243
|
||||
00244 <span class="keyword">private</span>:
|
||||
00245
|
||||
00246 <span class="keywordtype">void</span> doRegisterParam(<a class="code" href="classeo_param.html">eoParam</a>& param) <span class="keyword">const</span>;
|
||||
00247
|
||||
00248 std::pair<bool, std::string> getValue(<a class="code" href="classeo_param.html">eoParam</a>& _param) <span class="keyword">const</span>;
|
||||
00249
|
||||
00250 <span class="keywordtype">void</span> updateParameters() <span class="keyword">const</span>;
|
||||
00251
|
||||
00252 <span class="keyword">typedef</span> std::multimap<std::string, eoParam*> MultiMapType;
|
||||
00253
|
||||
00254 <span class="comment">// used to store all parameters that are processed</span>
|
||||
00255 MultiMapType params;
|
||||
00256
|
||||
00257 std::string programName;
|
||||
00258 std::string programDescription;
|
||||
00259
|
||||
00260 <span class="keyword">typedef</span> std::map<char, std::string> ShortNameMapType;
|
||||
00261 ShortNameMapType shortNameMap;
|
||||
00262
|
||||
00263 <span class="keyword">typedef</span> std::map<std::string, std::string> LongNameMapType;
|
||||
00264 LongNameMapType longNameMap;
|
||||
00265
|
||||
00266 <a class="code" href="classeo_value_param.html">eoValueParam<bool></a> needHelp;
|
||||
00267 <a class="code" href="classeo_value_param.html">eoValueParam<bool></a> stopOnUnknownParam;
|
||||
00268
|
||||
00269 <span class="keyword">mutable</span> std::vector<std::string> messages;
|
||||
00270
|
||||
00271 std::string prefix; <span class="comment">// used for all created params - in processParam</span>
|
||||
00272
|
||||
00273 };
|
||||
00274
|
||||
00275
|
||||
00276
|
||||
00277 <span class="preprocessor">#endif // EO_PARSER_H</span>
|
||||
00278 <span class="preprocessor"></span>
|
||||
00279
|
||||
00280
|
||||
00281 <span class="comment">// Local Variables:</span>
|
||||
00282 <span class="comment">// coding: iso-8859-1</span>
|
||||
00283 <span class="comment">// mode:C++</span>
|
||||
00284 <span class="comment">// c-file-style: "Stroustrup"</span>
|
||||
00285 <span class="comment">// comment-column: 35</span>
|
||||
00286 <span class="comment">// fill-column: 80</span>
|
||||
00287 <span class="comment">// End:</span>
|
||||
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Oct 19 05:06:36 2006 for EO by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Add table
Add a link
Reference in a new issue