spot 2.3.3

- Main Page
- Related Pages
- Modules
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
Classes | Public Types | Public Member Functions | Public Attributes | List of all members
spot::state_ta_explicit Class Referencefinal
TA (Testing Automata) » TA representations

`#include <spot/ta/taexplicit.hh>`

Inheritance diagram for spot::state_ta_explicit:
Collaboration diagram for spot::state_ta_explicit:

## Classes
struct | transition
| Explicit transitions. More...

## Public Types
typedef std::list< transition * > | transitions

## Public Member Functions
| state_ta_explicit (const state *tgba_state, const bdd tgba_condition, bool is_initial_state=false, bool is_accepting_state=false, bool is_livelock_accepting_state=false, transitions *trans=nullptr)
virtual int | compare (const spot::state *other) const override
| Compares two states (that come from the same automaton). More...
virtual size_t | hash () const override
| Hash a state. More...
virtual state_ta_explicit * | clone () const override
| Duplicate a state. More...
virtual void | destroy () const override
| Release a state. More...
transitions * | get_transitions () const
transitions * | get_transitions (bdd condition) const
void | add_transition (transition *t, bool add_at_beginning=false)
const state * | get_tgba_state () const
const bdd | get_tgba_condition () const
bool | is_accepting_state () const
void | set_accepting_state (bool is_accepting_state)
bool | is_livelock_accepting_state () const
void | set_livelock_accepting_state (bool is_livelock_accepting_state)
bool | is_initial_state () const
void | set_initial_state (bool is_initial_state)
bool | is_hole_state () const
| Return true if the state has no successors. More...
void | delete_stuttering_and_hole_successors ()
| Remove stuttering transitions and transitions leading to states having no successors. More...
void | free_transitions ()

## Public Attributes
state_ta_explicit * | stuttering_reachable_livelock

## Detailed Description

states used by spot::ta_explicit.

## Member Function Documentation

virtual state_ta_explicit* spot::state_ta_explicit::clone | ( |  | ) | const
| override virtual

Duplicate a state.

Implements spot::state.

virtual int spot::state_ta_explicit::compare | ( | const spot::state * | other | ) | const
| override virtual

Compares two states (that come from the same automaton).

This method returns an integer less than, equal to, or greater than zero if this is found, respectively, to be less than, equal to, or greater than other according to some implicit total order.

This method should not be called to compare states from different automata.

See also
  spot::state_ptr_less_than

Implements spot::state.

void spot::state_ta_explicit::delete_stuttering_and_hole_successors | ( |  | ) |

Remove stuttering transitions and transitions leading to states having no successors.

virtual void spot::state_ta_explicit::destroy | ( |  | ) | const
| inline override virtual

Release a state.

Methods from the tgba or twa_succ_iterator always return a new state that you should deallocate with this function. Before Spot 0.7, you had to "delete" your state directly. Starting with Spot 0.7, you should update your code to use this function instead. destroy() usually call delete, except in subclasses that destroy() to allow better memory management (e.g., no memory allocation for explicit automata).

Reimplemented from spot::state.

virtual size_t spot::state_ta_explicit::hash | ( |  | ) | const
| override virtual

Hash a state.

This method returns an integer that can be used as a hash value for this state.

Note that the hash value is guaranteed to be unique for all equal states (in compare()'s sense) for only has long has one of these states exists. So it's OK to use a spot::state as a key in a `hash_map` because the mere use of the state as a key in the hash will ensure the state continues to exist.

However if you create the state, get its hash key, delete the state, recreate the same state, and get its hash key, you may obtain two different hash keys if the same state were not already used elsewhere. In practice this weird situation can occur only when the state is BDD-encoded, because BDD numbers (used to build the hash value) can be reused for other formulas. That probably doesn't matter, since the hash value is meant to be used in a `hash_map`, but it had to be noted.

Implements spot::state.

bool spot::state_ta_explicit::is_hole_state | ( |  | ) | const

Return true if the state has no successors.

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

- spot/ta/taexplicit.hh

Please direct any question, comment, or bug report to the Spot mailing list at spot@lrde.epita.fr.