45 void getAllRepresentants(std::set<InPort *>& repr)
const;
82 void getAllRepresented(std::set<OutPort *>& represented)
const;
95 void getAllRepresentants(std::set<InPort *>& repr)
const;
158 Loop(
const std::string& name);
160 void init(
bool start=
true);
165 Node *edRemoveNode();
166 virtual void checkBasicConsistency()
const throw(
Exception);
168 virtual
InputPort *getDecisionPort() const = 0;
169 void getReadyTasks(std::vector<
Task *>& tasks);
170 void edRemoveChild(
Node *node) throw(Exception);
171 bool isRepeatedUnpredictablySeveralTimes()
const {
return true; }
172 std::list<Node *> edGetDirectDescendants()
const;
173 std::list<InputPort *> getSetOfInputPort()
const;
174 int getNumberOfInputPorts()
const;
175 int getMaxLevelOfParallelism()
const;
176 Node *getChildByShortName(
const std::string& name)
const throw(
Exception);
180 void writeDot(std::ostream &os)
const;
181 virtual void accept(
Visitor *visitor);
182 virtual std::string
typeName() {
return "YACS__ENGINE__Loop";}
184 void buildDelegateOf(
InPort * & port,
OutPort *initialStart,
const std::list<ComposedNode *>& pointsOfView);
185 void buildDelegateOf(std::pair<OutPort *, OutPort *>& port,
InPort *finalTarget,
const std::list<ComposedNode *>& pointsOfView);
186 void getDelegateOf(
InPort * & port,
OutPort *initialStart,
const std::list<ComposedNode *>& pointsOfView)
throw(
Exception);
187 void getDelegateOf(std::pair<OutPort *, OutPort *>& port,
InPort *finalTarget,
const std::list<ComposedNode *>& pointsOfView)
throw(
Exception);
188 void releaseDelegateOf(
InPort * & port,
OutPort *initialStart,
const std::list<ComposedNode *>& pointsOfView)
throw(
Exception);
189 void releaseDelegateOf(
OutPort *portDwn,
OutPort *portUp,
InPort *finalTarget,
const std::list<ComposedNode *>& pointsOfView)
throw(
Exception);
190 void checkNoCyclePassingThrough(
Node *node)
throw(
Exception);
191 void checkControlDependancy(
OutPort *start,
InPort *end,
bool cross,
192 std::map <
ComposedNode *, std::list < OutPort * >, SortHierarc >& fw,
193 std::vector<OutPort *>& fwCross,
194 std::map<
ComposedNode *, std::list < OutPort *>, SortHierarc >& bw,
196 void checkCFLinks(
const std::list<OutPort *>& starts,
InputPort *end,
unsigned char& alreadyFed,
bool direction,
LinkInfo& info)
const;
197 static bool isNecessaryToBuildSpecificDelegateDF2DS(
const std::list<ComposedNode *>& pointsOfView);