fsm

package module
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 13, 2020 License: Apache-2.0 Imports: 6 Imported by: 1

README

fsm

Documentation

Index

Constants

View Source
const (
	UnknownEvent = iota

	CustomerEvent = 10000
)

Variables

View Source
var NoTransitionError = errors.New("No Transition ")

Functions

func IsNoTransition

func IsNoTransition(err error) bool

Types

type Action

type Action func(interface{}) (State, error)

type DefaultFSM

type DefaultFSM struct {
	SimpleFSM
	// contains filtered or unexported fields
}

func New

func New(opts ...Opt) *DefaultFSM

func (*DefaultFSM) Close

func (f *DefaultFSM) Close() error

func (*DefaultFSM) SendEvent

func (f *DefaultFSM) SendEvent(event Event, param interface{}) error

func (*DefaultFSM) Start

func (f *DefaultFSM) Start() error

type DefaultListener

type DefaultListener struct{ Silent bool }

func (*DefaultListener) EventNotAccepted

func (l *DefaultListener) EventNotAccepted(event Event)

func (*DefaultListener) FSMError

func (l *DefaultListener) FSMError(fsm FSM, err error)

func (*DefaultListener) FSMStarted

func (l *DefaultListener) FSMStarted(fsm FSM)

func (*DefaultListener) FSMStopped

func (l *DefaultListener) FSMStopped(fsm FSM)

func (*DefaultListener) StateChanged

func (l *DefaultListener) StateChanged(from, to State)

func (*DefaultListener) StateEntered

func (l *DefaultListener) StateEntered(state State)

func (*DefaultListener) StateExited

func (l *DefaultListener) StateExited(state State)

func (*DefaultListener) Transition

func (l *DefaultListener) Transition(action Action)

func (*DefaultListener) TransitionEnded

func (l *DefaultListener) TransitionEnded(action Action)

func (*DefaultListener) TransitionStarted

func (l *DefaultListener) TransitionStarted(action Action)

type Event

type Event = interface{}

type FSM

type FSM interface {
	Start() error

	Close() error

	SetListener(listener Listener)

	Initial(state State)

	Current() *State

	AddState(state State, event Event, action Action) error

	SendEvent(event Event, param interface{}) error
}

type FilePersister

type FilePersister struct {
	// contains filtered or unexported fields
}

func NewFilePersister

func NewFilePersister(path string) *FilePersister

func (*FilePersister) Restore

func (p *FilePersister) Restore(fsm FSM) error

func (*FilePersister) Save

func (p *FilePersister) Save(fsm FSM) error

type Listener

type Listener interface {
	StateChanged(from, to State)

	StateEntered(state State)

	StateExited(state State)

	EventNotAccepted(event Event)

	Transition(action Action)

	TransitionStarted(action Action)

	TransitionEnded(action Action)

	FSMStarted(fsm FSM)

	FSMStopped(fsm FSM)

	FSMError(fsm FSM, err error)
}

type Opt

type Opt func(f *DefaultFSM)

func SetEventBufferSize

func SetEventBufferSize(size int) Opt

type Persister

type Persister interface {
	Restore(FSM) error
	Save(FSM) error
}

type SimpleFSM

type SimpleFSM struct {
	// contains filtered or unexported fields
}

func NewSimpleFSM

func NewSimpleFSM() *SimpleFSM

func (*SimpleFSM) AddState

func (f *SimpleFSM) AddState(state State, event Event, action Action) error

func (*SimpleFSM) Close

func (f *SimpleFSM) Close() error

func (*SimpleFSM) Current

func (f *SimpleFSM) Current() *State

func (*SimpleFSM) Execute

func (f *SimpleFSM) Execute(event Event, param interface{}) error

func (*SimpleFSM) HandlerFsmEvent

func (f *SimpleFSM) HandlerFsmEvent(e fsmEvent)

func (*SimpleFSM) Initial

func (f *SimpleFSM) Initial(state State)

func (*SimpleFSM) SendEvent

func (f *SimpleFSM) SendEvent(event Event, param interface{}) error

func (*SimpleFSM) SetListener

func (f *SimpleFSM) SetListener(listener Listener)

func (*SimpleFSM) Start

func (f *SimpleFSM) Start() error

type State

type State = interface{}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL