xstate

package
v0.3.34 Latest Latest
Warning

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

Go to latest
Published: Aug 17, 2024 License: BSD-3-Clause-Clear Imports: 3 Imported by: 0

Documentation

Overview

简易状态机相关操作

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Xstate

type Xstate struct {
	Error error // 过程中出现的错误

	sync.RWMutex // 并发锁
	// contains filtered or unexported fields
}

状态机定义 此状态机模仿了 github.com/looplab/fsm 的实现方案

func NewXstate

func NewXstate(str string) *Xstate

根据字符串来创建状态机 所有的事件必须通过统一入口进行添加,不允许中途进行添加/修改 监听事件为后续进行添加的,不做强制要求 PS: - 回调部分使用go携程进行回调,所以可能会出现先后顺序不统一问题

str	待格式化的字符串
`str`所传输的数据格式如下:
close:关闭,open:开启 // 允许的状态列表,第一个为初始状态,使用:分割状态和状态描述
open:close->open     // 操作事件标识,如果写入了多个同名的事件运行时会运行第一个该名称时间
close:open->close    // 具体格式为: 事件名:允许状态->目标状态 (允许状态可以有多个)

func (*Xstate) Current

func (c *Xstate) Current() string

获取当前状态字段,如果为空则说明出现错误

func (*Xstate) CurrentName

func (c *Xstate) CurrentName() string

获取当前状态对应的备注,如果为空则说明出现错误

func (*Xstate) EmptyData

func (c *Xstate) EmptyData() *Xstate

清空所携带的参数信息

func (*Xstate) Event

func (c *Xstate) Event(e string) error

事件调用

e	调用事件标识

func (*Xstate) GetData

func (c *Xstate) GetData() []string

获取状态机附加的数据信息

func (*Xstate) HookEvent added in v0.3.10

func (c *Xstate) HookEvent(e string, f func(e string, dat []string)) *Xstate

事件监听,监听刚进入事件时的调用通知

e	待监听事件
f	监听回调

func (*Xstate) HookSwitch added in v0.3.10

func (c *Xstate) HookSwitch(f func(current, target string, dat []string)) *Xstate

链式切换开始的钩子监听

f	监听函数

func (*Xstate) RemoveData

func (c *Xstate) RemoveData(s string) *Xstate

移除所携带的参数信息

s	移除的参数信息

func (*Xstate) SetData

func (c *Xstate) SetData(s ...string) *Xstate

追加所携带的参数信息

s	追加的参数信息

func (*Xstate) StatusMap

func (c *Xstate) StatusMap() map[string]string

获取类型映射字段

Jump to

Keyboard shortcuts

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