# Daftar Keadaan (StateRegister)

Daftar keadaan (state-register) digunakan apabila anda ingin **menyimpan nilai keadaan tertentu secara kekal (permanen) dalam domain**.

- Nilai keadaan disimpan secara kekal.
- Jika ditetapkan untuk penerbitan automatik, sebarang perubahan nilai akan mencetuskan penerbitan (penghantaran acara) secara automatik.
- Pelanggan (subscriber) akan menerima nilai semasa secara automatik apabila mula melanggan.

Fungsi ini biasanya digunakan dalam [senario](../concept/scenario.md) dengan corak berikut:

- Digunakan untuk mengekalkan sebarang nilai dalam domain secara kekal.
- Anda boleh menggunakan nilai keadaan dalam senario dengan menulis atau membaca daftar keadaan (state-write, state-read).
- Apabila menerbitkan nilai kepada klien, jika terdapat daftar keadaan dengan nama yang sama seperti tag penerbitan, nilainya akan dikemas kini secara automatik.

---

[Daftar keadaan(state-register)](../concept/state-register.md) adalah skrin yang mentakrif nilai-nilai keadaan dengan makna tertentu.

- Fungsi ini biasanya digunakan oleh tugas [senario](../concept/scenario.md) seperti [state-write](../task/state-write.md), [state-read](../task/state-read.md).

## Sifat-sifat (properties)

- Nama (name)
  - Menentukan nama keadaan
  - Nama harus unik
- Deskripsi (description)
- Jenis (type)
  - Boleh memasukkan teks bebas, bertujuan untuk pengguna membezakan antara keadaan-keadaan
- TTL (Time To Live)
  - Boleh menentukan masa sah nilai keadaan dalam unit detik.
  - Jika nilai TTL lebih dari 0, maka dianggap telah menetapkan TTL.
  - Nilai keadaan yang terakhir ditetapkan akan tidak sah setelah masa TTL berlalu
- Nilai keadaan (state)
  - Maksudnya nilai semasa keadaan itu.
- Tarikh pengubahsuaian (wrote at)
  - Masa terakhir nilai keadaan diubah

## Operasi

- Simpan (save state-register)
  - Menyimpan perubahan dalam daftar keadaan.
- Padam (delete state-register)
  - Menghapus daftar keadaan yang dipilih.
