DiaDes  0.1
DIAgnosis of Discrete-Event System
TimeNet.hh
Go to the documentation of this file.
1 #ifndef __DIADES__PETRI__TIMENET_HH_
2 #define __DIADES__PETRI__TIMENET_HH_
3 
4 #include <sstream>
6 #include <diades/petri/Net.hh>
7 
8 
9 namespace Diades
10 {
11  using namespace Utils;
12 
13 
14 namespace Petri
15 {
16 
17 
18 class TimeNet : public Petri::Net
19 {
20 
21 private:
22  Graph::NodeMap< Interval > _time;
23 
24 
25 public:
26  TimeNet():Net(),
27  _time(_graph,0,Interval(0,"+oo")){}
28  TimeNet(const TimeNet & p1, const TimeNet & p2,
29  const set<Event> & synchronisation,bool strict = true):Net(p1,p2,synchronisation,strict),
30  _time()
31  {
32  _time.init(_graph,0,Interval(0,"+oo",false));
34  }
35 
36  virtual ~TimeNet() {}
37 
38  Transition newTransition(const set<Place> & pre, const set<Place> & post,
39  const Event & event, const Interval & interval);
40  Transition newTransition(const set<Place> & pre, const set<Place> & post,
41  const Event & event, const Interval & interval,
42  const string & label);
43 
44  const Interval & timeInterval(Transition t) const;
45  void setInterval(Transition t, const Interval & interval);
46 
47  virtual void net2Dot(const string & fileName) const;
48  virtual void net2Tina(const string & fileName) const;
49 
53  virtual void clear();
54 
63  virtual void tina2Net(const string & fileName);
64 
69  virtual void deleteTransition(Transition t)
70  { _time[t] = Interval(); Net::deleteTransition(t); }
71 
80  {
81  Transition result = Net::duplicateTransition(t);
82  _time[result]=_time[t];
83  return result;
84  }
85 
86  void setTemporalEvent(Transition t);
87  void net2Tina(ostream & os) const;
88 };
89 
90  };
91 };
92 
93 #endif /*TIMENET_HH_*/
Diades::Graph::Node Transition
Definition: BoundedNet.hh:31
virtual ~TimeNet()
Definition: TimeNet.hh:36
virtual Transition duplicateTransition(Transition t)
Definition: TimeNet.hh:79
Graph::NodeMap< Interval > _time
Definition: TimeNet.hh:22
DdAutFsm::EventPropertyId Event
Definition: TrimState.cc:139
void deleteTransition(Component &comp, InputIterator first, InputIterator last)
Definition: Component.hh:1381
TimeNet(const TimeNet &p1, const TimeNet &p2, const set< Event > &synchronisation, bool strict=true)
Definition: TimeNet.hh:28
Namespace of the Diades project.
1-bounded Petri nets
Definition: Net.hh:62
virtual void deleteTransition(Transition t)
Definition: TimeNet.hh:69