aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/state/state.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/state/state.go')
-rw-r--r--internal/state/state.go18
1 files changed, 12 insertions, 6 deletions
diff --git a/internal/state/state.go b/internal/state/state.go
index cf345aad..ccc44b11 100644
--- a/internal/state/state.go
+++ b/internal/state/state.go
@@ -6,21 +6,27 @@ import (
"git.ophivana.moe/security/fortify/fst"
)
+type Entries map[fst.ID]*State
+
type Store interface {
// Do calls f exactly once and ensures store exclusivity until f returns.
// Returns whether f is called and any errors during the locking process.
- // Backend provided to f becomes invalid as soon as f returns.
- Do(f func(b Backend)) (bool, error)
+ // Cursor provided to f becomes invalid as soon as f returns.
+ Do(aid int, f func(c Cursor)) (ok bool, err error)
+
+ // List queries the store and returns a list of aids known to the store.
+ // Note that some or all returned aids might not have any active apps.
+ List() (aids []int, err error)
// Close releases any resources held by Store.
Close() error
}
-// Backend provides access to the store
-type Backend interface {
+// Cursor provides access to the store
+type Cursor interface {
Save(state *State) error
- Destroy(pid int) error
- Load() ([]*State, error)
+ Destroy(id fst.ID) error
+ Load() (Entries, error)
Len() (int, error)
}