diff options
Diffstat (limited to 'internal/state/state.go')
| -rw-r--r-- | internal/state/state.go | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/internal/state/state.go b/internal/state/state.go new file mode 100644 index 00000000..61aae2cf --- /dev/null +++ b/internal/state/state.go @@ -0,0 +1,40 @@ +package state + +import ( + "time" +) + +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) + + // Close releases any resources held by Store. + Close() error +} + +// Backend provides access to the store +type Backend interface { + Save(state *State) error + Destroy(pid int) error + Load() ([]*State, error) + Len() (int, error) +} + +// State is the on-disk format for a fortified process's state information +type State struct { + // child process PID value + PID int + // command used to seal the app + Command []string + // capability enablements applied to child + Capability Enablements + + // resolved launcher path + Launcher string + // full argv whe launching + Argv []string + // process start time + Time time.Time +} |
