45 void getAllRepresentants(std::set<InPort *>& repr)
const;
46 void releaseData()
override;
47 void put(
const void *data);
83 void getAllRepresented(std::set<OutPort *>& represented)
const;
84 void put(
const void *data);
96 void getAllRepresentants(std::set<InPort *>& repr)
const;
159 Loop(
const std::string& name);
161 void init(
bool start=
true);
165 virtual bool edAddChild(
Node *DISOWNnode) ;
166 bool isLoop()
const override {
return true; }
167 Node *edRemoveNode();
168 virtual void checkBasicConsistency()
const ;
171 void getReadyTasks(std::vector<Task *>& tasks);
172 void edRemoveChild(
Node *node) ;
174 std::list<Node *> edGetDirectDescendants()
const;
175 std::list<InputPort *> getSetOfInputPort()
const;
176 int getNumberOfInputPorts()
const;
177 int getMaxLevelOfParallelism()
const;
180 Node *getChildByShortName(
const std::string& name)
const ;
184 void writeDot(std::ostream &os)
const;
185 virtual void accept(
Visitor *visitor);
186 virtual std::string
typeName() {
return "YACS__ENGINE__Loop";}
188 void buildDelegateOf(
InPort * & port,
OutPort *initialStart,
const std::list<ComposedNode *>& pointsOfView);
189 void buildDelegateOf(std::pair<OutPort *, OutPort *>& port,
InPort *finalTarget,
const std::list<ComposedNode *>& pointsOfView);
190 void getDelegateOf(
InPort * & port,
OutPort *initialStart,
const std::list<ComposedNode *>& pointsOfView) ;
191 void getDelegateOf(std::pair<OutPort *, OutPort *>& port,
InPort *finalTarget,
const std::list<ComposedNode *>& pointsOfView) ;
192 void releaseDelegateOf(
InPort * & port,
OutPort *initialStart,
const std::list<ComposedNode *>& pointsOfView) ;
193 void releaseDelegateOf(
OutPort *portDwn,
OutPort *portUp,
InPort *finalTarget,
const std::list<ComposedNode *>& pointsOfView) ;
194 void checkNoCyclePassingThrough(
Node *node) ;
195 void checkControlDependancy(
OutPort *start,
InPort *end,
bool cross,
196 std::map <
ComposedNode *, std::list < OutPort * >, SortHierarc >& fw,
197 std::vector<OutPort *>& fwCross,
198 std::map<
ComposedNode *, std::list < OutPort *>, SortHierarc >& bw,
200 void checkCFLinks(
const std::list<OutPort *>& starts,
InputPort *end,
unsigned char& alreadyFed,
bool direction,
LinkInfo& info)
const;
201 static bool isNecessaryToBuildSpecificDelegateDF2DS(
const std::list<ComposedNode *>& pointsOfView);
#define YACSLIBENGINE_EXPORT
: Interface for management of storage of data formated dynamically in its TypeCode....
Base class for all composed nodes.
DFToDSForLoop(Loop *loop, const std::string &name, TypeCode *type)
InputPort * getInputPort(const std::string &name) const
void getReadyTasks(std::vector< Task * > &tasks)
OutputDataStreamPort * getOutputDataStreamPort(const std::string &name) const
Loop * _loopArtificiallyBuiltMe
Node * simpleClone(ComposedNode *father, bool editionOnly=true) const
void getReadyTasks(std::vector< Task * > &tasks)
DSToDFForLoop(Loop *loop, const std::string &name, TypeCode *type)
Loop * _loopArtificiallyBuiltMe
Node * simpleClone(ComposedNode *father, bool editionOnly=true) const
OutputPort * getOutputPort(const std::string &name) const
InputDataStreamPort * getInputDataStreamPort(const std::string &name) const
Base class for all calculation nodes.
Node * simpleClone(ComposedNode *father, bool editionOnly) const
FakeNodeForLoop(Loop *loop, bool normalFinish, bool internalError=false)
Class that deal with list of semantics links for high level analysis.
Base class for loop node.
std::set< DSToDFForLoop * > _inputsTraducer
virtual std::string typeName()
friend void NbDoneLoader(Loop *node, int val)
bool isLoop() const override
bool isRepeatedUnpredictablySeveralTimes() const
std::set< DFToDSForLoop * > _outputsTraducer
virtual InputPort * getDecisionPort() const =0
Returns the port which value is used to take decision about the continuation of the loop.
FakeNodeForLoop * _nodeForNullTurnOfLoops
Base class for all nodes.
Base class for all type objects.
void YACSLIBENGINE_EXPORT NbDoneLoader(Loop *node, int val)