protobuf
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user