source: PSPA/Interface_Web/trunk/pspaWT/sources/controler/src/abstractSoftware.cc @ 472

Last change on this file since 472 was 472, checked in by garnier, 11 years ago

Modification pour remettre en marche le Run. Desormais Transport passe, mais aucun test ne permet de dire si c est bon

File size: 2.5 KB
Line 
1#include "abstractSoftware.h"
2#include "dataManager.h"
3#include <algorithm>
4#include <iostream>
5
6abstractSoftware::abstractSoftware()
7{
8  dataManager_ = NULL;
9  nameOfSoftware_ = nomDeLogiciel("unknownSoftware");
10}
11
12abstractSoftware::abstractSoftware(string inputFileName, sectionToExecute* sect, dataManager* data)
13{
14  inputFileName_ = inputFileName;
15  sectionToExecute_ = sect;
16  numeroDeb_deprecated_ = 0;
17  numeroFin_deprecated_ = 0;
18  dataManager_ = data;
19  nameOfSoftware_ = nomDeLogiciel("unknownSoftware");
20}
21
22
23bool abstractSoftware::ComputationLimitsOk_deprecated() const 
24{
25/*  if (numeroDeb_deprecated_ < 1 || numeroFin_deprecated__ < 1 || numeroDeb_deprecated_ > dataManager_->getBeamLineSize() || numeroFin_deprecated__ > dataManager_->getBeamLineSize() ) {
26    consoleMessage(" abstractSoftware::initComputationLimit : num of element out of limits in software " + getName() );
27    return false;
28  } else {
29    return true;
30  }
31*/
32  return true;
33}
34
35void abstractSoftware::registerElement(nomdElements::typedElement nomdel,trivaluedBool b) 
36{
37  //  std::cout << " abstractSoftware::registerElement soft : " << nameOfSoftware_.getString() << std::endl;
38  if (b == TBoolIgnore) {
39    //    std::cout << " abstractSoftware::registerElement j'enregistre element " <<  nomdel << "   ignore " << std::endl;
40    ignoredElements_.push_back(nomdel);
41  } else if (b == TBoolOk) {
42    //    std::cout << " abstractSoftware::registerElement j'enregistre element " <<  nomdel << "  OK " << std::endl;
43    acceptedElements_.push_back(nomdel);
44  }
45}
46
47trivaluedBool abstractSoftware::doAcceptElement(nomdElements::typedElement typdel) 
48{
49
50  //xx
51  if (acceptedElements_.size() == 0 && nameOfSoftware_ != nomDeLogiciel::unknownSoftware) {
52    return TBoolError;
53  }
54
55  if (std::find(acceptedElements_.begin(),acceptedElements_.end(),typdel) != acceptedElements_.end()) {
56    return TBoolOk;
57  }
58
59  if (ignoredElements_.size() == 0) {
60    return TBoolError;
61  }
62
63  if (std::find(ignoredElements_.begin(),ignoredElements_.end(),typdel) != ignoredElements_.end()) {
64    return TBoolIgnore;
65  }
66
67  return TBoolOk;
68}
69
70bool abstractSoftware::launchJob(string commandLine, string& resul)
71{
72  bool ExecuteStatus = true;
73
74  FILE* pp = popen(commandLine.c_str(), "r");
75  ostringstream sortie;
76  if (pp == NULL) {
77    sortie << " launching failed : " << commandLine << endl;
78    ExecuteStatus = false;
79  } else {
80    // on copie la sortie dans le fichier assigne
81    char buf[132];
82    while (fgets(buf, sizeof buf, pp))
83      {
84        sortie << buf;
85      }
86    pclose(pp);
87  }
88  resul =  sortie.str();
89  return ExecuteStatus;
90}
Note: See TracBrowser for help on using the repository browser.