Salome HOME
Small addon to support non //sable components.
authorAnthony Geay <anthony.geay@edf.fr>
Fri, 16 Oct 2015 14:02:30 +0000 (16:02 +0200)
committerAnthony Geay <anthony.geay@edf.fr>
Fri, 16 Oct 2015 14:02:30 +0000 (16:02 +0200)
src/evalyfx/YACSEvalYFX.cxx
src/evalyfx/YACSEvalYFX.hxx
src/evalyfx/YACSEvalYFXPattern.cxx
src/evalyfx/YACSEvalYFXPattern.hxx
src/evalyfx_swig/evalyfx.i

index aba327e7457aa083f5b7a83347ea624a215ad441..b3fcb25e360b45bab9a8b3ee1ec1ed410e520696 100644 (file)
@@ -147,6 +147,16 @@ YACS::ENGINE::Proc *YACSEvalYFX::getUndergroundGeneratedGraph() const
   return _pattern->getUndergroundGeneratedGraph();
 }
 
+void YACSEvalYFX::setParallelizeStatus(bool newVal)
+{
+  _pattern->setParallelizeStatus(newVal);
+}
+
+bool YACSEvalYFX::getParallelizeStatus() const
+{
+  return _pattern->getParallelizeStatus();
+}
+
 YACSEvalYFX::YACSEvalYFX(YACS::ENGINE::Proc *scheme, bool ownScheme):_pattern(0)
 {
   _pattern=YACSEvalYFXPattern::FindPatternFrom(this,scheme,ownScheme);
index a25d10e088b88904566205f01f45bf37f168b09e..14dcc957385eb53be04c1561ab2f1da9009dd678 100644 (file)
@@ -61,6 +61,8 @@ public:
   YACSEVALYFX_EXPORT std::vector<YACSEvalSeqAny *> getResults() const;
   //
   YACSEVALYFX_EXPORT YACS::ENGINE::Proc *getUndergroundGeneratedGraph() const;
+  YACSEVALYFX_EXPORT void setParallelizeStatus(bool newVal);
+  YACSEVALYFX_EXPORT bool getParallelizeStatus() const;
   YACSEVALYFX_EXPORT ~YACSEvalYFX();
 private:
   YACSEvalYFX(YACS::ENGINE::Proc *scheme, bool ownScheme);
index e2df4295a2592a28ebd09ca6a06248abac90369b..19064f8c95503c96eef0819359b1b9376698b8bf 100644 (file)
@@ -161,7 +161,7 @@ void YACSEvalYFXPattern::registerObserver(YACSEvalObserver *observer)
     _observer->incrRef();
 }
 
-YACSEvalYFXPattern::YACSEvalYFXPattern(YACSEvalYFX *boss, YACS::ENGINE::Proc *scheme, bool ownScheme):_boss(boss),_scheme(scheme),_ownScheme(ownScheme),_rm(new ResourcesManager_cpp),_res(0),_observer(0)
+YACSEvalYFXPattern::YACSEvalYFXPattern(YACSEvalYFX *boss, YACS::ENGINE::Proc *scheme, bool ownScheme):_boss(boss),_scheme(scheme),_ownScheme(ownScheme),_parallelizeStatus(true),_rm(new ResourcesManager_cpp),_res(0),_observer(0)
 {
 }
 
@@ -399,8 +399,12 @@ int YACSEvalYFXRunOnlyPattern::assignNbOfBranches()
     throw YACS::Exception("YACSEvalYFXRunOnlyPattern::assignNbOfBranches : internal error 2 !");
   unsigned int nbProcsDeclared(getResourcesInternal()->getNumberOfProcsDeclared());
   nbProcsDeclared=std::max(nbProcsDeclared,4u);
-  int nbOfBranch(nbProcsDeclared/getResourcesInternal()->getMaxLevelOfParallelism());
-  nbOfBranch=std::max(nbOfBranch,1);
+  int nbOfBranch=1;
+  if(getParallelizeStatus())
+    {
+      nbOfBranch=(nbProcsDeclared/getResourcesInternal()->getMaxLevelOfParallelism());
+      nbOfBranch=std::max(nbOfBranch,1);
+    }
   YACS::ENGINE::InputPort *zeInputToSet(zeMainNode->edGetNbOfBranchesPort());
   YACS::ENGINE::AnyInputPort *zeInputToSetC(dynamic_cast<YACS::ENGINE::AnyInputPort *>(zeInputToSet));
   if(!zeInputToSetC)
index 110f22b9017123ab20b6052db658443eb0308dda..ea3c4d4fa802fab0c5b4bd88882f970483335666 100644 (file)
@@ -54,6 +54,8 @@ public:
   std::vector< YACSEvalInputPort *> getFreeInputPorts() const;
   std::vector< YACSEvalOutputPort *> getFreeOutputPorts() const;
   static YACSEvalYFXPattern *FindPatternFrom(YACSEvalYFX *boss, YACS::ENGINE::Proc *scheme, bool ownScheme);
+  void setParallelizeStatus(bool newVal) { _parallelizeStatus=newVal; }
+  bool getParallelizeStatus() const { return _parallelizeStatus; }
   bool isAlreadyComputedResources() const;
   void checkNonAlreadyComputedResources() const;
   void checkAlreadyComputedResources() const;
@@ -89,6 +91,7 @@ private:
 private:
   YACSEvalYFX *_boss;
   bool _ownScheme;
+  bool _parallelizeStatus;
   YACS::ENGINE::Proc *_scheme;
   ResourcesManager_cpp *_rm;
   YACSEvalListOfResources *_res;
index 4395e90ddec15e5a9763185409492046ce242ff9..89668a64e699ec03b41877d64b0fde50366730c7 100644 (file)
@@ -351,6 +351,8 @@ public:
   bool isLocked() const;
   YACS::ENGINE::Proc *getUndergroundGeneratedGraph() const;
   YACSEvalListOfResources *giveResources();
+  void setParallelizeStatus(bool newVal);
+  bool getParallelizeStatus() const;
   //void registerObserver(YACSEvalObserver *observer);
   %extend
      {