DiaDes  0.1
DIAgnosis of Discrete-Event System
UnfoldingState.hh
Go to the documentation of this file.
1 #ifndef UNFOLDINGSTATE_H_
2 #define UNFOLDINGSTATE_H_
3 
4 #include<list>
5 #include<vector>
6 #include"Variable.hh"
7 #include"Formula.hh"
8 #include"ComponentType.hh"
9 
10 using namespace std;
11 
12 
13 namespace Diades
14 {
15  namespace Sdmdl
16  {
17 
24  {
25  private:
26  vector<Formula::ConstReference> _assignment;
28  int * _cube;
29  int _size;
30 
31 
32 
33  public:
34  UnfoldingState():_comp(0),_cube(0),_size(0) {}
35  bool valid() const { return (_comp != 0 && !_assignment.empty() && !_assignment[0].get().isNull()); }
36  UnfoldingState(ComponentType & component);
37  UnfoldingState(ComponentType & component, const Formula & f);
38  UnfoldingState(const UnfoldingState & state);
39  void trigger(Rule & rule, set<UnfoldingState> & targets);
40  virtual ~UnfoldingState();
41  UnfoldingState & operator=(const UnfoldingState & state);
42  bool operator == (const UnfoldingState & state) const;
43  string label() const;
44  const Formula & formula() const { return _assignment[0]; }
52  string observableLabel() const;
53  bool satisfy(const Rule & rule);
54  bool operator<(const UnfoldingState & state) const;
55  friend ostream & operator << (ostream & os, const UnfoldingState & state);
56 
57  int * cube() const { return _cube; }
58  int cubeSize() const { return _size; }
59  };
60 
61 
62 
63 
64 
65  };
66 };
67 
68 #endif /*UNFOLDINGSTATE_H_*/
STL namespace.
Formula class using BDD.
const Formula & formula() const
Namespace of the Diades project.
std::ostream & operator<<(std::ostream &os, const Identifier &identifier)
Definition: Identifier.hh:501
vector< Formula::ConstReference > _assignment