Class for a while loop. More...
#include <WhileLoop.hxx>
Public Member Functions | |
WhileLoop (const WhileLoop &other, ComposedNode *father, bool editionOnly) | |
WhileLoop (const std::string &name) | |
void | exUpdateState () |
Update the node state. More... | |
void | init (bool start=true) |
InputPort * | edGetConditionPort () |
InputPort * | getInputPort (const std::string &name) const throw (Exception) |
Get an input port given its name. More... | |
std::list< InputPort * > | getLocalInputPorts () const |
redefined on derived class of ComposedNode. by default a ComposedNode has no port by itself More... | |
virtual void | accept (Visitor *visitor) |
InputPort * | getDecisionPort () const |
Returns the port which value is used to take decision about the continuation of the loop. More... | |
virtual std::string | typeName () |
Public Member Functions inherited from YACS::ENGINE::Loop | |
Loop (const Loop &other, ComposedNode *father, bool editionOnly) | |
Loop (const std::string &name) | |
~Loop () | |
int | getNbOfTurns () const |
Node * | edSetNode (Node *DISOWNnode) |
virtual bool | edAddChild (Node *DISOWNnode) throw (Exception) |
Node * | edRemoveNode () |
virtual void | checkBasicConsistency () const throw (Exception) |
void | getReadyTasks (std::vector< Task * > &tasks) |
Collect all the child nodes that are ready. More... | |
void | edRemoveChild (Node *node) throw (Exception) |
Remove a child node. More... | |
bool | isRepeatedUnpredictablySeveralTimes () const |
std::list< Node * > | edGetDirectDescendants () const |
std::list< InputPort * > | getSetOfInputPort () const |
int | getNumberOfInputPorts () const |
int | getMaxLevelOfParallelism () const |
Node * | getChildByShortName (const std::string &name) const throw (Exception) |
virtual bool | edAddDFLink (OutPort *start, InPort *end) throw (Exception) |
Connect an OutPort to an InPort and add control link if necessary. More... | |
void | writeDot (std::ostream &os) const |
Dump the node state to a stream. More... | |
Public Member Functions inherited from YACS::ENGINE::StaticDefinedComposedNode | |
bool | isPlacementPredictableB4Run () const |
bool | isMultiplicitySpecified (unsigned &value) const |
void | forceMultiplicity (unsigned value) |
void | selectRunnableTasks (std::vector< Task * > &tasks) |
Public Member Functions inherited from YACS::ENGINE::ComposedNode | |
virtual | ~ComposedNode () |
bool | isFinished () |
virtual void | shutdown (int level) |
Stop all pending activities of the composed node. More... | |
virtual void | resetState (int level) |
Reset the state of the node and its children depending on the parameter level. More... | |
std::string | getName () const |
std::string | getTaskName (Task *task) const |
DeploymentTree | getDeploymentTree () const |
Essentially for test. Use checkDeploymentTree instead to be sure that returned DeploymentTree is consistent. More... | |
DeploymentTree | checkDeploymentTree (bool deep) const throw (Exception) |
Perform check of deployment consistency of the current graph. More... | |
std::vector< Task * > | getNextTasks (bool &isMore) |
void | notifyFrom (const Task *sender, YACS::Event event, const Executor *execInst) |
Notify the node a task has emitted an event. More... | |
bool | edAddLink (OutPort *start, InPort *end) throw (Exception) |
Add a dataflow link between two data ports. More... | |
bool | edAddLink (OutGate *start, InGate *end) throw (Exception) |
Add a controlflow link between two control ports. More... | |
bool | edAddCFLink (Node *nodeS, Node *nodeE) throw (Exception) |
Add a controlflow link between two nodes. More... | |
void | edRemoveCFLink (Node *nodeS, Node *nodeE) throw (Exception) |
Remove a controlflow link. More... | |
void | edRemoveLink (OutPort *start, InPort *end) throw (Exception) |
Remove a dataflow link. More... | |
void | edRemoveLink (OutGate *start, InGate *end) throw (Exception) |
Remove a controlflow link. More... | |
virtual void | removeRecursivelyRedundantCL () |
std::list< ElementaryNode * > | getRecursiveConstituents () const |
std::list< Node * > | getAllRecursiveNodes () |
Get all children nodes elementary and composed including this node. More... | |
virtual std::list< Node * > | getAllRecursiveConstituents () |
Idem getAllRecursiveNodes, but this node is NOT included. More... | |
std::list< ProgressWeight > | getProgressWeight () const |
Get the progress weight for all elementary nodes. More... | |
std::string | getInPortName (const InPort *) const throw (Exception) |
Get the input port name. More... | |
std::string | getOutPortName (const OutPort *) const throw (Exception) |
int | getNumberOfOutputPorts () const |
std::list< OutputPort * > | getSetOfOutputPort () const |
std::list< OutputPort * > | getLocalOutputPorts () const |
redefined on derived class of ComposedNode. by default a ComposedNode has no port by itself More... | |
std::set< OutPort * > | getAllOutPortsLeavingCurrentScope () const |
List all output ports of children nodes that are linked to out of scope input ports. More... | |
std::set< InPort * > | getAllInPortsComingFromOutsideOfCurrentScope () const |
List all input ports that are linked to out of scope ports. More... | |
std::list< InputDataStreamPort * > | getSetOfInputDataStreamPort () const |
std::list< OutputDataStreamPort * > | getSetOfOutputDataStreamPort () const |
OutPort * | getOutPort (const std::string &name) const throw (Exception) |
OutputPort * | getOutputPort (const std::string &name) const throw (Exception) |
Get an output port given its name. More... | |
InputDataStreamPort * | getInputDataStreamPort (const std::string &name) const throw (Exception) |
OutputDataStreamPort * | getOutputDataStreamPort (const std::string &name) const throw (Exception) |
std::vector< std::pair < OutPort *, InPort * > > | getSetOfInternalLinks () const |
virtual std::vector< std::pair < OutPort *, InPort * > > | getSetOfLinksLeavingCurrentScope () const |
void | checkConsistency (LinkInfo &info) const throw (Exception) |
virtual std::vector< std::pair < InPort *, OutPort * > > | getSetOfLinksComingInCurrentScope () const |
virtual void | edUpdateState () |
update the status of the node More... | |
virtual std::string | getErrorReport () |
returns a string that contains an error report if the node is in error More... | |
ComposedNode * | getRootNode () const throw (Exception) |
bool | isNodeAlreadyAggregated (const Node *node) const |
Check that Node 'node' is already a direct son of this. More... | |
virtual bool | isNameAlreadyUsed (const std::string &name) const |
Node * | isInMyDescendance (Node *nodeToTest) const |
Returns the parent of a node that is the direct child of this node. More... | |
std::string | getChildName (const Node *node) const throw (Exception) |
virtual std::string | getMyQualifiedName (const Node *directSon) const |
Node * | getChildByName (const std::string &name) const throw (Exception) |
void | loaded () |
void | connected () |
virtual void | cleanNodes () |
Clean the composed node in case of not clean exit. More... | |
virtual std::string | getProgress () const |
Public Member Functions inherited from YACS::ENGINE::Node | |
virtual | ~Node () |
Node * | clone (ComposedNode *father, bool editionOnly=true) const |
This method MUST NEVER BE VIRTUAL More... | |
Node * | cloneWithoutCompAndContDeepCpy (ComposedNode *father, bool editionOnly=true) const |
This method MUST NEVER BE VIRTUAL More... | |
void | setState (YACS::StatesForNode theState) |
Sets the given state for node. More... | |
virtual YACS::StatesForNode | getState () const |
virtual YACS::StatesForNode | getEffectiveState () const |
Return the node state in the context of its father. More... | |
virtual YACS::StatesForNode | getEffectiveState (const Node *) const |
Return the effective state of a node in the context of this one (its father) More... | |
std::string | getColorState (YACS::StatesForNode state) const |
Return the color associated to a state. More... | |
InGate * | getInGate () |
OutGate * | getOutGate () |
const std::string & | getName () const |
void | setName (const std::string &name) |
Change the name of the node. More... | |
ComposedNode * | getFather () const |
const std::string | getId () const |
bool | exIsControlReady () const |
std::list< Node * > | getOutNodes () const |
virtual void | exFailedState () |
Notify this node that its execution has failed. More... | |
virtual void | exDisabledState () |
Notify this node that it has been disabled. More... | |
std::list< InPort * > | getSetOfInPort () const |
std::list< OutPort * > | getSetOfOutPort () const |
virtual std::set< InputPort * > | edGetSetOfUnitializedInputPort () const |
Becomes deprecated soon. Replaced by ComposedNode::CheckConsistency. More... | |
virtual bool | edAreAllInputPortInitialized () const |
Becomes deprecated soon. Replaced by ComposedNode::CheckConsistency. More... | |
InPort * | getInPort (const std::string &name) const throw (Exception) |
InPropertyPort * | getInPropertyPort () const throw (Exception) |
std::list< ComposedNode * > | getAllAscendanceOf (ComposedNode *levelToStop=0) const |
bool | operator> (const Node &other) const |
bool | operator< (const Node &other) const |
std::string | getImplementation () const |
virtual void | setProperty (const std::string &name, const std::string &value) |
virtual std::string | getProperty (const std::string &name) |
std::map< std::string, std::string > | getProperties () |
std::map< std::string, std::string > | getPropertyMap () |
virtual void | setProperties (std::map< std::string, std::string > properties) |
virtual Proc * | getProc () |
virtual const Proc * | getProc () const |
std::string | getQualifiedName () const |
same as Node::getName() in most cases, but differs for children of switch More... | |
int | getNumId () |
return node instance identifiant, unique for each node instance More... | |
std::vector< std::pair < std::string, int > > | getDPLScopeInfo (ComposedNode *gfn) |
virtual void | applyDPLScope (ComposedNode *gfn) |
virtual void | sendEvent (const std::string &event) |
emit notification to all observers registered with the dispatcher More... | |
virtual void | sendEvent2 (const std::string &event, void *something) |
emit notification to all observers registered with the dispatcher More... | |
virtual std::string | getErrorDetails () const |
virtual void | setErrorDetails (const std::string &error) |
virtual void | modified () |
Sets Node in modified state and its father if it exists. More... | |
virtual int | isModified () |
virtual int | isValid () |
indicates if the node is valid (returns 1) or not (returns 0) More... | |
virtual std::string | getContainerLog () |
returns a string that contains the name of the container log file if it exists More... | |
virtual void | ensureLoading () |
Put this node into TOLOAD state when possible. More... | |
virtual void | getCoupledNodes (std::set< Task * > &coupledNodes) |
Public Member Functions inherited from YACS::ENGINE::Scheduler | |
virtual | ~Scheduler () |
Protected Member Functions | |
Node * | simpleClone (ComposedNode *father, bool editionOnly=true) const |
void | checkLinkPossibility (OutPort *start, const std::list< ComposedNode * > &pointsOfViewStart, InPort *end, const std::list< ComposedNode * > &pointsOfViewEnd) throw (Exception) |
YACS::Event | updateStateOnFinishedEventFrom (Node *node) |
Method used to notify the node that a child node has ended. More... | |
Protected Member Functions inherited from YACS::ENGINE::Loop | |
void | buildDelegateOf (InPort *&port, OutPort *initialStart, const std::list< ComposedNode * > &pointsOfView) |
void | buildDelegateOf (std::pair< OutPort *, OutPort * > &port, InPort *finalTarget, const std::list< ComposedNode * > &pointsOfView) |
void | getDelegateOf (InPort *&port, OutPort *initialStart, const std::list< ComposedNode * > &pointsOfView) throw (Exception) |
void | getDelegateOf (std::pair< OutPort *, OutPort * > &port, InPort *finalTarget, const std::list< ComposedNode * > &pointsOfView) throw (Exception) |
void | releaseDelegateOf (InPort *&port, OutPort *initialStart, const std::list< ComposedNode * > &pointsOfView) throw (Exception) |
void | releaseDelegateOf (OutPort *portDwn, OutPort *portUp, InPort *finalTarget, const std::list< ComposedNode * > &pointsOfView) throw (Exception) |
void | checkNoCyclePassingThrough (Node *node) throw (Exception) |
void | checkControlDependancy (OutPort *start, InPort *end, bool cross, std::map< ComposedNode *, std::list< OutPort * >, SortHierarc > &fw, std::vector< OutPort * > &fwCross, std::map< ComposedNode *, std::list< OutPort * >, SortHierarc > &bw, LinkInfo &info) const |
void | checkCFLinks (const std::list< OutPort * > &starts, InputPort *end, unsigned char &alreadyFed, bool direction, LinkInfo &info) const |
check control flow links More... | |
Protected Member Functions inherited from YACS::ENGINE::StaticDefinedComposedNode | |
StaticDefinedComposedNode (const std::string &name) | |
StaticDefinedComposedNode (const StaticDefinedComposedNode &other, ComposedNode *father) | |
void | checkControlDependancy (OutPort *start, InPort *end, bool cross, std::map< ComposedNode *, std::list< OutPort * >, SortHierarc > &fw, std::vector< OutPort * > &fwCross, std::map< ComposedNode *, std::list< OutPort * >, SortHierarc > &bw, LinkInfo &info) const |
Protected Member Functions inherited from YACS::ENGINE::ComposedNode | |
ComposedNode (const std::string &name) | |
ComposedNode (const ComposedNode &other, ComposedNode *father) | |
void | performDuplicationOfPlacement (const Node &other) |
performs a duplication of placement using clone method of containers and components. clone behaviour is driven by attachOnCloning attribute. More... | |
void | performShallowDuplicationOfPlacement (const Node &other) |
performs a also duplication of placement but here containers and components are not copied at all whatever the value of attachedOnCloning. More... | |
void | edDisconnectAllLinksWithMe () |
YACS::Event | updateStateFrom (Node *node, YACS::Event event, const Executor *execInst) |
Update node state on receiving event from a node. More... | |
virtual YACS::Event | updateStateOnStartEventFrom (Node *node) |
Method used to notify the node that a child node has started. More... | |
virtual YACS::Event | updateStateOnFailedEventFrom (Node *node, const Executor *execInst) |
Method used to notify the node that a child node has failed. More... | |
void | checkInMyDescendance (Node *nodeToTest) const throw (Exception) |
Check if a node is in the descendance of this node. More... | |
template<class PORT > | |
std::string | getPortName (const PORT *port) const throw (Exception) |
void | checkNoCrossHierachyWith (Node *node) const throw (Exception) |
virtual void | performCFComputations (LinkInfo &info) const |
perform recursively all CF computations. More... | |
virtual void | destructCFComputations (LinkInfo &info) const |
destroy recursively all results of initial computations. More... | |
Node * | getLowestNodeDealingAll (const std::list< OutPort * > &ports) const |
void | checkLinksCoherenceRegardingControl (const std::vector< OutPort * > &starts, InputPort *end, LinkInfo &info) const throw (Exception) |
void | solveObviousOrDelegateCFLinks (const std::list< OutPort * > &starts, InputPort *end, unsigned char &alreadyFed, bool direction, LinkInfo &info) const |
Protected Member Functions inherited from YACS::ENGINE::Node | |
Node (const std::string &name) | |
Node (const Node &other, ComposedNode *father) | |
virtual void | exForwardFailed () |
virtual void | exForwardFinished () |
Protected Attributes | |
ConditionInputPort | _conditionPort |
Protected Attributes inherited from YACS::ENGINE::Loop | |
Node * | _node |
int | _nbOfTurns |
FakeNodeForLoop * | _nodeForNullTurnOfLoops |
std::set< DSToDFForLoop * > | _inputsTraducer |
std::set< DFToDSForLoop * > | _outputsTraducer |
Static Protected Attributes | |
static const char | NAME_OF_INPUT_CONDITION [] ="condition" |
Additional Inherited Members | |
Static Public Member Functions inherited from YACS::ENGINE::Loop | |
static TypeCode * | MappingDF2DS (TypeCode *type) throw (Exception) |
static TypeCode * | MappingDS2DF (TypeCode *type) throw (Exception) |
Public Attributes inherited from YACS::ENGINE::Node | |
YACS::Colour | _colour |
Static Public Attributes inherited from YACS::ENGINE::Node | |
static std::map< int, Node * > | idMap |
Static Protected Member Functions inherited from YACS::ENGINE::Loop | |
static bool | isNecessaryToBuildSpecificDelegateDF2DS (const std::list< ComposedNode * > &pointsOfView) |
Class for a while loop.
This node makes steps while the condition is true
Definition at line 38 of file WhileLoop.hxx.
WhileLoop::WhileLoop | ( | const WhileLoop & | other, |
ComposedNode * | father, | ||
bool | editionOnly | ||
) |
Definition at line 38 of file WhileLoop.cxx.
References YACS::ENGINE::ComposedNode::edAddLink(), YACS::ENGINE::Node::getInPort(), YACS::ENGINE::ComposedNode::getOutPort(), YACS::ENGINE::ComposedNode::getPortName(), and YACS::ENGINE::ComposedNode::getSetOfInternalLinks().
Referenced by simpleClone().
WhileLoop::WhileLoop | ( | const std::string & | name | ) |
Definition at line 34 of file WhileLoop.cxx.
|
virtual |
Reimplemented from YACS::ENGINE::Loop.
Definition at line 130 of file WhileLoop.cxx.
References YACS::ENGINE::Visitor::visitWhileLoop().
|
protectedvirtual |
Reimplemented from YACS::ENGINE::ComposedNode.
Definition at line 122 of file WhileLoop.cxx.
References DEBTRACE.
|
inline |
|
virtual |
Update the node state.
Called by InGate::exNotifyFromPrecursor
Reimplemented from YACS::ENGINE::Node.
Definition at line 58 of file WhileLoop.cxx.
References _conditionPort, YACS::ENGINE::Node::_inGate, YACS::ENGINE::Loop::_node, YACS::ENGINE::Loop::_nodeForNullTurnOfLoops, YACS::ENGINE::Node::_state, YACS::ACTIVATED, YACS::DISABLED, YACS::ENGINE::InGate::exIsReady(), YACS::ENGINE::Node::exUpdateState(), YACS::ENGINE::Loop::FakeNodeForLoop, YACS::ENGINE::ComposedNode::getAllOutPortsLeavingCurrentScope(), YACS::ENGINE::ConditionInputPort::getValue(), YACS::ENGINE::InputPort::isEmpty(), YACS::ENGINE::ConditionInputPort::isLinkedOutOfScope(), and YACS::ENGINE::Node::setState().
|
inlinevirtual |
Returns the port which value is used to take decision about the continuation of the loop.
Implements YACS::ENGINE::Loop.
Definition at line 52 of file WhileLoop.hxx.
Get an input port given its name.
Contrary to YACS::ENGINE::ComposedNode::getOutputPort, this method is NOT recursive and so the leaf of type ElementaryNode aggregating this InputPort is directly invoked.
Reimplemented from YACS::ENGINE::ComposedNode.
Definition at line 92 of file WhileLoop.cxx.
References YACS::ENGINE::ComposedNode::getInputPort().
|
virtual |
redefined on derived class of ComposedNode. by default a ComposedNode has no port by itself
Reimplemented from YACS::ENGINE::ComposedNode.
Definition at line 135 of file WhileLoop.cxx.
References _conditionPort, and PMMLBasicsTestLauncher::ret.
|
virtual |
initialisation of all input and output ports and gates, for execution
Reimplemented from YACS::ENGINE::Loop.
Definition at line 52 of file WhileLoop.cxx.
References _conditionPort, YACS::ENGINE::InputPort::exInit(), and YACS::ENGINE::Loop::init().
|
protectedvirtual |
|
inlinevirtual |
Reimplemented from YACS::ENGINE::Loop.
Definition at line 53 of file WhileLoop.hxx.
|
protectedvirtual |
Method used to notify the node that a child node has ended.
Update the loop state and return the loop change state
node | : the child node that has ended |
Implements YACS::ENGINE::ComposedNode.
Definition at line 106 of file WhileLoop.cxx.
References _conditionPort, YACS::ENGINE::Loop::_nbOfTurns, YACS::DONE, YACS::ENGINE::Node::exUpdateState(), YACS::FINISH, YACS::ENGINE::ConditionInputPort::getValue(), YACS::ENGINE::Node::init(), YACS::NOEVENT, and YACS::ENGINE::Node::setState().
|
protected |
Definition at line 42 of file WhileLoop.hxx.
Referenced by exUpdateState(), getLocalInputPorts(), init(), and updateStateOnFinishedEventFrom().
|
staticprotected |
Definition at line 41 of file WhileLoop.hxx.