Manage list of free integers.
More...
#include <misc/freelist.hh>
|
virtual | ~free_list () |
|
int | register_n (int n) |
| Find n consecutive integers. More...
|
|
void | release_n (int base, int n) |
| Release n consecutive integers starting at base. More...
|
|
std::ostream & | dump_free_list (std::ostream &os) const |
| Dump the list to os for debugging. More...
|
|
void | insert (int base, int n) |
| Extend the list by inserting a new pos-lenght pair. More...
|
|
void | remove (int base, int n=0) |
| Remove n consecutive entries from the list, starting at base. More...
|
|
int | free_count () const |
| Return the number of free integers on the list. More...
|
|
|
virtual int | extend (int n)=0 |
|
void | remove (free_list_type::iterator i, int base, int n) |
| Remove n consecutive entries from the list, starting at base. More...
|
|
Manage list of free integers.
Such pairs describe second
free integer starting at first
.
virtual spot::free_list::~free_list |
( |
) | |
|
|
virtual |
std::ostream& spot::free_list::dump_free_list |
( |
std::ostream & |
os) | |
const |
Dump the list to os for debugging.
virtual int spot::free_list::extend |
( |
int |
n) | |
|
|
protectedpure virtual |
Allocate n integer.
This function is called by register_n() when the free list is empty or if n consecutive integers could not be found. It should allocate more integers, possibly changing the list, and return the first integer on a range of n consecutive integer requested by the user.
Implemented in spot::bdd_dict::anon_free_list, and spot::bdd_allocator.
int spot::free_list::free_count |
( |
) | |
const |
Return the number of free integers on the list.
void spot::free_list::insert |
( |
int |
base, |
|
|
int |
n |
|
) |
| |
Extend the list by inserting a new pos-lenght pair.
int spot::free_list::register_n |
( |
int |
n) | |
|
Find n consecutive integers.
Browse the list of free integers until n consecutive integers are found. Extend the list (using extend()) otherwise.
- Returns
- the first integer of the range
void spot::free_list::release_n |
( |
int |
base, |
|
|
int |
n |
|
) |
| |
Release n consecutive integers starting at base.
void spot::free_list::remove |
( |
int |
base, |
|
|
int |
n = 0 |
|
) |
| |
Remove n consecutive entries from the list, starting at base.
void spot::free_list::remove |
( |
free_list_type::iterator |
i, |
|
|
int |
base, |
|
|
int |
n |
|
) |
| |
|
protected |
Remove n consecutive entries from the list, starting at base.
Tracks unused BDD variables.
The documentation for this class was generated from the following file: