bool insertNodeChildrenInSet(Node *node, std::set<Node *>& nodeSet)
{
bool verdict=true;
- set<Node *> outNodes=node->getOutNodes();
- for (set<Node *>::iterator iter=outNodes.begin();iter!=outNodes.end(); iter++)
+ list<Node *> outNodes=node->getOutNodes();
+ for (list<Node *>::iterator iter=outNodes.begin();iter!=outNodes.end(); iter++)
{
verdict=(nodeSet.insert(*iter)).second;
if (verdict) verdict = insertNodeChildrenInSet((*iter),nodeSet);
void Bloc::writeDot(std::ostream &os) const
{
- os << " subgraph cluster_" << getId() << " {\n" ;
- list<Node *>nodes=getChildren();
- for(list<Node *>::const_iterator iter=nodes.begin();iter!=nodes.end();iter++)
+ os << " subgraph cluster_" << getId() << " {\n" ;
+ list<Node *>nodes=getChildren();
+ for(list<Node *>::const_iterator iter=nodes.begin();iter!=nodes.end();iter++)
{
- (*iter)->writeDot(os);
- string p=(*iter)->getId();
- //not connected node
- if((*iter)->_inGate._backLinks.size() == 0) os << getId() << " -> " << p << ";\n";
- set<Node *>outnodes = (*iter)->getOutNodes();
- for(set<Node *>::const_iterator itout=outnodes.begin();itout!=outnodes.end();itout++)
+ (*iter)->writeDot(os);
+ string p=(*iter)->getId();
+ //not connected node
+ if((*iter)->_inGate._backLinks.size() == 0) os << getId() << " -> " << p << ";\n";
+ list<Node *>outnodes = (*iter)->getOutNodes();
+ for(list<Node *>::const_iterator itout=outnodes.begin();itout!=outnodes.end();itout++)
{
- os << p << " -> " << (*itout)->getId() << ";\n";
+ os << p << " -> " << (*itout)->getId() << ";\n";
}
}
- os << "}\n" ;
- os << getId() << "[fillcolor=\"" ;
- YACS::StatesForNode state=getEffectiveState();
- os << getColorState(state);
- os << "\" label=\"" << "Bloc:" ;
- os << getQualifiedName() <<"\"];\n";
+ os << "}\n" ;
+ os << getId() << "[fillcolor=\"" ;
+ YACS::StatesForNode state=getEffectiveState();
+ os << getColorState(state);
+ os << "\" label=\"" << "Bloc:" ;
+ os << getQualifiedName() <<"\"];\n";
}
void Bloc::accept(Visitor* visitor)
* get the set of all nodes connected to the outGate
*/
-set<Node *> Node::getOutNodes() const
+list<Node *> Node::getOutNodes() const
{
- set<Node *> ret;
+ list<Node *> ret;
list<InGate *> inGates=_outGate.edSetInGate();
for(list<InGate *>::iterator iter=inGates.begin();iter!=inGates.end();iter++)
- ret.insert((*iter)->getNode());
+ ret.push_back((*iter)->getNode());
return ret;
}
ComposedNode * getFather() const { return _father; }
const std::string getId() const;
bool exIsControlReady() const;
- std::set<Node *> getOutNodes() const;
+ std::list<Node *> getOutNodes() const;
virtual void writeDot(std::ostream &os) const;
virtual void exUpdateState();
virtual void exFailedState();