spot  1.2.1a
ec.hh
1 // Copyright (C) 2012 Laboratoire de Recherche et Développement
2 // de l'Epita (LRDE).
3 //
4 // This file is part of Spot, a model checking library.
5 //
6 // Spot is free software; you can redistribute it and/or modify it
7 // under the terms of the GNU General Public License as published by
8 // the Free Software Foundation; either version 3 of the License, or
9 // (at your option) any later version.
10 //
11 // Spot is distributed in the hope that it will be useful, but WITHOUT
12 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
14 // License for more details.
15 //
16 // You should have received a copy of the GNU General Public License
17 // along with this program. If not, see <http://www.gnu.org/licenses/>.
18 
19 #ifndef SPOT_FASTTGBAALGOS_EC_EC_HH
20 # define SPOT_FASTTGBAALGOS_EC_EC_HH
21 
22 #include "fasttgba/fasttgba.hh"
23 
24 namespace spot
25 {
28  class ec
29  {
30  public:
31 
33  virtual bool check() = 0;
34 
35  virtual ~ec() {}
36  };
37 
38 
41  {
42  public :
45  // automaton just this class to destroy this automaton
46  virtual const spot::fasttgba* get_automaton() const = 0;
47 
50  // automaton just this class to destroy this automaton
51  virtual const spot::fasttgba* get_ba_automaton() const = 0;
52 
53 
55  virtual const spot::fasttgba* get_weak_automaton() const = 0;
56 
58  virtual const spot::fasttgba* get_terminal_automaton() const = 0;
59 
60  virtual ~instance_automaton()
61  {
62  }
63  };
64 
72  {
73  public:
75  virtual const instance_automaton* new_instance () = 0;
76 
77  virtual ~instanciator()
78  {
79  }
80 
82  virtual bool have_weak() = 0;
83 
85  virtual bool have_strong() = 0;
86 
88  virtual bool have_terminal() = 0;
89  };
90 
91 
92 
94  {
95  public:
96  simple_instance(const spot::simple_instance&) = delete;
97 
99  ftgba_(tgba)
100  {
101  }
102 
103  virtual ~simple_instance()
104  {
105  }
106 
108  {
109  return ftgba_;
110  }
111 
113  {
114  // Not Supported
115  assert(false);
116  return 0;
117  }
118 
120  {
121  // Not Supported
122  assert(false);
123  return 0;
124  }
125 
127  {
128  // Not Supported
129  assert(false);
130  return 0;
131  }
132 
133  private:
134  const spot::fasttgba* ftgba_;
135  };
136 
138  {
139  private:
140  const spot::fasttgba* tgba_;
141 
142  public:
144  tgba_(tgba)
145  {
146  }
147 
149  {
150  return new simple_instance(tgba_);
151  }
152 
153  virtual bool have_weak()
154  {
155  return false;
156  }
157 
158  virtual bool have_terminal()
159  {
160  return false;
161  }
162 
163  virtual bool have_strong()
164  {
165  return true;
166  }
167  };
168 
169 
170 }
171 
172 #endif // SPOT_FASTTGBAALGOS_EC_EC_HH
this class acts like a wrapper to the C code of the open_set.
Definition: public.hh:32
virtual const spot::fasttgba * get_terminal_automaton() const =0
return a terminal instance of the automaton
virtual bool have_terminal()
Return wether there is a terminal instance.
Definition: ec.hh:158
Definition: fasttgba.hh:33
const spot::fasttgba * get_weak_automaton() const
return a weak instance of the automaton
Definition: ec.hh:119
virtual bool have_strong()=0
Return wether there is a weak instance.
const spot::fasttgba * get_terminal_automaton() const
return a terminal instance of the automaton
Definition: ec.hh:126
const spot::fasttgba * get_automaton() const
return the automaton. Warning ! You don't have to delete the
Definition: ec.hh:107
virtual bool have_weak()=0
Return wether there is a weak instance.
Definition: ec.hh:71
virtual bool have_strong()
Return wether there is a weak instance.
Definition: ec.hh:163
A simple wrapper for an automaton.
Definition: ec.hh:40
virtual const instance_automaton * new_instance()
Return a new instance of the automaton.
Definition: ec.hh:148
Definition: ec.hh:93
virtual const spot::fasttgba * get_automaton() const =0
return the automaton. Warning ! You don't have to delete the
virtual bool have_terminal()=0
Return wether there is a terminal instance.
Definition: ec.hh:137
virtual const spot::fasttgba * get_ba_automaton() const =0
return the automaton as a B\¨uchi Automaton. Warning ! You don't have to delete the ...
A Transition-based Generalized Büchi Automaton.
Definition: tgba.hh:67
virtual bool check()=0
Launch the emptiness check.
virtual const instance_automaton * new_instance()=0
Return a new instance of the automaton.
virtual bool have_weak()
Return wether there is a weak instance.
Definition: ec.hh:153
const spot::fasttgba * get_ba_automaton() const
return the automaton as a B\¨uchi Automaton. Warning ! You don't have to delete the ...
Definition: ec.hh:112
virtual const spot::fasttgba * get_weak_automaton() const =0
return a weak instance of the automaton
Definition: ec.hh:28

Please direct any question, comment, or bug report to the Spot mailing list at spot@lrde.epita.fr.
Generated on Fri Jun 5 2015 11:31:18 for spot by doxygen 1.8.9.1