X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2Fevalyfx_swig%2Fevalyfx.i;h=89668a64e699ec03b41877d64b0fde50366730c7;hb=f31c1aa1cf3481bf51166f0c4e3dd118bc3ab43b;hp=6d9ee76e26069627baeffc7a922618e5b7de2c2e;hpb=622943a60b0033fccad737b98e90accc1d2d2fe3;p=modules%2Fyacs.git diff --git a/src/evalyfx_swig/evalyfx.i b/src/evalyfx_swig/evalyfx.i index 6d9ee76e2..89668a64e 100644 --- a/src/evalyfx_swig/evalyfx.i +++ b/src/evalyfx_swig/evalyfx.i @@ -127,9 +127,9 @@ static void convertPyToDblArr(PyObject *pyLi, std::vector& arr) %newobject YACSEvalYFX::BuildFromFile; %newobject YACSEvalYFX::BuildFromScheme; -%typemap(out) std::list +%typemap(out) std::vector { - std::list::const_iterator it; + std::vector::const_iterator it; $result = PyList_New($1.size()); int i = 0; for (it = $1.begin(); it != $1.end(); ++it, ++i) @@ -138,9 +138,9 @@ static void convertPyToDblArr(PyObject *pyLi, std::vector& arr) } } -%typemap(out) std::list +%typemap(out) std::vector { - std::list::const_iterator it; + std::vector::const_iterator it; $result = PyList_New($1.size()); int i = 0; for (it = $1.begin(); it != $1.end(); ++it, ++i) @@ -190,6 +190,9 @@ public: std::string getName() const; bool hasDefaultValueDefined() const; YACSEvalAny *getDefaultValueDefined() const; + bool isRandomVar() const; + void declareRandomnessStatus(bool isRandom); + bool hasSequenceOfValuesToEval() const; %extend { void setDefaultValue(PyObject *parameter) @@ -242,18 +245,6 @@ public: self->setSequenceOfValuesToEval(valsCpp); delete valsCpp; } - - PyObject *hasSequenceOfValuesToEval() const - { - std::size_t ret1; - bool ret0(self->hasSequenceOfValuesToEval(ret1)); - PyObject *ret(PyTuple_New(2)); - PyObject *ret0Py=ret0?Py_True:Py_False; - Py_XINCREF(ret0Py); - PyTuple_SetItem(ret,0,ret0Py); - PyTuple_SetItem(ret,1,PyInt_FromLong(ret1)); - return ret; - } } private: YACSEvalInputPort(); @@ -339,22 +330,35 @@ public: std::string getCorbaConfigFileName() const; }; +class YACSEvalExecParams +{ +public: + bool getStopASAPAfterErrorStatus() const; + void setStopASAPAfterErrorStatus(bool newStatus); +private: + YACSEvalExecParams(); +}; + class YACSEvalYFX { public: static YACSEvalYFX *BuildFromFile(const std::string& xmlOfScheme); static YACSEvalYFX *BuildFromScheme(YACS::ENGINE::Proc *schema); - std::list getFreeInputPorts() const; - std::list getFreeOutputPorts() const; + YACSEvalExecParams *getParams() const; + std::vector getFreeInputPorts() const; + std::vector getFreeOutputPorts() const; void unlockAll(); bool isLocked() const; YACS::ENGINE::Proc *getUndergroundGeneratedGraph() const; YACSEvalListOfResources *giveResources(); + void setParallelizeStatus(bool newVal); + bool getParallelizeStatus() const; + //void registerObserver(YACSEvalObserver *observer); %extend { - void lockPortsForEvaluation(PyObject *outputsOfInterest) + void lockPortsForEvaluation(PyObject *inputsOfInterest, PyObject *outputsOfInterest) { - std::list outputsOfInterestCpp; + std::vector outputsOfInterestCpp; if(PyList_Check(outputsOfInterest)) { int size(PyList_Size(outputsOfInterest)); @@ -376,7 +380,30 @@ public: PyErr_SetString(PyExc_TypeError,"not a list"); return ; } - self->lockPortsForEvaluation(outputsOfInterestCpp); + // + std::vector< YACSEvalInputPort * > inputsOfInterestCpp; + if(PyList_Check(inputsOfInterest)) + { + int size(PyList_Size(inputsOfInterest)); + for(int i=0;i(argp)); + } + } + else + { + PyErr_SetString(PyExc_TypeError,"not a list"); + return ; + } + self->lockPortsForEvaluation(inputsOfInterestCpp,outputsOfInterestCpp); } PyObject *getResults() const