Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
  • v1.23.2
  • v1.23.1
  • v1.23.0
  • v1.22.0
  • v1.21.1
  • v1.21.0
  • v1.20.3
  • v1.20.2
  • v1.20.1
  • v1.20.0
  • v1.19.4
  • v1.19.3
  • v1.19.2
  • v1.19.1
  • v1.19.0
  • v1.18.2
  • v1.18.1
  • v1.18.0
  • v1.17.0
  • v1.16.1
21 results

state.go

Blame
  • 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
    }