fsm

package
v0.0.0-...-6ffc9e3 Latest Latest
Warning

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

Go to latest
Published: Oct 23, 2023 License: GPL-3.0 Imports: 0 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type FSM

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

func NewFSM

func NewFSM() *FSM

func (*FSM) AddEventTransitions

func (fsm *FSM) AddEventTransitions(event FSMEvent, srcs []IFSMState, dst IFSMState)

func (*FSM) AddStateTransitions

func (fsm *FSM) AddStateTransitions(std []StateTransitionDesc)

添加状态迁移关系到FSM

func (*FSM) CurrentState

func (fsm *FSM) CurrentState() IFSMState

func (*FSM) Event

func (this *FSM) Event(event FSMEvent, args ...interface{}) error

事件触发状态迁移

func (*FSM) Init

func (fsm *FSM) Init(current IFSMState)

初始化FSM

func (*FSM) SetDefaultState

func (fsm *FSM) SetDefaultState(state IFSMState)

设置默认的State

type FSMEvent

type FSMEvent string

type FSMState

type FSMState struct{}

func (*FSMState) CheckTransition

func (fsms *FSMState) CheckTransition(args ...interface{}) bool

状态转移检测

func (*FSMState) Enter

func (fsms *FSMState) Enter(args ...interface{}) error

进入状态

func (*FSMState) Leave

func (fsms *FSMState) Leave(args ...interface{}) error

退出状态

type IFSMState

type IFSMState interface {
	// 进入状态
	Enter(args ...interface{}) error
	// 退出状态
	Leave(args ...interface{}) error
	// 状态转移检测
	CheckTransition(args ...interface{}) bool
}

type StateTransitionDesc

type StateTransitionDesc struct {
	SrcState IFSMState //源状态
	Event    FSMEvent  //触发迁移的事件
	DstState IFSMState //目的状态
}

状态迁移描述

Jump to

Keyboard shortcuts

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