DiaDes  0.1
DIAgnosis of Discrete-Event System
BranchingProcess.hh
Go to the documentation of this file.
1 #ifndef __DIADES__PETRI__BRANCHINGPROCESS_HH_
2 #define __DIADES__PETRI__BRANCHINGPROCESS_HH_
3 
14 #include <diades/utils/Box.hh>
15 #include <diades/petri/Net.hh>
17 
18 
19 
20 namespace Diades
21 {
22  namespace Petri
23  {
24  class Configuration;
25 
26 
36  class BranchingProcess: public Net
37  {
38  public:
42  typedef Place Condition;
43 
50  typedef Transition Event;
51 
52 
53 
54  private:
62 
63 
64  public:
70  static string typeName() { return "Diades::Petri::BranchingProcess"; }
71 
77 
78 
79  private:
83  NetBox _net;
84 
92 
93 
94 
101  set<Condition> _min;
102 
103 
110  set<Condition> _max;
111 
112 
113 
114 
120  set<Transition> _involvedTransitions;
121 
122 
123 
124 
125 
126 
133 
134 
135 
136  public:
141 
142 
148 
149 
150 
156  void setNet(Net & net);
157 
158 
159 
160 
167  Net & net()
168  {
169  return _net.obj();
170  }
171 
172 
177  void initProcess();
178 
179 
185  void clear();
186 
193  const set<BranchingProcess::Condition> & min() const
194  {
195  return _min;
196  }
197 
198 
205  const set<BranchingProcess::Condition> & max() const
206  {
207  return _max;
208  }
209 
210 
215  void unfold();
216 
217 
218 
224  void getPossibleExtensions(Extensions & extensions);
225 
226 
235  Event addExtension(const Extension & extension);
236 
237 
238 
247  bool isCutOff(const Event & e) const;
248 
249 
250 
258  Configuration configuration(set<Event> & events) const;
259 
260  };
261  };
262 };
263 
264 
265 
266 
267 #endif
Diades::Utils::Exception< BranchingProcess > Exception
Configuration configuration(set< Event > &events) const
Diades::Graph::Node Transition
Definition: BoundedNet.hh:31
list of Extension objects
Definition: Extensions.hh:42
Diades::Graph::Node Place
Definition: BoundedNet.hh:24
bool isCutOff(const Event &e) const
Object & obj()
Definition: Box.hh:91
void getPossibleExtensions(Extensions &extensions)
Diades::Graph::ConstNodeMap< Place > _bmap
Namespace of the Diades project.
Event addExtension(const Extension &extension)
Diades::Graph::ConstNodeMap< Extensions > _possibleExtensions
1-bounded Petri nets
Definition: Net.hh:62
Definition of the Box Utils.
This class implements a branching process of a Net (see Esparza 2002).
Diades::Utils::Box< Net > NetBox
Extensions data structure.
A Configuration caracterises a configuration of a BranchingProcess.
const set< BranchingProcess::Condition > & min() const
const set< BranchingProcess::Condition > & max() const