4 * Auteur : Ivan DUTKA-MALEN - EDF R&D
5 * Mail : mailto:ivan.dutka-malen@der.edf.fr
6 * Date : Fri Nov 14 11:00:39 2003
14 #include "Batch_Job_Local.hxx"
19 Job_Local::Job_Local(const Job & job) :
20 _command(), _param(job.getParametre()), _env(job.getEnvironnement())
22 // On positionne le nom du EXECUTIONHOST a "localhost" s'il n'est pas precise
23 if ( _param.find(EXECUTIONHOST) == _param.end() ) {
24 _param[EXECUTIONHOST] = "localhost";
27 // On convertit les objets Parametre et Environnement en liste chainee d'attributs + operateur
28 addEnvironnement( _env );
29 addParametre ( _param );
35 Job_Local::~Job_Local()
40 void Job_Local::addParametre(const Parametre & P)
42 // En dernier, on ajoute le chemin complet de la commande
43 _command += P[EXECUTABLE].str();
47 void Job_Local::addEnvironnement(const Environnement & E)
49 for(Environnement::const_iterator it=E.begin(); it != E.end(); it++) {
50 string variable = (*it).first;
51 string value = (*it).second;
53 // On remplace toutes les occurences de single-quote par backslash-single-quote
54 for(int pos=0; pos < value.size(); pos++) {
55 pos = value.find("'", pos);
56 if ( (pos < 0) || (pos > value.size()) ) break;
57 value.replace(pos, 1, "\'");
59 _command += variable + "='" + value + "' ";
63 string Job_Local::getCommand(void) const {
68 // Retourne l'objet Parametre
69 Parametre Job_Local::getParametre() const
74 // Retourne l'objet Environnement
75 Environnement Job_Local::getEnvironnement() const