From eb87b5afd7d814cdce825c6e75342001fe01b978 Mon Sep 17 00:00:00 2001 From: Anthony Geay Date: Fri, 15 Jul 2016 17:04:48 +0200 Subject: [PATCH] Useful access method to available resources --- src/evalyfx/YACSEvalResource.cxx | 23 ++++++++++++++--------- src/evalyfx/YACSEvalResource.hxx | 2 ++ src/evalyfx_swig/evalyfx.i | 1 + 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/evalyfx/YACSEvalResource.cxx b/src/evalyfx/YACSEvalResource.cxx index a3132d0d2..cd0611353 100644 --- a/src/evalyfx/YACSEvalResource.cxx +++ b/src/evalyfx/YACSEvalResource.cxx @@ -405,7 +405,6 @@ YACSEvalResource *YACSEvalListOfResources::at(std::size_t i) const bool YACSEvalListOfResources::isInteractive() const { - const MapOfParserResourcesType& zeList(_rm->GetList()); std::vector allMachines(getAllChosenMachines()); if(allMachines.empty()) return true; @@ -413,14 +412,7 @@ bool YACSEvalListOfResources::isInteractive() const std::vector status(sz); for(std::vector::const_iterator it=allMachines.begin();it!=allMachines.end();it++,ii++) { - std::map::const_iterator it2(zeList.find(*it)); - if(it2==zeList.end()) - { - std::ostringstream oss; oss << "YACSEvalListOfResources::isInteractive : presence of non existing \"" << *it << "\" !"; - throw YACS::Exception(oss.str()); - } - const ParserResourcesType& elt((*it2).second); - status[ii]=(elt.Batch==none); + status[ii]=isMachineInteractive(*it); } std::size_t trueRet(std::count(status.begin(),status.end(),true)),falseRet(std::count(status.begin(),status.end(),false)); if(trueRet==sz && falseRet==0) @@ -464,6 +456,19 @@ YACSEvalListOfResources::~YACSEvalListOfResources() delete *it; } +bool YACSEvalListOfResources::isMachineInteractive(const std::string& machine) const +{ + const MapOfParserResourcesType& zeList(_rm->GetList()); + std::map::const_iterator it2(zeList.find(machine)); + if(it2==zeList.end()) + { + std::ostringstream oss; oss << "YACSEvalListOfResources::isMachineInteractive : no such machine with name \"" << machine << "\" !"; + throw YACS::Exception(oss.str()); + } + const ParserResourcesType& elt((*it2).second); + return (elt.Batch==none); +} + class EffectiveComparator { public: diff --git a/src/evalyfx/YACSEvalResource.hxx b/src/evalyfx/YACSEvalResource.hxx index 0155e9516..e66dfb933 100644 --- a/src/evalyfx/YACSEvalResource.hxx +++ b/src/evalyfx/YACSEvalResource.hxx @@ -173,6 +173,8 @@ public: YACSEVALYFX_EXPORT const YACSEvalParamsForCluster& getAddParamsForCluster() const { return _paramsInCaseOfCluster; } void apply(); YACSEVALYFX_EXPORT ~YACSEvalListOfResources(); +public:// info only + YACSEVALYFX_EXPORT bool isMachineInteractive(const std::string& machine) const; public: ResourcesManager_cpp *getCatalogEntry() const { return _rm; } YACS::ENGINE::DeploymentTree *getDeploymentTree() const { return _dt; } diff --git a/src/evalyfx_swig/evalyfx.i b/src/evalyfx_swig/evalyfx.i index 1527d9932..959ff159e 100644 --- a/src/evalyfx_swig/evalyfx.i +++ b/src/evalyfx_swig/evalyfx.i @@ -367,6 +367,7 @@ public: void setWantedMachine(const std::string& machine); std::size_t size() const; bool isInteractive() const; + bool isMachineInteractive(const std::string& machine) const; YACSEvalResource *at(std::size_t i) const; unsigned int getNumberOfProcsDeclared() const; void checkOKForRun() const; -- 2.39.2