1 #ifndef __DIADES__AUTOMATA__CONNECTIONMAP_HH 2 #define __DIADES__AUTOMATA__CONNECTIONMAP_HH 4 #include<unordered_map> 28 unordered_map< Node,vector<Topology::Node>::size_type >
_nodeMapping;
31 ConnectionMap():_topology(0),_connection(),_nodeMapping(),_componentMapping(){}
34 _componentNodes.insert(_componentNodes.end(),topology.
cliqueBegin(connection),
36 for(vector<Topology::Node>::size_type index = 0; index < _componentNodes.size();++index)
38 _nodeMapping[_componentNodes[index]]=index;
40 _components.resize(_componentNodes.size());
41 _events.resize(_componentNodes.size());
44 _topology(map._topology),
45 _connection(map._connection),
46 _components(map._components),
47 _componentNodes(map._componentNodes),
48 _events(map._events), _nodeMapping(map._nodeMapping),
49 _componentMapping(map._componentMapping){}
83 unordered_map< Node,vector<Topology::Node>::size_type >::const_iterator it = _nodeMapping.find(node);
84 if(it != _nodeMapping.end())
86 return _events[it->second];
93 unordered_map<ComponentPointer,vector<Topology::Node>::size_type>::const_iterator it = _componentMapping.find(&component);
94 if(it!=_componentMapping.end())
96 return _events[it->second];
102 unordered_map< Node,vector<Topology::Node>::size_type >::const_iterator it = _nodeMapping.find(node);
103 return *_components[it->second];
109 unordered_map<ComponentPointer,vector<Topology::Node>::size_type>::const_iterator it = _componentMapping.find(&component);
110 if(it!=_componentMapping.end())
112 return _componentNodes[it->second];
122 return _events.begin();
127 return _events.end();
CliqueIterator cliqueBegin(Connection connection) const
ConnectionMap(const Topology &topology, Topology::Connection connection)
ConnectionMap(const ConnectionMap &map)
ConnectionMap & operator=(const ConnectionMap &map)
Topology::Connection _connection
Diades::Graph::Node Connection
const ObservableComponent * ComponentPointer
Topology::Connection connection() const
void mapEventToNode(Event event, Node node)
const ObservableComponent & getComponent(Node node) const
vector< Event >::const_iterator EventIterator
void mapComponentToNode(const ObservableComponent &component, Node node)
An observable Component defined as a automaton.
DdAutFsm::EventPropertyId Event
EventIterator eventBegin() const
const Topology & topology() const
unordered_map< Node, vector< Topology::Node >::size_type > _nodeMapping
Node getNode(const ObservableComponent &component) const
Namespace of the Diades project.
Event getEvent(Node node) const
vector< ComponentPointer > _components
const Topology * _topology
Event getEvent(const ObservableComponent &component) const
vector< Topology::Node > _componentNodes
EventIterator eventEnd() const
unordered_map< ComponentPointer, vector< Topology::Node >::size_type > _componentMapping
CliqueIterator cliqueEnd(Connection connection) const