Manage list of free integers.
More...
#include <misc/freelist.hh>
Public Member Functions |
virtual | ~free_list () |
int | register_n (int n) |
| Find n consecutive integers.
|
void | release_n (int base, int n) |
| Release n consecutive integers starting at base.
|
std::ostream & | dump_free_list (std::ostream &os) const |
| Dump the list to os for debugging.
|
void | insert (int base, int n) |
| Extend the list by inserting a new pos-lenght pair.
|
void | remove (int base, int n=0) |
| Remove n consecutive entries from the list, starting at base.
|
int | free_count () const |
| Return the number of free integers on the list.
|
Protected Member Functions |
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.
|
Detailed Description
Manage list of free integers.
Member Typedef Documentation
Such pairs describe second
free integer starting at first
.
Constructor & Destructor Documentation
virtual spot::free_list::~free_list |
( |
| ) |
|
|
virtual |
Member Function Documentation
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.
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.
Member Data Documentation
Tracks unused BDD variables.
The documentation for this class was generated from the following file: