spot
0.9.2
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
tgbaalgos
gtec
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
{
31
class
numbered_state_heap_const_iterator
32
{
33
public
:
34
virtual
~numbered_state_heap_const_iterator
() {}
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
51
class
numbered_state_heap
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
100
class
numbered_state_heap_factory
101
{
102
public
:
103
virtual
~numbered_state_heap_factory
() {}
104
virtual
numbered_state_heap
*
build
()
const
= 0;
105
};
106
108
class
numbered_state_heap_hash_map
:
public
numbered_state_heap
109
{
110
public
:
111
virtual
~numbered_state_heap_hash_map
();
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
121
virtual
numbered_state_heap_const_iterator
*
iterator
()
const
;
122
123
typedef
Sgi::hash_map
<
const
state
*, int,
124
state_ptr_hash
,
state_ptr_equal
>
hash_type
;
125
protected
:
126
hash_type
h
;
127
};
128
132
class
numbered_state_heap_hash_map_factory
:
133
public
numbered_state_heap_factory
134
{
135
public
:
136
virtual
numbered_state_heap_hash_map
*
build
()
const
;
137
139
static
const
numbered_state_heap_hash_map_factory
*
instance
();
140
protected
:
141
virtual
~numbered_state_heap_hash_map_factory
() {}
142
numbered_state_heap_hash_map_factory
();
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
1.8.1.1