#ifndef EXPANDEDMACHINE_SEEN #define EXPANDEDMACHINE_SEEN #include #include #include "abstractElement.h" #include "sector.h" #include "computingBlock.h" #include "UAP/UAPNode.hpp" using namespace std; class expandedMachine { expandedMachine() {;} public : expandedMachine(dataManager* dtmg) : machineName_("dummy"), dataManager_(dtmg) {;} ~expandedMachine() { for ( unsigned k=0; k < computingBlocks_.size(); k++ ) delete computingBlocks_.at(k); } void setSoftware(std::string logiciel, computingBlock* cpblk); void fromSectors( const vector& sect ); // computingBlock* openBlock(dataManager* dmg); bool openNewLastBlock(); inline vector& getElements() {return elements_;} inline vector& getComputingBlocks() {return computingBlocks_;} abstractElement* getElementFromLabel(string lab); int getElementRankFromLabel(string lab); int getElementRankFromPointer(abstractElement* ptr); void FileAMLOutput(UAPNode* root); bool FileAMLInput( UAPNode* entree); abstractSoftware* getSoftwarePointer(std::string logiciel, computingBlock* cpblk); void setFirstElementOfBlock(computingBlock* bclk, int index); void setLastElementOfBlock(computingBlock* bclk, int index); abstractElement* getElementPointer( unsigned rang); bool openNewBlockAfter(computingBlock* cpbl); bool areDataCoherent(); bool eraseComputingBlock(computingBlock* ); inline unsigned numberOfElements() { return elements_.size(); } private: void clearComputingBlock(int a); dataManager* dataManager_; string machineName_; vector elements_; vector computingBlocks_; }; #endif