-// Copyright (C) 2006-2014 CEA/DEN, EDF R&D
+// Copyright (C) 2006-2016 CEA/DEN, EDF R&D
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
//%template(CONTAINmap) std::map<std::string, YACS::ENGINE::Container *>;
REFCOUNT_TEMPLATE(CONTAINmap,YACS::ENGINE::Container)
%template(strvec) std::vector<std::string>;
+%template(uivec) std::vector<unsigned int>;
%template(linksvec) std::vector< std::pair<YACS::ENGINE::OutPort *,YACS::ENGINE::InPort *> >;
%template(linkvec) std::vector< std::pair<YACS::ENGINE::InPort *,YACS::ENGINE::OutPort *> >;
%template(instreamlist) std::list<YACS::ENGINE::InputDataStreamPort *>;
%newobject *::createStructTc;
%newobject *::createType;
+%newobject YACS::ENGINE::SequenceAny::removeUnsetItemsFromThis;
+
%newobject YACS::ENGINE::TypeCode::interfaceTc;
%newobject YACS::ENGINE::TypeCode::sequenceTc;
%newobject YACS::ENGINE::TypeCode::structTc;
}
}
+%extend YACS::ENGINE::Any
+{
+ PyObject *getPyObj()
+ {
+ return (PyObject *)getRuntime()->convertNeutral(const_cast<YACS::ENGINE::TypeCode *>(self->getType()),self);
+ }
+}
+
%newobject YACS::ENGINE::SequenceAny::__getitem__;
%extend YACS::ENGINE::SequenceAny
{
return a;
}
}
+
+%extend YACS::ENGINE::ForEachLoop
+{
+ PyObject *getPassedResults(Executor *execut) const
+ {
+ std::vector<SequenceAny *> ret1;
+ std::vector<std::string> ret2;
+ std::vector<unsigned int> ret0(self->getPassedResults(execut,ret1,ret2));
+ PyObject *ret(PyTuple_New(3));
+ // param 0
+ PyObject *ret0Py(PyList_New(ret0.size()));
+ for(std::size_t i=0;i<ret0.size();i++)
+ PyList_SetItem(ret0Py,i,PyInt_FromLong(ret0[i]));
+ PyTuple_SetItem(ret,0,ret0Py);
+ // param 1
+ PyObject *ret1Py(PyList_New(ret1.size()));
+ for(std::size_t i=0;i<ret1.size();i++)
+ PyList_SetItem(ret1Py,i,SWIG_NewPointerObj(SWIG_as_voidptr(ret1[i]),SWIGTYPE_p_YACS__ENGINE__SequenceAny, SWIG_POINTER_OWN | 0 ));
+ PyTuple_SetItem(ret,1,ret1Py);
+ // param 2
+ PyObject *ret2Py(PyList_New(ret2.size()));
+ for(std::size_t i=0;i<ret2.size();i++)
+ PyList_SetItem(ret2Py,i,PyString_FromString(ret2[i].c_str()));
+ PyTuple_SetItem(ret,2,ret2Py);
+ return ret;
+ }
+
+ void assignPassedResults(const std::vector<unsigned int>& passedIds, PyObject *passedOutputs, const std::vector<std::string>& nameOfOutputs)
+ {
+ std::vector<SequenceAny *> passedOutputsCpp;
+ convertFromPyObjVectorOfObj<YACS::ENGINE::SequenceAny *>(passedOutputs,SWIGTYPE_p_YACS__ENGINE__SequenceAny,"SequenceAny",passedOutputsCpp);
+ self->assignPassedResults(passedIds,passedOutputsCpp,nameOfOutputs);
+ }
+}