#define __YACSEVALYFX_HXX__
#include "YACSEvalYFXExport.hxx"
+#include "YACSEvalExecParams.hxx"
-#include <list>
#include <string>
#include <vector>
}
}
+class YACSEvalObserver;
class YACSEvalSeqAny;
class YACSEvalSession;
class YACSEvalYFXPattern;
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