ometah-devel
[Top][All Lists]
Advanced

[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();




reply via email to

[Prev in Thread] Current Thread [Next in Thread]