Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members

spot::free_list Class Reference

Manage list of free integers. More...

#include <freelist.hh>

Inheritance diagram for spot::free_list:

Inheritance graph
[legend]
List of all members.

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.


Protected Types

typedef std::pair< int, int > pos_lenght_pair
 Such pairs describe second free integer starting at first.

typedef std::list< pos_lenght_pairfree_list_type

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.


Protected Attributes

free_list_type fl
 Tracks unused BDD variables.


Detailed Description

Manage list of free integers.


Member Typedef Documentation

typedef std::list<pos_lenght_pair> spot::free_list::free_list_type [protected]
 

typedef std::pair<int, int> spot::free_list::pos_lenght_pair [protected]
 

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  )  [protected, pure 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_allocator, and spot::bdd_dict::annon_free_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 free_list_type::iterator  i,
int  base,
int  n
[protected]
 

Remove n consecutive entries from the list, starting at base.

void spot::free_list::remove int  base,
int  n = 0
 

Remove n consecutive entries from the list, starting at base.


Member Data Documentation

free_list_type spot::free_list::fl [protected]
 

Tracks unused BDD variables.


The documentation for this class was generated from the following file:
Generated on Tue Jun 29 17:01:35 2004 for spot by doxygen 1.3.7