#include "cparams.h" #include #include #include #include "../tuning.h" time_t CParams::lancement_programme = time(NULL) ; #define USAGE \ "Usage :\n\t%s [-h|-?] [-t TIME] [-n INSTANCE] [-i TEAM_ID] [-s]\n"\ "\toptions : \n"\ "\t\t-h|-? : affiche ce message\n"\ "\t\t-t TIME : limite de temps d'exécution\n"\ "\t\t-n INSTANCE : nom du répertoire contenant l'instance du problème (dans ../../data/)\n"\ "\t\t-i TEAM_ID : retourne l'identifiant de l'équipe\n"\ "\t\t-r SOLUTION : nom du fichier solution à produire\n"\ "\t\t-s : produire des stats plutôt que lancer l'optimisation\n"\ "\n\n" /* lecture des options */ /* ========================================================================= */ /* ========================================================================= */ /* Quoi: Analyse les arguments de la ligne de commande */ /* Entrée: argc (nombre d'arguments) et argv (liste des arguments) */ /* */ /* ------------------------------------------------------------------------- */ CParams::CParams( int argc, char * argv[] ) { /* paramètres par défaut */ m_instance_given = false ; m_solution_given = false ; m_optimize = true ; m_time_limit = DEFAULT_TIME_LIMIT ; /* lecture des paramètres */ string erreur = "" ; char *pgm_name; pgm_name = argv[0]; argv++; (argc)--; if (!argc) erreur = "Aucun argument trouvé" ; while (argc) { string arg = *argv ; if (arg == "-h" || arg == "-?") { /* HELP */ erreur = "Help :" ; } else if ( arg == "-t") /// limite de temps { argc--; argv++; if (argc) m_time_limit = atoi(*argv) ; else erreur = "-t utilisé sans arguments"; } else if ( arg == "-n") /// instance { argc--; argv++; if (argc) { m_instance_name = *argv ; m_instance_given = true ; } else erreur = "-n utilisé sans arguments"; } else if ( arg == "-r") /// nom de la solution { argc--; argv++; if (argc) { m_solution_name = *argv ; m_solution_given = true ; } else erreur = "-r utilisé sans arguments"; } else if ( arg == "-i") /// team_id { argc--; argv++; if (!argc or string("TEAM_ID")!=*argv) //m_team_id = atoi(*argv) ; //else erreur = "-i utilisé sans l'argument TEAM_ID"; } else if ( arg == "-s" ) /// statistiques (custom) { m_optimize = false ; } else erreur = "Argument inconnu"; argc--; argv++; } if (erreur!="") { fprintf(stderr, "%s\n", erreur.c_str()) ; fprintf(stderr, USAGE, pgm_name) ; throw string("Arrêt après la lecture des arguments"); } } CParams::~CParams() { }