[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[oMetah-devel] ometah/interface itsArgument.cpp itsArgument.hp...
From: |
Jean-Philippe Aumasson |
Subject: |
[oMetah-devel] ometah/interface itsArgument.cpp itsArgument.hp... |
Date: |
Fri, 03 Jun 2005 08:55:48 -0400 |
CVSROOT: /cvsroot/ometah
Module name: ometah
Branch:
Changes by: Jean-Philippe Aumasson <address@hidden> 05/06/03 12:55:48
Modified files:
interface : itsArgument.cpp itsArgument.hpp ometah.cpp
Log message:
* some modifs in syntax analysis
* mode verbose ( -v ) instead of #define DEBUG ...
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/ometah/ometah/interface/itsArgument.cpp.diff?tr1=1.10&tr2=1.11&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/ometah/ometah/interface/itsArgument.hpp.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/ometah/ometah/interface/ometah.cpp.diff?tr1=1.28&tr2=1.29&r1=text&r2=text
Patches:
Index: ometah/interface/itsArgument.cpp
diff -u ometah/interface/itsArgument.cpp:1.10
ometah/interface/itsArgument.cpp:1.11
--- ometah/interface/itsArgument.cpp:1.10 Fri Jun 3 10:37:32 2005
+++ ometah/interface/itsArgument.cpp Fri Jun 3 12:55:47 2005
@@ -1,5 +1,5 @@
/***************************************************************************
- * $Id: itsArgument.cpp,v 1.10 2005/06/03 10:37:32 jpa Exp $
+ * $Id: itsArgument.cpp,v 1.11 2005/06/03 12:55:47 jpa Exp $
* Copyright : Université Paris 12 Val-de-Marne
* Author : Johann Dréo <address@hidden>
* Author : Jean-Philippe Aumasson <address@hidden>
@@ -97,10 +97,10 @@
void itsArgumentParser::searchEndFlags()
{
- if (this->defArg("-V","--version","check version", false, "", "")){
+ if (this->defArg("-V", "--version", "check version", false, "", "")){
throw VERSION;
}
- if (this->defArg("-h","--help","show help", false, "", "")){
+ if (this->defArg("-h", "--help", "show help", false, "", "")){
throw USAGE;
}
}
@@ -152,7 +152,8 @@
}
-string itsArgumentParser::getStringValue(string key){
+string itsArgumentParser::getStringValue(string key)
+{
vector<itsArgument>::iterator iter;
iter = arguments.begin();
@@ -167,7 +168,8 @@
return "";
}
-double itsArgumentParser::getDoubleValue(string key){
+double itsArgumentParser::getDoubleValue(string key)
+{
vector<itsArgument>::iterator iter;
iter = arguments.begin();
@@ -222,34 +224,21 @@
void itsArgumentParser::usage()
{
- cout << "Usage: " << this->argv.at(0) << "[options]" << endl; // TODO
+ cout << "\nUsage: " << this->argv.at(0) << " [options]" << endl;
+ cout << "Options:" << endl;
vector<itsArgument>::iterator iter;
iter = this->arguments.begin();
while (iter != this->arguments.end()){
- cout << "\t" << iter->getKey()
- << ", " << iter->getLongKey()
- << "\t\t" << iter->getUsage()
- << endl;
+ printf("\t%s, %15s\t%s\n", iter->getKey().c_str(),
+ iter->getLongKey().c_str(), iter->getUsage().c_str());
iter++;
}
}
-// check if all parameters ( "-? | --* like ) have been checked
-bool itsArgumentParser::syntaxCorrect(){
-
- // check all -? | --* are in arguments
- // -> search for each one in vector arguments
-
- // ( value missing verification -> DONE IN DEFARGS )
- // -> nothing to do
-
- // Error if word followin flag with no value != -? | --*
- // -> err if !iter->hasValue() and arv[i+1] [0] != '-' (and i+1 < argc)
-
- // How ?
- // throw "explicit error" for each type error, including flag name, etc...
- // return false
+// check if all flags ( "-? | --* like ) are known
+bool itsArgumentParser::syntaxCorrect()
+{
stringstream s;
vector<string>::iterator iter;
@@ -258,25 +247,31 @@
iter ++; // reach first word after "./ometah"
// check if all flags are known
- while (iter != this->argv.end()){
+ while (iter < this->argv.end()){
if ((*iter)[0] == '-'){ // if is a flag (known or not)
-
if (!isAnArgument(*iter)) { // if is not a known flag
- s << "Unknown argument: " << *iter << endl;
+ s << "Unknown option: " << *iter << endl;
throw (s.str()).c_str();
return false;
}
- else { // is a correct flag (defArg-ed)
+ else { // is a correct flag (defArg-ed)
if (!this->hasValue(*iter)){
- iter++;
- if ((iter != this->argv.end()) && ((*iter)[0] != '-')){
+ if (( (iter+1) != this->argv.end()) && ( (*(iter+1))[0] != '-')){
s << "Value not needed for " << *iter << endl;
throw (s.str()).c_str();
+ return false;
}
}
+ else { // hasValue, checked by defArg
+ iter++;
+ }
}
}
-
+ else { // != -? && --*
+ s << "Unknown argument: " << *iter << endl;
+ throw (s.str()).c_str();
+ return false;
+ }
iter++;
}
return true;
@@ -307,6 +302,7 @@
if ((flag == iter->getKey()) || (flag == iter->getLongKey())){
return iter->getHasValue();
}
+ iter++;
}
stringstream s;
s << "Unexpected error in hasValue()" << endl;
Index: ometah/interface/itsArgument.hpp
diff -u ometah/interface/itsArgument.hpp:1.9
ometah/interface/itsArgument.hpp:1.10
--- ometah/interface/itsArgument.hpp:1.9 Fri Jun 3 10:37:32 2005
+++ ometah/interface/itsArgument.hpp Fri Jun 3 12:55:47 2005
@@ -1,5 +1,5 @@
/***************************************************************************
- * $Id: itsArgument.hpp,v 1.9 2005/06/03 10:37:32 jpa Exp $
+ * $Id: itsArgument.hpp,v 1.10 2005/06/03 12:55:47 jpa Exp $
* Copyright : Université Paris 12 Val-de-Marne
* Author : Johann Dréo <address@hidden>
* Author : Jean-Philippe Aumasson <address@hidden>
@@ -32,7 +32,7 @@
// #define DEBUG 1
-#define VERSION "OpenMetaheuristics version pre-alpha -10"
+#define VERSION "Open Metaheuristic - 2005"
#define USAGE "usage" // string value doesn't matter
using namespace std;
Index: ometah/interface/ometah.cpp
diff -u ometah/interface/ometah.cpp:1.28 ometah/interface/ometah.cpp:1.29
--- ometah/interface/ometah.cpp:1.28 Fri Jun 3 10:37:32 2005
+++ ometah/interface/ometah.cpp Fri Jun 3 12:55:47 2005
@@ -1,5 +1,5 @@
/***************************************************************************
- * $Id: ometah.cpp,v 1.28 2005/06/03 10:37:32 jpa Exp $
+ * $Id: ometah.cpp,v 1.29 2005/06/03 12:55:47 jpa Exp $
* Copyright : Université Paris 12 Val-de-Marne
* Author : Johann Dréo <address@hidden>
* Author : Jean-Philippe Aumasson <address@hidden>
@@ -31,10 +31,6 @@
int main(int argc, char ** argv)
{
-
-#ifdef DEBUG
- cout << "Enter debug mode" << endl;
-#endif
// differents sets of objects
itsSet<itsMetaheuristic*> setMetaheuristic;
@@ -95,8 +91,16 @@
// create a parser
itsArgumentParser argumentParser(argc, argumentsVector);
+ char VERBOSE;
+ if (argumentParser.defArg("-v", "--verbose", "verbose mode", false, "", ""))
+ VERBOSE = 1;
+ else
+ VERBOSE = 0;
+
+
+
try {
- // arguments definitions (and not elsewhere !!)
+ // arguments definitions (only here !!)
argumentParser.defArg("-p", "--problem",
"problem's name", true, "string", "Rosenbrock");
argumentParser.defArg("-m", "--metah",
@@ -107,7 +111,6 @@
"communication server mode" ,true, "string",
"Embedded");
argumentParser.defArg("-D", "--debug",
"debug key" ,true, "string", "");
-
argumentParser.defArg("-i", "--iterations",
"maximum number of iterations" ,true, "int", "10");
argumentParser.defArg("-s", "--sample-size",
@@ -138,29 +141,29 @@
try {
- if (argumentParser.syntaxCorrect()){
-#ifdef DEBUG
- cout << "syntax ok" << endl;
-#endif
+ if (argumentParser.syntaxCorrect()){
+ if (VERBOSE)
+ cout << "syntax ok" << endl;
}
}
catch (const char * s) {
cerr << s;
+ argumentParser.usage();
return -1;
}
-#ifdef DEBUG
- cout << "\ngetValues :\n-----" << "\n problem: " <<
argumentParser.getStringValue("-p")
- << "\n metah: "<< argumentParser.getStringValue("-m");
- cout << "\n client: " << argumentParser.getStringValue("-C")
- << "\n server " << argumentParser.getStringValue("-S")
- << "\n debug: "<< argumentParser.getStringValue("-D")
- << "\n iterations: " << argumentParser.getIntValue("-i")
- << "\n sample size: " << argumentParser.getIntValue("-s")
- << "\n dimension: " << argumentParser.getIntValue("-d")
- << endl << endl;
-#endif
+ if (VERBOSE){
+ cout << "\ngetValues :\n-----" << "\n problem: " <<
argumentParser.getStringValue("-p")
+ << "\n metah: "<< argumentParser.getStringValue("-m");
+ cout << "\n client: " << argumentParser.getStringValue("-C")
+ << "\n server " << argumentParser.getStringValue("-S")
+ << "\n debug: "<< argumentParser.getStringValue("-D")
+ << "\n iterations: " << argumentParser.getIntValue("-i")
+ << "\n sample size: " << argumentParser.getIntValue("-s")
+ << "\n dimension: " << argumentParser.getIntValue("-d")
+ << endl << endl;
+ }
/*
@@ -177,9 +180,10 @@
cerr << s;
return -1;
}
-#ifdef DEBUG
- cout << "items chosen" << endl;
-#endif
+
+ if (VERBOSE)
+ cout << "items chosen" << endl;
+
/*
* Links
@@ -198,10 +202,9 @@
setCommunicationClient.item()->problem = setCommunicationServer.item();
}
-
-#ifdef DEBUG
- cout << "links done" << endl;
-#endif
+ if (VERBOSE)
+ cout << "links done" << endl;
+
/*
* Parameter setting
@@ -212,9 +215,9 @@
setCommunicationClient.item()->initialization( parameters );
-#ifdef DEBUG
- cout << "initialization communication client done" << endl;
-#endif
+ if (VERBOSE)
+ cout << "initialization communication client done" << endl;
+
@@ -225,7 +228,7 @@
// TESTS
// Debug keys
- //setMetaheuristic.item()->addDebugKey(cmd.debug_key);
+ //setMetaheuristic.item()->addDebugKey(argumentParser.getStringValue("-D"));
//setMetaheuristic.item()->addDebugKey("selectNumber");
// Log
@@ -236,11 +239,10 @@
setMetaheuristic.item()->setSampleSize( argumentParser.getIntValue("-s") );
setMetaheuristic.item()->setIterationsMaxNumber(
argumentParser.getIntValue("-i") );
-#ifdef DEBUG
- cout << "parameters ok, starting optimization..." << endl;
-#endif
-
+ if (VERBOSE)
+ cout << "parameters ok, starting optimization..." << endl;
+
// Starting the optimization
@@ -248,10 +250,8 @@
<< " on " << setProblem.item()->getName()
<< " using " << setCommunicationClient.item()->getKey() << endl;
-
//clog << setProblem.item()->getName() << " description:" << endl;
//clog << setProblem.item()->getInformations() << endl;
-
try {
setMetaheuristic.item()->start();
- [oMetah-devel] ometah/interface itsArgument.cpp itsArgument.hp..., Jean-Philippe Aumasson, 2005/06/02
- [oMetah-devel] ometah/interface itsArgument.cpp itsArgument.hp..., Jean-Philippe Aumasson, 2005/06/02
- [oMetah-devel] ometah/interface itsArgument.cpp itsArgument.hp..., Jean-Philippe Aumasson, 2005/06/02
- [oMetah-devel] ometah/interface itsArgument.cpp itsArgument.hp..., Jean-Philippe Aumasson, 2005/06/03
- [oMetah-devel] ometah/interface itsArgument.cpp itsArgument.hp..., Jean-Philippe Aumasson, 2005/06/03
- [oMetah-devel] ometah/interface itsArgument.cpp itsArgument.hp...,
Jean-Philippe Aumasson <=
- [oMetah-devel] ometah/interface itsArgument.cpp itsArgument.hp..., Jean-Philippe Aumasson, 2005/06/03