1 #ifndef __WHILELOOP_HXX__
2 #define __WHILELOOP_HXX__
5 #include "ConditionInputPort.hxx"
11 /*! \brief Class for a while loop
15 * This node makes steps while the condition is true
18 class WhileLoop : public Loop
21 static const char NAME_OF_INPUT_CONDITION[];
22 ConditionInputPort _conditionPort;
24 WhileLoop(const WhileLoop& other, ComposedNode *father, bool editionOnly);
25 WhileLoop(const std::string& name);
27 void init(bool start=true);
28 InputPort *edGetConditionPort() { return &_conditionPort; }
29 InputPort* getInputPort(const std::string& name) const throw(Exception);
30 std::list<InputPort *> getLocalInputPorts() const;
31 virtual void accept(Visitor *visitor);
32 InputPort *getDecisionPort() const { return (InputPort *)&_conditionPort; }
33 virtual std::string typeName() {return "YACS__ENGINE__WhileLoop";}
35 Node *simpleClone(ComposedNode *father, bool editionOnly=true) const;
36 void checkLinkPossibility(OutPort *start, const std::list<ComposedNode *>& pointsOfViewStart,
37 InPort *end, const std::list<ComposedNode *>& pointsOfViewEnd) throw(Exception);
38 YACS::Event updateStateOnFinishedEventFrom(Node *node);