#ifndef ABSTRACTSOFTWARE_SEEN #define ABSTRACTSOFTWARE_SEEN #include "globalParameters.h" #include "sectorParameters.h" #include "particleBeam.h" #include "nomDeLogiciel.h" #include "nomdElements.h" #include "trivaluedBool.h" #include #include using namespace std; class dataManager; class sectionToExecute; class computingBlock; class abstractSoftware { protected : dataManager* dataManager_; string inputFileName_; nomDeLogiciel* nameOfSoftware_; /** Accepted elements list for this software */ // std::vector acceptedElements_; /** Ignore software list for this element */ // std::vector ignoredElements_; abstractSoftware(); bool launchJob(string commandLine, string& resul); // void registerElement(nomdElements::typedElement nomdel,trivaluedBool b); /* sectionToExecute* getSectionToExecute() { */ /* return sectionToExecute_; */ /* } */ computingBlock* getComputingBlock() { return compBlock_;; } public : // abstractSoftware(string, sectionToExecute*, dataManager* ); abstractSoftware(string, computingBlock*, dataManager* ); ~abstractSoftware() { delete nameOfSoftware_; } inline const nomDeLogiciel* getNomDeLogiciel() const { return nameOfSoftware_; } // trivaluedBool doAcceptElement(nomdElements::typedElement typdel); virtual bool createInputFile(particleBeam* beamBefore, string workingDir) = 0; virtual bool execute(string workingDir) = 0; virtual bool buildBeamAfterElements(string workingDir) = 0; /** Color of the background of this sofware Should be a valid Css name as FFEEDD */ virtual string getColor() = 0; /** Name of this software */ inline string getName() const { return nameOfSoftware_->getString(); } private : // sectionToExecute* sectionToExecute_; computingBlock* compBlock_; }; #endif