1 #ifndef __DIADES__ALTARICA__NODE__HH
2 #define __DIADES__ALTARICA__NODE__HH
60 NodeData(
unsigned id):_id(id),_name(
"Invalid_but_non_empty_Altarica_Node"),
61 _idParam(),_param(),_flowVar(),_stateVar(),_nodeVar(),
62 _flowVarOfLabel(),_stateVarOfLabel(),_nodeVarOfLabel(),
63 _attributes(),_eventSet(),_eventOfLabel(),
64 _eventDag(),_events(_eventDag),_assertions(),_subNodes(),_subNodesMap(),_synchros(),
80 unordered_map<Identifier,Event>::const_iterator it = _eventOfLabel.find(
id);
81 if(it != _eventOfLabel.end())
93 void setPriorities(
const set<Event> & lowEvents,
const set<Event> & highEvents);
124 _assertions.push_back(assertion);
141 _trans.push_back(transition);
151 return _trans.begin();
171 unordered_map<Identifier,unsigned>::const_iterator it = _idParam.find(
id);
172 if(it == _idParam.end())
176 return _param[it->second];
186 unordered_map<Identifier,Variable >::const_iterator it = _flowVarOfLabel.find(
id);
187 if(it == _flowVarOfLabel.end())
189 it = _stateVarOfLabel.find(
id);
190 if(it != _stateVarOfLabel.end())
196 it = _nodeVarOfLabel.find(
id);
197 if(it != _nodeVarOfLabel.end())
222 void addSyncVector(
const vector< list<Identifier> > & paths);
306 unsigned id()
const {
if(!
valid()) {
return 0;}
return _data->
_id; }
311 bool valid()
const {
return _data != 0; }
319 if(!
valid()) {
return "Invalid_Altarica_Node"; }
405 return _data->
_param.begin();
414 return _data->
_param.end();
422 return _data->
_trans.begin();
431 return _data->
_trans.end();
VariableIterator nodeVariableEnd() const
VariableIterator nodeVariableBegin() const
vector< Transition > _trans
vector< Variable > _stateVar
InitialisationIterator initialisationEnd() const
VariableIterator stateVariableEnd() const
unsigned numberOfSubNodes() const
void setPriorities(const set< Event > &lowEvents, const set< Event > &highEvents)
set< Event >::const_iterator EventIterator
Parameter getParameter(const Identifier &id) const
vector< Variable >::const_iterator VariableIterator
TransitionIterator transitionBegin() const
void addParameter(const Identifier &id, Domain domain)
Variable addStructureVariable(const Identifier &id, const set< Variable > &structure)
void addAttribute(const Identifier &attribute)
Parameter getParameter(const Identifier &id) const
vector< Transition >::const_iterator TransitionIterator
Variable addVariable(const Identifier &id, NodeVariableType type, Domain domain, const set< Identifier > &attributes)
Diades::Graph::NodeMap< Event > _events
unordered_map< Identifier, unsigned > _idParam
void addSyncVector(const vector< list< Identifier > > &paths)
vector< NodeData * > _subNodes
set< Identifier > _attributes
SubNodeIndex subNodeLast() const
VariableIterator flowVariableBegin() const
ParameterIterator parameterEnd() const
Node getSubNode(SubNodeIndex index) const
SubNodeIndex subNodeFirst() const
ExpressionPtrIterator assertionBegin() const
EventIterator eventBegin() const
const string & getSubNodeName(SubNodeIndex index) const
VariableIterator flowVariableEnd() const
set< Assignment >::const_iterator InitialisationIterator
InitialisationIterator initialisationBegin() const
vector< Transition >::const_iterator TransitionIterator
Diades::Graph::Graph _eventDag
Variable getVariable(const Identifier &id) const
void addAssertion(Expression *assertion)
vector< Parameter > _param
vector< Expression * >::const_iterator ExpressionPtrIterator
Variable getVariable(const Identifier &id) const
Event getEvent(const Identifier &id) const
vector< Variable > _flowVar
Namespace of the Diades project.
unordered_map< Identifier, Variable > _nodeVarOfLabel
vector< Identifier > _subNodesName
list< vector< list< Identifier > > > _synchros
vector< Expression * > _assertions
Event getEvent(const Identifier &id) const
void addSubNode(const Identifier &name, const Node &nodeType)
AttributeIterator attributeEnd() const
set< Assignment > _initialisations
unordered_map< Identifier, NodeData * > _subNodesMap
ExpressionPtrIterator assertionEnd() const
unordered_map< Identifier, Variable > _flowVarOfLabel
unordered_map< Identifier, Variable > _stateVarOfLabel
vector< Parameter >::const_iterator ParameterIterator
Node & operator=(const Node &node)
unsigned numberOfFlowVariables() const
TransitionIterator transitionBegin() const
vector< Variable > _nodeVar
TransitionIterator transitionEnd() const
Event newEvent(const Identifier &id)
VariableIterator stateVariableBegin() const
unsigned numberOfNodeVariables() const
void addTransition(const Transition &transition)
TransitionIterator transitionEnd() const
unordered_map< Identifier, Event > _eventOfLabel
vector< NodeData * >::size_type SubNodeIndex
Node(NodeData *data)
data associated to a Node
set< Identifier >::const_iterator AttributeIterator
ParameterIterator parameterBegin() const
AttributeIterator attributeBegin() const
void addInitialisation(const Assignment &assignment)
unsigned numberOfStateVariables() const
EventIterator eventEnd() const
#define assertion(Exception, expr, message)