Salome HOME
Useful access method to available resources
authorAnthony Geay <anthony.geay@edf.fr>
Fri, 15 Jul 2016 15:04:48 +0000 (17:04 +0200)
committerAnthony Geay <anthony.geay@edf.fr>
Fri, 15 Jul 2016 15:04:48 +0000 (17:04 +0200)
src/evalyfx/YACSEvalResource.cxx
src/evalyfx/YACSEvalResource.hxx
src/evalyfx_swig/evalyfx.i

index a3132d0d26eed9d15415d99d556996c0fd9c615f..cd061135308532a85ee63f05c0e72f9e32e85ad9 100644 (file)
@@ -405,7 +405,6 @@ YACSEvalResource *YACSEvalListOfResources::at(std::size_t i) const
 
 bool YACSEvalListOfResources::isInteractive() const
 {
-  const MapOfParserResourcesType& zeList(_rm->GetList());
   std::vector<std::string> allMachines(getAllChosenMachines());
   if(allMachines.empty())
     return true;
@@ -413,14 +412,7 @@ bool YACSEvalListOfResources::isInteractive() const
   std::vector<bool> status(sz);
   for(std::vector<std::string>::const_iterator it=allMachines.begin();it!=allMachines.end();it++,ii++)
     {
-      std::map<std::string, ParserResourcesType>::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<std::string, ParserResourcesType>::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:
index 0155e9516a30b0c037dab3a82b367601a3c2dbb1..e66dfb9337c57071ef9865e0bf75ca6ed89db672 100644 (file)
@@ -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; }
index 1527d9932b10d455ff4fc431da362f0466fdaff7..959ff159e3304f2dc70be4d0835565bbdd032073 100644 (file)
@@ -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;