33#ifndef TTA_FU_FINITE_STATE_AUTOMATON_HH
34#define TTA_FU_FINITE_STATE_AUTOMATON_HH
45class ResourceVectorSet;
65 bool lazyBuilding =
true);
71 const std::string operationName);
99 typedef std::map<FSAStateIndex, CollisionMatrix*>
103 typedef std::map<CollisionMatrix, FSAStateIndex>
virtual FSAStateIndex destinationState(FSAStateIndex source, FSAStateTransitionIndex transition)
StateCollisionMatrixIndex stateCollisionMatrices_
The collision matrices of each state.
virtual bool isLegalTransition(FSAStateIndex source, FSAStateTransitionIndex transition)
std::map< CollisionMatrix, FSAStateIndex > CollisionMatrixStateIndex
Index for finding the state for a collision matrix.
virtual ~FUFiniteStateAutomaton()
std::map< FSAStateIndex, CollisionMatrix * > StateCollisionMatrixIndex
Index for collision matrices of states (key is the state index).
FiniteStateAutomaton::FSAStateIndex resolveState(FiniteStateAutomaton::FSAStateIndex source, FiniteStateAutomaton::FSAStateTransitionIndex transition)
FSAStateTransitionIndex OperationID
FSAStateIndex joinState(FSAStateIndexSet sourceStates)
CollisionMatrixStateIndex collisionMatrixStates_
An index for quickly finding the state of a collision matrix.
virtual std::string stateName(FSAStateIndex state) const
FSAStateTransitionIndex nopTransition_
The number of the NOP transition.
bool conflictsWith(OperationID operation) const
Inline functions for fast access in the compiled simulator.
FUCollisionMatrixIndex operationCollisionMatrices_
Collision matrices of operations are stored here.
CollisionMatrix & operationCollisionMatrix(const std::string operationName)
void addCollisionMatrixForState(FSAStateIndex state, CollisionMatrix *matrix)
void issueOperation(OperationID operation)
std::set< FSAStateIndex > FSAStateIndexSet
Type for a set of state indices.
int FSAStateIndex
Type used for indexing the states.
int FSAStateTransitionIndex
Type used for indexing the transitions.