This commit is contained in:
matst80
2024-11-08 08:37:12 +01:00
parent ae421674d2
commit 4cc41bcec6
9 changed files with 568 additions and 44 deletions

View File

@@ -1,7 +1,6 @@
package main
import (
"encoding/gob"
"encoding/json"
"errors"
"fmt"
@@ -25,7 +24,7 @@ func NewDiskStorage(stateFile string) (*DiskStorage, error) {
return ret, err
}
func saveMessages(messages []Message, id string) error {
func saveMessages(messages []StorableMessage, id string) error {
log.Printf("%d messages to save for %s", len(messages), id)
if len(messages) == 0 {
return nil
@@ -38,17 +37,19 @@ func saveMessages(messages []Message, id string) error {
return err
}
defer file.Close()
// z := gzip.NewWriter(file)
// defer z.Close()
enc := gob.NewEncoder(file)
for _, m := range messages {
err = enc.Encode(m)
b, err := m.GetBytes()
if err != nil {
return err
}
file.Write(b)
}
return err
}
func getCartPath(id string) string {
return fmt.Sprintf("data/%s.gob", id)
return fmt.Sprintf("data/%s.prot", id)
}
func loadMessages(grain Grain, id string) error {
@@ -62,21 +63,17 @@ func loadMessages(grain Grain, id string) error {
return err
}
defer file.Close()
// z, err := gzip.NewReader(file)
// if err != nil {
// return err
// }
// defer z.Close()
var reply CartGrain
decoder := gob.NewDecoder(file)
for err == nil {
var message Message
err = decoder.Decode(&message)
if err != nil {
grain.HandleMessage(&message, true, &reply)
msg := &Message{}
err = msg.FromReader(file, msg)
if err == nil {
grain.HandleMessage(msg, true, &reply)
}
}
if err.Error() == "EOF" {
return nil
}