Public Member Functions | Static Public Member Functions | Protected Attributes | Static Protected Attributes | Private Types | Private Member Functions | Private Attributes

spot::bdd_allocator Class Reference
[Miscellaneous helper algorithms]

Manage ranges of variables. More...

#include <misc/bddalloc.hh>

Inheritance diagram for spot::bdd_allocator:
Inheritance graph
[legend]
Collaboration diagram for spot::bdd_allocator:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 bdd_allocator ()
 Default constructor.
int allocate_variables (int n)
 Allocate n BDD variables.
void release_variables (int base, int n)
 Release n BDD variables starting at base.

Static Public Member Functions

static void initialize ()
 Initialize the BDD library.

Protected Attributes

int lvarnum
 number of variables in use in this allocator.

Static Protected Attributes

static bool initialized
 Whether the BDD library has been initialized.

Private Types

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

Private Member Functions

void extvarnum (int more)
 Require more variables.
virtual int extend (int n)
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.
void remove (free_list_type::iterator i, int base, int n)
 Remove n consecutive entries from the list, starting at base.
int free_count () const
 Return the number of free integers on the list.

Private Attributes

free_list_type fl
 Tracks unused BDD variables.

Detailed Description

Manage ranges of variables.


Member Typedef Documentation

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

Such pairs describe second free integer starting at first.


Constructor & Destructor Documentation

spot::bdd_allocator::bdd_allocator (  ) 

Default constructor.


Member Function Documentation

int spot::bdd_allocator::allocate_variables ( int  n  ) 

Allocate n BDD variables.

std::ostream& spot::free_list::dump_free_list ( std::ostream &  os  )  const [inherited]

Dump the list to os for debugging.

virtual int spot::bdd_allocator::extend ( int  n  )  [private, 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.

Implements spot::free_list.

void spot::bdd_allocator::extvarnum ( int  more  )  [private]

Require more variables.

int spot::free_list::free_count (  )  const [inherited]

Return the number of free integers on the list.

static void spot::bdd_allocator::initialize (  )  [static]

Initialize the BDD library.

void spot::free_list::insert ( int  base,
int  n 
) [inherited]

Extend the list by inserting a new pos-lenght pair.

int spot::free_list::register_n ( int  n  )  [inherited]

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 
) [inherited]

Release n consecutive integers starting at base.

void spot::bdd_allocator::release_variables ( int  base,
int  n 
)

Release n BDD variables starting at base.

void spot::free_list::remove ( int  base,
int  n = 0 
) [inherited]

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, inherited]

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


Member Data Documentation

free_list_type spot::free_list::fl [protected, inherited]

Tracks unused BDD variables.

bool spot::bdd_allocator::initialized [static, protected]

Whether the BDD library has been initialized.

number of variables in use in this allocator.


The documentation for this class was generated from the following file:

Please comment this page and report errors about it on the RefDocComments page.
Generated on Tue Feb 1 2011 12:00:53 for spot by doxygen 1.7.1