Salome HOME
debug for test case.
[modules/yacs.git] / src / evalyfx / YACSEvalYFX.hxx
index f9ccdd5d975a72fcd1d57c798253507aa4a419fe..a25d10e088b88904566205f01f45bf37f168b09e 100644 (file)
@@ -22,8 +22,8 @@
 #define __YACSEVALYFX_HXX__
 
 #include "YACSEvalYFXExport.hxx"
+#include "YACSEvalExecParams.hxx"
 
-#include <list>
 #include <string>
 #include <vector>
 
@@ -35,6 +35,7 @@ namespace YACS
   }
 }
 
+class YACSEvalObserver;
 class YACSEvalSeqAny;
 class YACSEvalSession;
 class YACSEvalYFXPattern;
@@ -47,22 +48,26 @@ class YACSEvalYFX
 public:
   YACSEVALYFX_EXPORT static YACSEvalYFX *BuildFromFile(const std::string& xmlOfScheme);
   YACSEVALYFX_EXPORT static YACSEvalYFX *BuildFromScheme(YACS::ENGINE::Proc *scheme);
-  YACSEVALYFX_EXPORT std::list< YACSEvalInputPort * > getFreeInputPorts() const;
-  YACSEVALYFX_EXPORT std::list< YACSEvalOutputPort * > getFreeOutputPorts() const;
-  YACSEVALYFX_EXPORT void lockPortsForEvaluation(const std::list< YACSEvalOutputPort * >& outputsOfInterest);
+  YACSEVALYFX_EXPORT YACSEvalExecParams *getParams() const { return &_params; }
+  YACSEVALYFX_EXPORT std::vector< YACSEvalInputPort * > getFreeInputPorts() const;
+  YACSEVALYFX_EXPORT std::vector< YACSEvalOutputPort * > getFreeOutputPorts() const;
+  YACSEVALYFX_EXPORT void lockPortsForEvaluation(const std::vector< YACSEvalInputPort * >& inputsOfInterest, const std::vector< YACSEvalOutputPort * >& outputsOfInterest);
   YACSEVALYFX_EXPORT void unlockAll();
   YACSEVALYFX_EXPORT bool isLocked() const;
   YACSEVALYFX_EXPORT YACSEvalListOfResources *giveResources();
   YACSEVALYFX_EXPORT bool run(YACSEvalSession *session, int& nbOfBranches);
+  YACSEVALYFX_EXPORT void registerObserver(YACSEvalObserver *observer);
+  YACSEVALYFX_EXPORT YACSEvalObserver *getObserver();
   YACSEVALYFX_EXPORT std::vector<YACSEvalSeqAny *> getResults() const;
   //
   YACSEVALYFX_EXPORT YACS::ENGINE::Proc *getUndergroundGeneratedGraph() const;
   YACSEVALYFX_EXPORT ~YACSEvalYFX();
 private:
   YACSEvalYFX(YACS::ENGINE::Proc *scheme, bool ownScheme);
-  std::size_t checkPortsForEvaluation(const std::list< YACSEvalOutputPort * >& outputs) const;
+  void checkPortsForEvaluation(const std::vector< YACSEvalInputPort * >& inputs, const std::vector< YACSEvalOutputPort * >& outputs) const;
 private:
   YACSEvalYFXPattern *_pattern;
+  mutable YACSEvalExecParams _params;
 };
 
 #endif