FSM::Labeled::FiniteStateMachine< StateLabelType, EdgeLabelType > Class Template Reference

#include <fsm.h>

Inheritance diagram for FSM::Labeled::FiniteStateMachine< StateLabelType, EdgeLabelType >:
Collaboration diagram for FSM::Labeled::FiniteStateMachine< StateLabelType, EdgeLabelType >:

List of all members.

Public Types

typedef map< State
< StateLabelType,
EdgeLabelType > *, SetOfStates
< StateLabelType,
EdgeLabelType > * > 
EquivalenceMap

Public Member Functions

 FiniteStateMachine ()
 ~FiniteStateMachine ()
void addState (State< StateLabelType, EdgeLabelType > *s)
Edge< StateLabelType,
EdgeLabelType > * 
addEdge (State< StateLabelType, EdgeLabelType > *src, EdgeLabelType lbl, State< StateLabelType, EdgeLabelType > *dst)
void setInitialState (State< StateLabelType, EdgeLabelType > *s)
State< StateLabelType,
EdgeLabelType > * 
getInitialState ()
State< StateLabelType,
EdgeLabelType > * 
getStateLabeled (const StateLabelType &s)
Abstract::SetOfStatesreachableStates (void)
SetOfStates< StateLabelType,
EdgeLabelType > * 
getStates (void)
SetOfEdges< StateLabelType,
EdgeLabelType > * 
getEdges (void)
FiniteStateMachine
< StateLabelType,
EdgeLabelType > * 
determinizeEdgeLabels (void)
FiniteStateMachine
< StateLabelType,
EdgeLabelType > * 
minimizeEdgeLabels (void)

Private Member Functions

void insertOutgoingLabels (State< StateLabelType, EdgeLabelType > *s, set< EdgeLabelType > &labels)
bool edgesEquivalent (EquivalenceMap &m, State< StateLabelType, EdgeLabelType > *s1, State< StateLabelType, EdgeLabelType > *s2)
void mapStates (EquivalenceMap &m, SetOfStates< StateLabelType, EdgeLabelType > *sos)

Private Attributes

SetOfStates< StateLabelType,
EdgeLabelType > * 
states
SetOfEdges< StateLabelType,
EdgeLabelType > * 
edges
State< StateLabelType,
EdgeLabelType > * 
initialState

template<typename StateLabelType, typename EdgeLabelType>
class FSM::Labeled::FiniteStateMachine< StateLabelType, EdgeLabelType >


Member Typedef Documentation

template<typename StateLabelType, typename EdgeLabelType>
typedef map< State<StateLabelType,EdgeLabelType>*, SetOfStates<StateLabelType,EdgeLabelType>*> FSM::Labeled::FiniteStateMachine< StateLabelType, EdgeLabelType >::EquivalenceMap

Constructor & Destructor Documentation

template<typename StateLabelType, typename EdgeLabelType>
FSM::Labeled::FiniteStateMachine< StateLabelType, EdgeLabelType >::FiniteStateMachine (  )  [inline]
template<typename StateLabelType, typename EdgeLabelType>
FSM::Labeled::FiniteStateMachine< StateLabelType, EdgeLabelType >::~FiniteStateMachine (  )  [inline]

Member Function Documentation

template<typename StateLabelType, typename EdgeLabelType>
Edge<StateLabelType,EdgeLabelType>* FSM::Labeled::FiniteStateMachine< StateLabelType, EdgeLabelType >::addEdge ( State< StateLabelType, EdgeLabelType > *  src,
EdgeLabelType  lbl,
State< StateLabelType, EdgeLabelType > *  dst 
) [inline]
template<typename StateLabelType, typename EdgeLabelType>
FiniteStateMachine<StateLabelType,EdgeLabelType>* FSM::Labeled::FiniteStateMachine< StateLabelType, EdgeLabelType >::determinizeEdgeLabels ( void   )  [inline]
template<typename StateLabelType, typename EdgeLabelType>
bool FSM::Labeled::FiniteStateMachine< StateLabelType, EdgeLabelType >::edgesEquivalent ( EquivalenceMap m,
State< StateLabelType, EdgeLabelType > *  s1,
State< StateLabelType, EdgeLabelType > *  s2 
) [inline, private]
template<typename StateLabelType, typename EdgeLabelType>
SetOfEdges<StateLabelType,EdgeLabelType>* FSM::Labeled::FiniteStateMachine< StateLabelType, EdgeLabelType >::getEdges ( void   )  [inline]
template<typename StateLabelType, typename EdgeLabelType>
State<StateLabelType,EdgeLabelType>* FSM::Labeled::FiniteStateMachine< StateLabelType, EdgeLabelType >::getInitialState (  )  [inline, virtual]
template<typename StateLabelType, typename EdgeLabelType>
State<StateLabelType,EdgeLabelType>* FSM::Labeled::FiniteStateMachine< StateLabelType, EdgeLabelType >::getStateLabeled ( const StateLabelType &  s  )  [inline]
template<typename StateLabelType, typename EdgeLabelType>
SetOfStates<StateLabelType,EdgeLabelType>* FSM::Labeled::FiniteStateMachine< StateLabelType, EdgeLabelType >::getStates ( void   )  [inline]
template<typename StateLabelType, typename EdgeLabelType>
void FSM::Labeled::FiniteStateMachine< StateLabelType, EdgeLabelType >::insertOutgoingLabels ( State< StateLabelType, EdgeLabelType > *  s,
set< EdgeLabelType > &  labels 
) [inline, private]
template<typename StateLabelType, typename EdgeLabelType>
void FSM::Labeled::FiniteStateMachine< StateLabelType, EdgeLabelType >::mapStates ( EquivalenceMap m,
SetOfStates< StateLabelType, EdgeLabelType > *  sos 
) [inline, private]
template<typename StateLabelType, typename EdgeLabelType>
FiniteStateMachine<StateLabelType,EdgeLabelType>* FSM::Labeled::FiniteStateMachine< StateLabelType, EdgeLabelType >::minimizeEdgeLabels ( void   )  [inline]
template<typename StateLabelType, typename EdgeLabelType>
Abstract::SetOfStates* FSM::Labeled::FiniteStateMachine< StateLabelType, EdgeLabelType >::reachableStates ( void   )  [inline]

Member Data Documentation

template<typename StateLabelType, typename EdgeLabelType>
SetOfEdges<StateLabelType,EdgeLabelType>* FSM::Labeled::FiniteStateMachine< StateLabelType, EdgeLabelType >::edges [private]
template<typename StateLabelType, typename EdgeLabelType>
State<StateLabelType,EdgeLabelType>* FSM::Labeled::FiniteStateMachine< StateLabelType, EdgeLabelType >::initialState [private]
template<typename StateLabelType, typename EdgeLabelType>
SetOfStates<StateLabelType,EdgeLabelType>* FSM::Labeled::FiniteStateMachine< StateLabelType, EdgeLabelType >::states [private]

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