Public Member Functions | Protected Types | Protected Attributes

spot::saba_reachable_iterator_breadth_first Class Reference

An implementation of spot::saba_reachable_iterator that browses states breadth first. More...

#include <sabaalgos/sabareachiter.hh>

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

List of all members.

Public Member Functions

 saba_reachable_iterator_breadth_first (const saba *a)
virtual void add_state (const saba_state *s)
virtual const saba_statenext_state ()
 Called by run() to obtain the next state to process.
void run ()
 Iterate over all reachable states of a spot::saba.
virtual bool want_state (const saba_state *s) const
virtual void start ()
 Called by run() before starting its iteration.
virtual void end ()
 Called by run() once all states have been explored.
virtual void process_state (const saba_state *s, int n)
virtual void process_state_conjunction (const saba_state *in_s, int in, const saba_state_conjunction *sc, int sc_id, const saba_succ_iterator *si)
virtual void process_link (const saba_state *in_s, int in, const saba_state *out_s, int out, const saba_state_conjunction *sc, int sc_id, const saba_succ_iterator *si)

Protected Types

typedef Sgi::hash_map< const
saba_state *, int,
saba_state_ptr_hash,
saba_state_ptr_equal
seen_map

Protected Attributes

std::deque< const saba_state * > todo
 A queue of states yet to explore.
const sabaautomata_
 The spot::saba to explore.
seen_map seen
 States already seen.

Detailed Description

An implementation of spot::saba_reachable_iterator that browses states breadth first.


Member Typedef Documentation

typedef Sgi::hash_map<const saba_state*, int, saba_state_ptr_hash, saba_state_ptr_equal> spot::saba_reachable_iterator::seen_map [protected, inherited]

Constructor & Destructor Documentation

spot::saba_reachable_iterator_breadth_first::saba_reachable_iterator_breadth_first ( const saba a  ) 

Member Function Documentation

virtual void spot::saba_reachable_iterator_breadth_first::add_state ( const saba_state s  )  [virtual]
virtual void spot::saba_reachable_iterator::end (  )  [virtual, inherited]

Called by run() once all states have been explored.

virtual const saba_state* spot::saba_reachable_iterator_breadth_first::next_state (  )  [virtual]

Called by run() to obtain the next state to process.

Implements spot::saba_reachable_iterator.

virtual void spot::saba_reachable_iterator::process_link ( const saba_state in_s,
int  in,
const saba_state out_s,
int  out,
const saba_state_conjunction sc,
int  sc_id,
const saba_succ_iterator si 
) [virtual, inherited]

Called by run() to process a transition.

Parameters:
in_s The source state
in The source state number.
out_s The destination state
out The destination state number.
sc The spot::saba_state_conjunction positionned on the current conjunction.
sc_id An unique number for the this transition assigned to sc.
si The spot::saba_succ_iterator positionned on the current transition.

The in_s and out_s states are owned by the spot::saba_reachable_iterator instance and destroyed when the instance is destroyed.

virtual void spot::saba_reachable_iterator::process_state ( const saba_state s,
int  n 
) [virtual, inherited]

Called by run() to process a state.

Parameters:
s The current state.
n A unique number assigned to s.
virtual void spot::saba_reachable_iterator::process_state_conjunction ( const saba_state in_s,
int  in,
const saba_state_conjunction sc,
int  sc_id,
const saba_succ_iterator si 
) [virtual, inherited]

Called by run() to process a conjunction of states.

Parameters:
in_s The current state.
in An unique number assigned to in_s.
sc The spot::saba_state_conjunction positionned on the current conjunction.
sc_id An unique number for the this transition assigned to sc.
si The spot::saba_succ_iterator positionned on the current transition.
void spot::saba_reachable_iterator::run (  )  [inherited]

Iterate over all reachable states of a spot::saba.

This is a template method that will call add_state(), next_state(), start(), end(), process_state(), process_state_conjunction() and process_link(), while it iterates over states.

virtual void spot::saba_reachable_iterator::start (  )  [virtual, inherited]

Called by run() before starting its iteration.

virtual bool spot::saba_reachable_iterator::want_state ( const saba_state s  )  const [virtual, inherited]

Called by add_state or next_states implementations to filter states. Default implementation always return true.


Member Data Documentation

const saba* spot::saba_reachable_iterator::automata_ [protected, inherited]

The spot::saba to explore.

States already seen.

A queue of states yet to explore.


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:54 for spot by doxygen 1.7.1