Something went wrong on our end
Select Git revision
-
Volker Schukai authoredVolker Schukai authored
state.go 1014 B
package jobqueue
import (
"encoding/json"
"os"
)
// State repräsentiert den Zustand, den wir speichern wollen
type State struct {
// Jobs enthält alle Jobs, die wir speichern wollen
Jobs []JobSerializedState `json:"jobs"`
}
type StateManager interface {
LoadState() error
SaveState() error
}
// FileStateManager implementiert StateManager
type FileStateManager struct {
filePath string
state *State
}
// LoadState lädt den Zustand aus der Datei
func (f *FileStateManager) LoadState() error {
file, err := os.Open(f.filePath)
if err != nil {
return err
}
defer file.Close()
decoder := json.NewDecoder(file)
if err := decoder.Decode(&f.state); err != nil {
return err
}
return nil
}
// SaveState speichert den Zustand in der Datei
func (f *FileStateManager) SaveState() error {
file, err := os.Create(f.filePath)
if err != nil {
return err
}
defer file.Close()
encoder := json.NewEncoder(file)
if err := encoder.Encode(f.state); err != nil {
return err
}
return nil
}