From f06dd3d96192c67111aba740e3da32c394b00ede Mon Sep 17 00:00:00 2001 From: Anthony Geay Date: Wed, 10 Jun 2015 10:58:38 +0200 Subject: [PATCH] list->vector to ease life of C++ users. --- src/evalyfx/YACSEvalYFX.cxx | 22 +++++++++++----------- src/evalyfx/YACSEvalYFX.hxx | 9 ++++----- src/evalyfx/YACSEvalYFXPattern.cxx | 22 +++++++++++----------- src/evalyfx/YACSEvalYFXPattern.hxx | 15 +++++++-------- src/evalyfx_swig/evalyfx.i | 14 +++++++------- 5 files changed, 40 insertions(+), 42 deletions(-) diff --git a/src/evalyfx/YACSEvalYFX.cxx b/src/evalyfx/YACSEvalYFX.cxx index b3210bd5e..b3f425cd2 100644 --- a/src/evalyfx/YACSEvalYFX.cxx +++ b/src/evalyfx/YACSEvalYFX.cxx @@ -60,17 +60,17 @@ YACSEvalYFX *YACSEvalYFX::BuildFromScheme(YACS::ENGINE::Proc *scheme) return new YACSEvalYFX(scheme,false); } -std::list< YACSEvalInputPort * > YACSEvalYFX::getFreeInputPorts() const +std::vector< YACSEvalInputPort * > YACSEvalYFX::getFreeInputPorts() const { return _pattern->getFreeInputPorts(); } -std::list< YACSEvalOutputPort * > YACSEvalYFX::getFreeOutputPorts() const +std::vector< YACSEvalOutputPort * > YACSEvalYFX::getFreeOutputPorts() const { return _pattern->getFreeOutputPorts(); } -void YACSEvalYFX::lockPortsForEvaluation(const std::list< YACSEvalOutputPort * >& outputsOfInterest) +void YACSEvalYFX::lockPortsForEvaluation(const std::vector< YACSEvalOutputPort * >& outputsOfInterest) { std::size_t sz(checkPortsForEvaluation(outputsOfInterest)); _pattern->setOutPortsOfInterestForEvaluation(sz,outputsOfInterest); @@ -79,8 +79,8 @@ void YACSEvalYFX::lockPortsForEvaluation(const std::list< YACSEvalOutputPort * > void YACSEvalYFX::unlockAll() { - std::list< YACSEvalInputPort * > allInputs(getFreeInputPorts()); - for(std::list< YACSEvalInputPort * >::const_iterator it=allInputs.begin();it!=allInputs.end();it++) + std::vector< YACSEvalInputPort * > allInputs(getFreeInputPorts()); + for(std::vector< YACSEvalInputPort * >::const_iterator it=allInputs.begin();it!=allInputs.end();it++) (*it)->unlock(); _pattern->resetOutputsOfInterest(); _pattern->resetGeneratedGraph(); @@ -136,12 +136,12 @@ YACSEvalYFX::YACSEvalYFX(YACS::ENGINE::Proc *scheme, bool ownScheme):_pattern(0) _pattern=YACSEvalYFXPattern::FindPatternFrom(scheme,ownScheme); } -std::size_t YACSEvalYFX::checkPortsForEvaluation(const std::list< YACSEvalOutputPort * >& outputs) const +std::size_t YACSEvalYFX::checkPortsForEvaluation(const std::vector< YACSEvalOutputPort * >& outputs) const { - std::list< YACSEvalInputPort * > allInputs(getFreeInputPorts()); - std::list< YACSEvalOutputPort * > allOutputs(getFreeOutputPorts()); + std::vector< YACSEvalInputPort * > allInputs(getFreeInputPorts()); + std::vector< YACSEvalOutputPort * > allOutputs(getFreeOutputPorts()); std::size_t sz(std::numeric_limits::max()); - for(std::list< YACSEvalInputPort * >::const_iterator it=allInputs.begin();it!=allInputs.end();it++) + for(std::vector< YACSEvalInputPort * >::const_iterator it=allInputs.begin();it!=allInputs.end();it++) { std::size_t mySz; if(!(*it)->isOKForLock() && !(*it)->hasSequenceOfValuesToEval(mySz)) @@ -163,13 +163,13 @@ std::size_t YACSEvalYFX::checkPortsForEvaluation(const std::list< YACSEvalOutput } } } - for(std::list< YACSEvalOutputPort * >::const_iterator it=outputs.begin();it!=outputs.end();it++) + for(std::vector< YACSEvalOutputPort * >::const_iterator it=outputs.begin();it!=outputs.end();it++) if(std::find(allOutputs.begin(),allOutputs.end(),*it)==allOutputs.end()) throw YACS::Exception("YACSEvalYFX::lockPortsForEvaluation : one of output is not part of this !"); std::set< YACSEvalOutputPort * > soutputs(outputs.begin(),outputs.end()); if(soutputs.size()!=outputs.size()) throw YACS::Exception("YACSEvalYFX::lockPortsForEvaluation : each elt in outputs must appear once !"); - for(std::list< YACSEvalInputPort * >::const_iterator it=allInputs.begin();it!=allInputs.end();it++) + for(std::vector< YACSEvalInputPort * >::const_iterator it=allInputs.begin();it!=allInputs.end();it++) (*it)->lock(); return sz; } diff --git a/src/evalyfx/YACSEvalYFX.hxx b/src/evalyfx/YACSEvalYFX.hxx index f9ccdd5d9..dfcd2f43b 100644 --- a/src/evalyfx/YACSEvalYFX.hxx +++ b/src/evalyfx/YACSEvalYFX.hxx @@ -23,7 +23,6 @@ #include "YACSEvalYFXExport.hxx" -#include #include #include @@ -47,9 +46,9 @@ 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 std::vector< YACSEvalInputPort * > getFreeInputPorts() const; + YACSEVALYFX_EXPORT std::vector< YACSEvalOutputPort * > getFreeOutputPorts() const; + YACSEVALYFX_EXPORT void lockPortsForEvaluation(const std::vector< YACSEvalOutputPort * >& outputsOfInterest); YACSEVALYFX_EXPORT void unlockAll(); YACSEVALYFX_EXPORT bool isLocked() const; YACSEVALYFX_EXPORT YACSEvalListOfResources *giveResources(); @@ -60,7 +59,7 @@ public: YACSEVALYFX_EXPORT ~YACSEvalYFX(); private: YACSEvalYFX(YACS::ENGINE::Proc *scheme, bool ownScheme); - std::size_t checkPortsForEvaluation(const std::list< YACSEvalOutputPort * >& outputs) const; + std::size_t checkPortsForEvaluation(const std::vector< YACSEvalOutputPort * >& outputs) const; private: YACSEvalYFXPattern *_pattern; }; diff --git a/src/evalyfx/YACSEvalYFXPattern.cxx b/src/evalyfx/YACSEvalYFXPattern.cxx index 9ac3852ee..b5cfd95ce 100644 --- a/src/evalyfx/YACSEvalYFXPattern.cxx +++ b/src/evalyfx/YACSEvalYFXPattern.cxx @@ -46,21 +46,21 @@ const char YACSEvalYFXPattern::DFT_PROC_NAME[]="YFX"; const char YACSEvalYFXRunOnlyPattern::GATHER_NODE_NAME[]="__gather__"; -std::list< YACSEvalInputPort *> YACSEvalYFXPattern::getFreeInputPorts() const +std::vector< YACSEvalInputPort *> YACSEvalYFXPattern::getFreeInputPorts() const { std::size_t sz(_inputs.size()); - std::list< YACSEvalInputPort *> ret; - std::list< YACSEvalInputPort >::const_iterator it(_inputs.begin()); + std::vector< YACSEvalInputPort *> ret; + std::vector< YACSEvalInputPort >::const_iterator it(_inputs.begin()); for(std::size_t i=0;i(&(*it))); return ret; } -std::list< YACSEvalOutputPort *> YACSEvalYFXPattern::getFreeOutputPorts() const +std::vector< YACSEvalOutputPort *> YACSEvalYFXPattern::getFreeOutputPorts() const { std::size_t sz(_outputs.size()); - std::list< YACSEvalOutputPort *> ret; - std::list< YACSEvalOutputPort >::const_iterator it(_outputs.begin()); + std::vector< YACSEvalOutputPort *> ret; + std::vector< YACSEvalOutputPort >::const_iterator it(_outputs.begin()); for(std::size_t i=0;i(&(*it))); return ret; @@ -235,7 +235,7 @@ YACSEvalYFXRunOnlyPattern::YACSEvalYFXRunOnlyPattern(YACS::ENGINE::Proc *scheme, buildOutputPorts(); } -void YACSEvalYFXRunOnlyPattern::setOutPortsOfInterestForEvaluation(std::size_t commonSize, const std::list& outputsOfInterest) +void YACSEvalYFXRunOnlyPattern::setOutPortsOfInterestForEvaluation(std::size_t commonSize, const std::vector& outputsOfInterest) { checkNonLocked(); _commonSz=commonSize; @@ -267,7 +267,7 @@ void YACSEvalYFXRunOnlyPattern::generateGraph() YACS::ENGINE::TypeCode *listPyobjTC(_generatedGraph->createSequenceTc(LISTPYOBJ_STR,LISTPYOBJ_STR,pyobjTC)); YACS::ENGINE::OutputPort *sender(n0->edAddOutputPort("sender",listPyobjTC)); std::ostringstream var0; - for(std::list< YACSEvalInputPort >::const_iterator it=_inputs.begin();it!=_inputs.end();it++) + for(std::vector< YACSEvalInputPort >::const_iterator it=_inputs.begin();it!=_inputs.end();it++) { std::size_t dummy; if((*it).hasSequenceOfValuesToEval(dummy)) @@ -302,7 +302,7 @@ void YACSEvalYFXRunOnlyPattern::generateGraph() n10->edAddCFLink(n100,n101); n1->edAddDFLink(n1->edGetSamplePort(),dispatchIn); std::ostringstream var1; - for(std::list< YACSEvalInputPort >::const_iterator it=_inputs.begin();it!=_inputs.end();it++) + for(std::vector< YACSEvalInputPort >::const_iterator it=_inputs.begin();it!=_inputs.end();it++) { std::size_t dummy; if((*it).hasSequenceOfValuesToEval(dummy)) @@ -316,7 +316,7 @@ void YACSEvalYFXRunOnlyPattern::generateGraph() } std::ostringstream n100Script; n100Script << var1.str() << "=i0\n"; n100->setScript(n100Script.str()); - for(std::list< YACSEvalOutputPort * >::const_iterator it=_outputsOfInterest.begin();it!=_outputsOfInterest.end();it++) + for(std::vector< YACSEvalOutputPort * >::const_iterator it=_outputsOfInterest.begin();it!=_outputsOfInterest.end();it++) { YACS::ENGINE::TypeCode *tc(createSeqTypeCodeFrom(_generatedGraph,(*it)->getTypeOfData())); YACS::ENGINE::InputPort *myIn(n2->edAddInputPort((*it)->getName(),tc)); @@ -401,7 +401,7 @@ std::vector YACSEvalYFXRunOnlyPattern::getResults() const if(!nodeC) throw YACS::Exception("YACSEvalYFXRunOnlyPattern::getResults : internal error !"); std::size_t ii(0); - for(std::list< YACSEvalOutputPort * >::const_iterator it=_outputsOfInterest.begin();it!=_outputsOfInterest.end();it++,ii++) + for(std::vector< YACSEvalOutputPort * >::const_iterator it=_outputsOfInterest.begin();it!=_outputsOfInterest.end();it++,ii++) { YACS::ENGINE::InPort *input(nodeC->getInPort((*it)->getName())); YACS::ENGINE::InputPyPort *inputC(dynamic_cast(input)); diff --git a/src/evalyfx/YACSEvalYFXPattern.hxx b/src/evalyfx/YACSEvalYFXPattern.hxx index 063dae7cd..d3d018e7b 100644 --- a/src/evalyfx/YACSEvalYFXPattern.hxx +++ b/src/evalyfx/YACSEvalYFXPattern.hxx @@ -23,7 +23,6 @@ #include "YACSEvalPort.hxx" -#include #include namespace YACS @@ -44,8 +43,8 @@ class YACSEvalYFXPattern { public: virtual ~YACSEvalYFXPattern(); - std::list< YACSEvalInputPort *> getFreeInputPorts() const; - std::list< YACSEvalOutputPort *> getFreeOutputPorts() const; + std::vector< YACSEvalInputPort *> getFreeInputPorts() const; + std::vector< YACSEvalOutputPort *> getFreeOutputPorts() const; static YACSEvalYFXPattern *FindPatternFrom(YACS::ENGINE::Proc *scheme, bool ownScheme); bool isAlreadyComputedResources() const; void checkNonAlreadyComputedResources() const; @@ -53,7 +52,7 @@ public: void checkLocked() const; void checkNonLocked() const; static void CheckNodeIsOK(YACS::ENGINE::ComposedNode *node); - virtual void setOutPortsOfInterestForEvaluation(std::size_t commonSize, const std::list& outputs) = 0; + virtual void setOutPortsOfInterestForEvaluation(std::size_t commonSize, const std::vector& outputs) = 0; virtual void resetOutputsOfInterest() = 0; virtual void generateGraph() = 0; virtual void resetGeneratedGraph() = 0; @@ -80,15 +79,15 @@ private: ResourcesManager_cpp *_rm; YACSEvalListOfResources *_res; protected: - std::list< YACSEvalInputPort > _inputs; - std::list< YACSEvalOutputPort > _outputs; + std::vector< YACSEvalInputPort > _inputs; + std::vector< YACSEvalOutputPort > _outputs; }; class YACSEvalYFXRunOnlyPattern : public YACSEvalYFXPattern { public: YACSEvalYFXRunOnlyPattern(YACS::ENGINE::Proc *scheme, bool ownScheme, YACS::ENGINE::ComposedNode *runNode); - void setOutPortsOfInterestForEvaluation(std::size_t commonSize, const std::list& outputsOfInterest); + void setOutPortsOfInterestForEvaluation(std::size_t commonSize, const std::vector& outputsOfInterest); void resetOutputsOfInterest(); void generateGraph(); void resetGeneratedGraph(); @@ -106,7 +105,7 @@ private: private: YACS::ENGINE::ComposedNode *_runNode; std::size_t _commonSz; - std::list _outputsOfInterest; + std::vector _outputsOfInterest; YACS::ENGINE::Proc *_generatedGraph; }; diff --git a/src/evalyfx_swig/evalyfx.i b/src/evalyfx_swig/evalyfx.i index 6d9ee76e2..9e391bcea 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) @@ -344,8 +344,8 @@ 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; + std::vector getFreeInputPorts() const; + std::vector getFreeOutputPorts() const; void unlockAll(); bool isLocked() const; YACS::ENGINE::Proc *getUndergroundGeneratedGraph() const; @@ -354,7 +354,7 @@ public: { void lockPortsForEvaluation(PyObject *outputsOfInterest) { - std::list outputsOfInterestCpp; + std::vector outputsOfInterestCpp; if(PyList_Check(outputsOfInterest)) { int size(PyList_Size(outputsOfInterest)); -- 2.30.2