Documentation
¶
Index ¶
- Constants
- func RenderPlantUML(w io.Writer, stateMachine FSM) error
- type Action
- type Dispatcher
- type Event
- type FSM
- type ImmediateFSM
- type LogEntry
- type Logger
- func (l *Logger) Fprint(w io.Writer) error
- func (l *Logger) OnEntry(state State, fsmData interface{})
- func (l *Logger) OnExit(state State, fsmData interface{})
- func (l *Logger) OnRejectedEvent(ev Event, state State, fsmData interface{})
- func (l *Logger) OnTransition(ev Event, sourceState, targetState State, fsmData interface{})
- type Observable
- type State
- type StateBuilder
- type StateCounter
- func (s *StateCounter) OnEntry(state State, fsmData interface{})
- func (s *StateCounter) OnExit(state State, fsmData interface{})
- func (s *StateCounter) OnRejectedEvent(ev Event, state State, fsmData interface{})
- func (s *StateCounter) OnTransition(ev Event, sourceState, targetState State, fsmData interface{})
- type StateMachineBuilder
- type TraceEntry
- type Tracer
- type Transition
- type TransitionBuilder
- type TransitionEffect
- type TransitionGuard
- type TriggerType
- type Visitable
- type Visitor
Constants ¶
View Source
const ( InitialStateName = "initial" FinalStateName = "FinalState" )
View Source
const InitialFinalStateSymbol = "[*]"
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Action ¶
type Action func(state State, fsmData interface{}, dispatcher Dispatcher)
type Dispatcher ¶
type Dispatcher interface {
Dispatch(Event)
}
type FSM ¶
type FSM interface {
Dispatcher
Visitable
Observable
CurrentState() State
Start()
Stop()
GetData() interface{}
GetDispatcher() Dispatcher
}
type ImmediateFSM ¶
type ImmediateFSM interface {
FSM
Tick() // Manually check for and progress state changes that are not event driven
}
type Logger ¶
func NewFSMLogger ¶
func NewFSMLogger() *Logger
func (*Logger) OnRejectedEvent ¶
func (*Logger) OnTransition ¶
type Observable ¶
type Observable interface {
AddTracer(Tracer)
}
type State ¶
type State interface {
Name() string
Transitions() []Transition
StateLabels() []string
EntryLabels() []string
ExitLabels() []string
// contains filtered or unexported methods
}
type StateBuilder ¶
type StateBuilder interface {
AddTransition(target StateBuilder, labels ...string) TransitionBuilder
OnEntry(action Action, labels ...string) StateBuilder
OnExit(action Action, labels ...string) StateBuilder
// contains filtered or unexported methods
}
func NewStateBuilder ¶
func NewStateBuilder(name string, labels ...string) StateBuilder
type StateCounter ¶
func NewStateCounter ¶
func NewStateCounter() *StateCounter
func (*StateCounter) OnEntry ¶
func (s *StateCounter) OnEntry(state State, fsmData interface{})
func (*StateCounter) OnExit ¶
func (s *StateCounter) OnExit(state State, fsmData interface{})
func (*StateCounter) OnRejectedEvent ¶
func (s *StateCounter) OnRejectedEvent(ev Event, state State, fsmData interface{})
func (*StateCounter) OnTransition ¶
func (s *StateCounter) OnTransition(ev Event, sourceState, targetState State, fsmData interface{})
type StateMachineBuilder ¶
type StateMachineBuilder interface {
AddState(StateBuilder) StateMachineBuilder
NewState(name string, labels ...string) StateBuilder
AddTracer(Tracer) StateMachineBuilder
AddFinalState() StateBuilder
GetInitialState() StateBuilder
GetFinalState() StateBuilder
BuildImmediateFSM() (ImmediateFSM, error)
BuildThreadedFSM() (FSM, error)
SetData(data interface{}) StateMachineBuilder
}
func NewFSMBuilder ¶
func NewFSMBuilder() StateMachineBuilder
type TraceEntry ¶
type Transition ¶
type TransitionBuilder ¶
type TransitionBuilder interface {
SetEventTrigger(eventName string, labels ...string) TransitionBuilder
SetTimedTrigger(delay time.Duration, labels ...string) TransitionBuilder
SetGuard(guard TransitionGuard, labels ...string) TransitionBuilder
SetEffect(efffect TransitionEffect, labels ...string) TransitionBuilder
Source() StateBuilder
Target() StateBuilder
TriggerType() TriggerType
// contains filtered or unexported methods
}
type TransitionEffect ¶
type TransitionEffect func(ev Event, fsmData interface{}, dispatcher Dispatcher)
type TransitionGuard ¶
type TransitionGuard func(fsmData, eventData interface{}) bool
type TriggerType ¶
type TriggerType uint8
const ( NoTrigger TriggerType = iota EventTrigger TimerTrigger )
type Visitor ¶
type Visitor interface {
VisitState(state State)
VisitTransition(transition Transition)
}
Source Files
¶
Click to show internal directories.
Click to hide internal directories.
