spot/src/tgba/succiterconcrete.hh
Alexandre Duret-Lutz 331738d644 * src/tgba/statebdd.hh (state_bdd::as_bdd): Add non-const variant.
* src/tgba/tgbabddtranslateproxy.cc,
src/tgba/tgbabddtranslateproxy.hh: New files.
* src/tgba/Makefile.am (libtgba_la_SOURCES): Add them.
2003-05-28 15:13:56 +00:00

43 lines
1.3 KiB
C++

#ifndef SPOT_TGBA_SUCCITERCONCRETE_HH
# define SPOT_TGBA_SUCCITERCONCRETE_HH
#include "statebdd.hh"
#include "succiter.hh"
#include "tgbabddcoredata.hh"
namespace spot
{
/// A concrete iterator over successors of a TGBA state.
class tgba_succ_iterator_concrete: public tgba_succ_iterator
{
public:
/// \brief Build a spot::tgba_succ_iterator_concrete.
///
/// \param successors The set of successors with ingoing conditions
/// and promises, represented as a BDD. The job of this iterator
/// will be to enumerate the satisfactions of that BDD and split
/// them into destination state, conditions, and promises.
/// \param d The core data of the automata. These contains
/// sets of variables useful to split a BDD.
tgba_succ_iterator_concrete(const tgba_bdd_core_data& d, bdd successors);
virtual ~tgba_succ_iterator_concrete();
// iteration
void first();
void next();
bool done();
// inspection
state_bdd* current_state();
bdd current_condition();
bdd current_promise();
private:
const tgba_bdd_core_data& data_; ///< Core data of the automata.
bdd succ_set_; ///< The set of successors.
bdd next_succ_set_; ///< Unexplored successors (including current_).
bdd current_; ///< Current successor.
};
}
#endif // SPOT_TGBA_SUCCITERCONCRETE_HH