===== Ajout d'un paramètre ===== Voici les étapes à suivre pour ajouter un nouveau paramètre: - Éditer un fichier ''.txt'' dans le répertoire ''src/Attributes''. Pour ajouter un paramètre d'algorithme ou de search, on peut utiliser le fichier ''runAttributesDefinition.txt''. - Noter qu'il y a des paramètres pour la définition du problème, pour la cache, pour l'output, etc. La majorité du temps, ce sera un paramètre d'algorithme que l'on veut ajouter, donc un paramètre de "run". - Les paramètres de run sont divisés en plusieurs fichiers selon leur algorithme. Pour le développement, utiliser ''runAttributesDefinition.txt'' est suffisant, quitte à créer un nouveau fichier plus tard si jugé nécessaire. - Se baser sur la syntaxe des autres paramètres pour ajouter un nouveau paramètre. Les détails de la syntaxe sont indiqués au début du fichier. * Nom du paramètre (ex. ''MY_NEW_SEARCH'') * Type du paramètre (ex. ''bool'') * Valeur par défaut (ex. ''false'') * Short info * Long info (description lorsqu'on exécute la commande ''nomad -h MY_NEW_SEARCH'') * keywords * flags optionnels. - Les champs short info, long info et keywords sont délimités par ''\('' et ''\)''. - Compiler nomad. - Vérifier que le paramètre est bien reconnu: ''nomad -h MY_NEW_SEARCH''. - Pour utiliser le paramètre dans le code, utiliser la méthode ''getAttributeValue'' avec le type du paramètre. Par exemple: ''runParams->getAttributeValue("MY_NEW_SEARCH")''. - S'il y a des validation à faire sur la valeur du paramètre, elles peuvent être rajoutées dans la méthode ''checkAndComply()'' correspondante. Par exemple, voir: ''RunParameters::checkAndComply()'' dans le fichier ''Param/RunParameters.cpp''. Exemple de validation: auto seed = getAttributeValueProtected("SEED" ,false); if ( seed < 0) { throw NOMAD::Exception(__FILE__,__LINE__, "Parameters check: SEED must be non-negative" ); }