DiaDes  0.1
DIAgnosis of Discrete-Event System
TimePetriNet.hh
Go to the documentation of this file.
1 #ifndef __DIADES__PETRI__TIMEPETRINET_HH_
2 #define __DIADES__PETRI__TIMEPETRINET_HH_
3 
4 #include <sstream>
5 #include <utils/Interval.hh>
6 #include "PetriNet.hh"
7 
8 
9 namespace Diades
10 {
11  using namespace Utils;
12 
13 namespace Petri
14 {
15 
16 
18 {
19 
20 private:
21  Graph::NodeMap< Interval > _time;
22 
23 
24 public:
26  _time(_graph,0,Interval(0,"+oo")){}
27  TimePetriNet(const TimePetriNet & p1, const TimePetriNet & p2,
28  const set<Event> & synchronisation,bool strict = true):PetriNet(p1,p2,synchronisation,strict),
29  _time()
30  {
31  _time.init(_graph,0,Interval(0,"+oo",false));
33  }
34 
35  virtual ~TimePetriNet() {}
36 
37  Transition newTransition(const set<Place> & pre, const set<Place> & post,
38  const Event & event, const Interval & interval);
39  Transition newTransition(const set<Place> & pre, const set<Place> & post,
40  const Event & event, const Interval & interval,
41  const string & label);
42 
43  const Interval & timeInterval(Transition t) const;
44  void setInterval(Transition t, const Interval & interval);
45 
46  virtual void net2Dot(const string & fileName) const;
47  virtual void net2Tina(const string & fileName) const;
48 
52  virtual void clear();
53 
62  virtual void tina2Net(const string & fileName);
63 
68  virtual void deleteTransition(Transition t)
69  { _time[t] = Interval(); PetriNet::deleteTransition(t); }
70 
79  {
80  Transition result = PetriNet::duplicateTransition(t);
81  _time[result]=_time[t];
82  return result;
83  }
84 };
85 
86 };
87 };
88 
89 #endif /*TIMEPETRINET_HH_*/
virtual Transition duplicateTransition(Transition t)
Definition: TimePetriNet.hh:78
virtual void deleteTransition(Transition t)
Definition: TimePetriNet.hh:68
TimePetriNet(const TimePetriNet &p1, const TimePetriNet &p2, const set< Event > &synchronisation, bool strict=true)
Definition: TimePetriNet.hh:27
void deleteTransition(Component &comp, InputIterator first, InputIterator last)
Definition: Component.hh:1162
Namespace of the Diades project.
1-bounded Petri nets
Definition: PetriNet.hh:61
Diades::Graph::Node Transition
Definition: PetriNet.hh:33
Graph::NodeMap< Interval > _time
Definition: TimePetriNet.hh:21