diff options
Diffstat (limited to 'internal/state/state.go')
| -rw-r--r-- | internal/state/state.go | 18 |
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) } |
