package main import ( "encoding/gob" "time" ) func init() { gob.Register(map[uint64]int64{}) } type DiskStorage struct { stateFile string lastSave int64 LastSaves map[uint64]int64 } func NewDiskStorage(stateFile string) (*DiskStorage, error) { ret := &DiskStorage{ stateFile: stateFile, LastSaves: make(map[uint64]int64), } //err := ret.loadState() return ret, nil } // func saveMessages(_ interface{}, _ CartId) error { // // No-op: legacy event log persistence removed in oneof refactor. // return nil // } // func getCartPath(id string) string { // return fmt.Sprintf("data/%s.prot", id) // } // func loadMessages(_ Grain, _ CartId) error { // // No-op: legacy replay removed in oneof refactor. // return nil // } // func (s *DiskStorage) saveState() error { // tmpFile := s.stateFile + "_tmp" // file, err := os.Create(tmpFile) // if err != nil { // return err // } // defer file.Close() // err = gob.NewEncoder(file).Encode(s.LastSaves) // if err != nil { // return err // } // os.Remove(s.stateFile + ".bak") // os.Rename(s.stateFile, s.stateFile+".bak") // return os.Rename(tmpFile, s.stateFile) // } // func (s *DiskStorage) loadState() error { // file, err := os.Open(s.stateFile) // if err != nil { // return err // } // defer file.Close() // return gob.NewDecoder(file).Decode(&s.LastSaves) // } func (s *DiskStorage) Store(id CartId, _ *CartGrain) error { // With the removal of the legacy message log, we only update the timestamp. ts := time.Now().Unix() s.LastSaves[uint64(id)] = ts s.lastSave = ts return nil }