Documentation ¶
Overview ¶
简易状态机相关操作
Index ¶
- type Xstate
- func (c *Xstate) Current() string
- func (c *Xstate) CurrentName() string
- func (c *Xstate) EmptyData() *Xstate
- func (c *Xstate) Event(e string) error
- func (c *Xstate) GetData() []string
- func (c *Xstate) HookEvent(e string, f func(e string, dat []string)) *Xstate
- func (c *Xstate) HookSwitch(f func(current, target string, dat []string)) *Xstate
- func (c *Xstate) RemoveData(s string) *Xstate
- func (c *Xstate) SetData(s ...string) *Xstate
- func (c *Xstate) StatusMap() map[string]string
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 ¶
根据字符串来创建状态机 所有的事件必须通过统一入口进行添加,不允许中途进行添加/修改 监听事件为后续进行添加的,不做强制要求 PS: - 回调部分使用go携程进行回调,所以可能会出现先后顺序不统一问题
str 待格式化的字符串 `str`所传输的数据格式如下: close:关闭,open:开启 // 允许的状态列表,第一个为初始状态,使用:分割状态和状态描述 open:close->open // 操作事件标识,如果写入了多个同名的事件运行时会运行第一个该名称时间 close:open->close // 具体格式为: 事件名:允许状态->目标状态 (允许状态可以有多个)
Click to show internal directories.
Click to hide internal directories.