# 状态登记册 (StateRegister)

状态登记册（state-register）用于**在域内永久（持久）地维护某个状态值**。

- 状态值会被永久保存。
- 如果设置为自动发布，则值发生变化时会自动触发发布（事件推送）。
- 订阅者在开始订阅时会自动收到当前值。

该功能主要在[场景](../concept/scenario.md)中以如下模式使用：

- 用于在域内持久化任何值。
- 通过写入或读取状态登记册（state-write, state-read），可以在场景中利用状态值。
- 当向客户端发布某个值时，如果存在与发布 tag 同名的 state-register，则会自动更新其值。

---

[状态登记册(state-register)](../concept/state-register.md)是一个定义具有特定意义状态值的界面。

- 这个功能通常由[场景](../concept/scenario.md)中的[state-write](../task/state-write.md)、[state-read](../task/state-read.md)任务使用。

## 属性 (properties)

- 名称(name)
  - 指定状态的名称
  - 名称必须是唯一的
- 描述(description)
- 类型(type)
  - 可以输入任意文本，用于用户区分各个状态的目的
- TTL (Time To Live)
  - 可以以秒为单位定义状态值的有效时间。
  - 如果 TTL 值大于 0，则认为设置了 TTL。
  - 最后设置的状态值在 TTL 时间过后将失效
- 状态值(state)
  - 指当前该状态的值。
- 修改时间(wrote at)
  - 状态值最后修改的时间

## 操作

- 保存(save state-register)
  - 保存状态登记的修改。
- 删除(delete state-register)
  - 删除选定的状态登记。
