1 #ifndef __DIADES__PETRI__TIMEREACHABILITYGRAPH__HH 2 #define __DIADES__PETRI__TIMEREACHABILITYGRAPH__HH 6 #include <unordered_map> 28 static string typeName() {
return "Diades::Petri::TimeReachabilityGraph"; }
38 _constraints.init(graph());
51 require(Exception,state.valid() && &state.owner() == &graph(),
"addTimeConstraint: invalid state");
52 require(Exception,!transitionName.empty(),
"addTimeConstraint: empty label");
53 _constraints[state][transitionName] = interval;
62 require(Exception,state.valid() && &state.owner() == &graph(),
"addTimeConstraint: invalid state");
63 return _constraints[state].begin();
74 require(Exception,state.valid() && &state.owner() == &graph(),
"addTimeConstraint: invalid state");
75 return _constraints[state].end();
84 virtual bool exportGraphToDot(
const string & fileDot);
Diades::Graph::Node RState
TimeConstraintsIterator constraintBegin(RState state) const
TimeConstraints _constraints
virtual void addTimeConstraint(RState state, const string &transitionName, const Diades::Utils::Interval &interval)
unordered_map< string, Diades::Utils::Interval >::const_iterator TimeConstraintsIterator
Diades::Graph::NodeMap< unordered_map< string, Diades::Utils::Interval > > TimeConstraints
TimeConstraintsIterator constraintEnd(RState state) const
Diades::Utils::Exception< TimeReachabilityGraph > Exception
#define require(Exception, expr, message)
Namespace of the Diades project.
virtual ~TimeReachabilityGraph()