spot  0.9.2
nsheap.hh
Go to the documentation of this file.
1 // Copyright (C) 2004, 2006 Laboratoire d'Informatique de Paris 6 (LIP6),
2 // département Systèmes Répartis Coopératifs (SRC), Université Pierre
3 // et Marie Curie.
4 //
5 // This file is part of Spot, a model checking library.
6 //
7 // Spot is free software; you can redistribute it and/or modify it
8 // under the terms of the GNU General Public License as published by
9 // the Free Software Foundation; either version 2 of the License, or
10 // (at your option) any later version.
11 //
12 // Spot is distributed in the hope that it will be useful, but WITHOUT
13 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
15 // License for more details.
16 //
17 // You should have received a copy of the GNU General Public License
18 // along with Spot; see the file COPYING. If not, write to the Free
19 // Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
20 // 02111-1307, USA.
21 
22 #ifndef SPOT_TGBAALGOS_GTEC_NSHEAP_HH
23 # define SPOT_TGBAALGOS_GTEC_NSHEAP_HH
24 
25 #include "tgba/state.hh"
26 #include "misc/hash.hh"
27 
28 namespace spot
29 {
32  {
33  public:
35 
37 
38  virtual void first() = 0;
39  virtual void next() = 0;
40  virtual bool done() const = 0;
42 
44 
45  virtual const state* get_state() const = 0;
46  virtual int get_index() const = 0;
48  };
49 
52  {
53  public:
54  typedef std::pair<const state*, int*> state_index_p;
55  typedef std::pair<const state*, int> state_index;
56 
57  virtual ~numbered_state_heap() {}
59 
60 
61 
62 
63 
64 
65 
66 
67 
68 
69 
70 
71 
72 
73  virtual state_index find(const state* s) const = 0;
74  virtual state_index_p find(const state* s) = 0;
76 
78 
79 
80 
81 
82 
83 
84 
85  virtual state_index index(const state* s) const = 0;
86  virtual state_index_p index(const state* s) = 0;
88 
90  virtual void insert(const state* s, int index) = 0;
91 
93  virtual int size() const = 0;
94 
96  virtual numbered_state_heap_const_iterator* iterator() const = 0;
97  };
98 
101  {
102  public:
104  virtual numbered_state_heap* build() const = 0;
105  };
106 
109  {
110  public:
112 
113  virtual state_index find(const state* s) const;
114  virtual state_index_p find(const state* s);
115  virtual state_index index(const state* s) const;
116  virtual state_index_p index(const state* s);
117 
118  virtual void insert(const state* s, int index);
119  virtual int size() const;
120 
122 
123  typedef Sgi::hash_map<const state*, int,
125  protected:
127  };
128 
134  {
135  public:
136  virtual numbered_state_heap_hash_map* build() const;
137 
140  protected:
143  };
144 
145 }
146 
147 #endif // SPOT_TGBAALGOS_GTEC_NSHEAP_HH

Please comment this page and report errors about it on the RefDocComments page.
Generated on Mon Jul 2 2012 17:35:47 for spot by doxygen 1.8.1.1