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);
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();
_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<std::size_t>::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))
}
}
}
- 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;
}
#include "YACSEvalYFXExport.hxx"
-#include <list>
#include <string>
#include <vector>
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();
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;
};
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<sz;i++,it++)
ret.push_back(const_cast<YACSEvalInputPort *>(&(*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<sz;i++,it++)
ret.push_back(const_cast<YACSEvalOutputPort *>(&(*it)));
return ret;
buildOutputPorts();
}
-void YACSEvalYFXRunOnlyPattern::setOutPortsOfInterestForEvaluation(std::size_t commonSize, const std::list<YACSEvalOutputPort *>& outputsOfInterest)
+void YACSEvalYFXRunOnlyPattern::setOutPortsOfInterestForEvaluation(std::size_t commonSize, const std::vector<YACSEvalOutputPort *>& outputsOfInterest)
{
checkNonLocked();
_commonSz=commonSize;
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))
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))
}
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));
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<YACS::ENGINE::InputPyPort *>(input));
#include "YACSEvalPort.hxx"
-#include <list>
#include <vector>
namespace YACS
{
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;
void checkLocked() const;
void checkNonLocked() const;
static void CheckNodeIsOK(YACS::ENGINE::ComposedNode *node);
- virtual void setOutPortsOfInterestForEvaluation(std::size_t commonSize, const std::list<YACSEvalOutputPort *>& outputs) = 0;
+ virtual void setOutPortsOfInterestForEvaluation(std::size_t commonSize, const std::vector<YACSEvalOutputPort *>& outputs) = 0;
virtual void resetOutputsOfInterest() = 0;
virtual void generateGraph() = 0;
virtual void resetGeneratedGraph() = 0;
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<YACSEvalOutputPort *>& outputsOfInterest);
+ void setOutPortsOfInterestForEvaluation(std::size_t commonSize, const std::vector<YACSEvalOutputPort *>& outputsOfInterest);
void resetOutputsOfInterest();
void generateGraph();
void resetGeneratedGraph();
private:
YACS::ENGINE::ComposedNode *_runNode;
std::size_t _commonSz;
- std::list<YACSEvalOutputPort *> _outputsOfInterest;
+ std::vector<YACSEvalOutputPort *> _outputsOfInterest;
YACS::ENGINE::Proc *_generatedGraph;
};
%newobject YACSEvalYFX::BuildFromFile;
%newobject YACSEvalYFX::BuildFromScheme;
-%typemap(out) std::list<YACSEvalInputPort *>
+%typemap(out) std::vector<YACSEvalInputPort *>
{
- std::list<YACSEvalInputPort *>::const_iterator it;
+ std::vector<YACSEvalInputPort *>::const_iterator it;
$result = PyList_New($1.size());
int i = 0;
for (it = $1.begin(); it != $1.end(); ++it, ++i)
}
}
-%typemap(out) std::list<YACSEvalOutputPort *>
+%typemap(out) std::vector<YACSEvalOutputPort *>
{
- std::list<YACSEvalOutputPort *>::const_iterator it;
+ std::vector<YACSEvalOutputPort *>::const_iterator it;
$result = PyList_New($1.size());
int i = 0;
for (it = $1.begin(); it != $1.end(); ++it, ++i)
public:
static YACSEvalYFX *BuildFromFile(const std::string& xmlOfScheme);
static YACSEvalYFX *BuildFromScheme(YACS::ENGINE::Proc *schema);
- std::list<YACSEvalInputPort *> getFreeInputPorts() const;
- std::list<YACSEvalOutputPort *> getFreeOutputPorts() const;
+ std::vector<YACSEvalInputPort *> getFreeInputPorts() const;
+ std::vector<YACSEvalOutputPort *> getFreeOutputPorts() const;
void unlockAll();
bool isLocked() const;
YACS::ENGINE::Proc *getUndergroundGeneratedGraph() const;
{
void lockPortsForEvaluation(PyObject *outputsOfInterest)
{
- std::list<YACSEvalOutputPort *> outputsOfInterestCpp;
+ std::vector<YACSEvalOutputPort *> outputsOfInterestCpp;
if(PyList_Check(outputsOfInterest))
{
int size(PyList_Size(outputsOfInterest));