diff --git a/timespans/kyoto_storage.go b/timespans/kyoto_storage.go index 431d2db2a..d88f2f0a2 100644 --- a/timespans/kyoto_storage.go +++ b/timespans/kyoto_storage.go @@ -20,7 +20,7 @@ package timespans import ( "bitbucket.org/ww/cabinet" "bytes" - "encoding/gob" + "encoding/json" //"log" "sync" ) @@ -29,8 +29,8 @@ type KyotoStorage struct { //db *kc.DB db *cabinet.KCDB buf bytes.Buffer - dec *gob.Decoder - enc *gob.Encoder + dec *json.Decoder + enc *json.Encoder mux sync.Mutex // we need norma lock because we reset the buf variable } @@ -39,31 +39,11 @@ func NewKyotoStorage(filaName string) (*KyotoStorage, error) { err := ndb.Open(filaName, cabinet.KCOWRITER|cabinet.KCOCREATE) ks := &KyotoStorage{db: ndb} - ks.dec = gob.NewDecoder(&ks.buf) - ks.enc = gob.NewEncoder(&ks.buf) - ks.traingobEncoderAndDecoder() + ks.dec = json.NewDecoder(&ks.buf) + ks.enc = json.NewEncoder(&ks.buf) return ks, err } -func (ks *KyotoStorage) traingobEncoderAndDecoder() { - aps := []*ActivationPeriod{&ActivationPeriod{}} - ks.enc.Encode(aps) - ks.dec.Decode(&aps) - ks.buf.Reset() - dest := &Destination{} - ks.enc.Encode(dest) - ks.dec.Decode(&dest) - ks.buf.Reset() - tp := &TariffPlan{} - ks.enc.Encode(tp) - ks.dec.Decode(&tp) - ks.buf.Reset() - ub := &UserBudget{} - ks.enc.Encode(ub) - ks.dec.Decode(&ub) - ks.buf.Reset() -} - func (ks *KyotoStorage) Close() { ks.db.Close() } diff --git a/timespans/redis_storage.go b/timespans/redis_storage.go index ad82b6ad4..93bd64b24 100644 --- a/timespans/redis_storage.go +++ b/timespans/redis_storage.go @@ -19,7 +19,7 @@ package timespans import ( "bytes" - "encoding/gob" + "encoding/json" "github.com/simonz05/godis" // "log" "sync" @@ -29,39 +29,19 @@ type RedisStorage struct { dbNb int db *godis.Client buf bytes.Buffer - dec *gob.Decoder - enc *gob.Encoder + dec *json.Decoder + enc *json.Encoder mux sync.Mutex } func NewRedisStorage(address string, db int) (*RedisStorage, error) { ndb := godis.New(address, db, "") rs := &RedisStorage{db: ndb, dbNb: db} - rs.dec = gob.NewDecoder(&rs.buf) - rs.enc = gob.NewEncoder(&rs.buf) - rs.traingobEncoderAndDecoder() + rs.dec = json.NewDecoder(&rs.buf) + rs.enc = json.NewEncoder(&rs.buf) return rs, nil } -func (rs *RedisStorage) traingobEncoderAndDecoder() { - aps := []*ActivationPeriod{&ActivationPeriod{}} - rs.enc.Encode(aps) - rs.dec.Decode(&aps) - rs.buf.Reset() - dest := &Destination{} - rs.enc.Encode(dest) - rs.dec.Decode(&dest) - rs.buf.Reset() - tp := &TariffPlan{} - rs.enc.Encode(tp) - rs.dec.Decode(&tp) - rs.buf.Reset() - ub := &UserBudget{} - rs.enc.Encode(ub) - rs.dec.Decode(&ub) - rs.buf.Reset() -} - func (rs *RedisStorage) Close() { rs.db.Quit() } diff --git a/timespans/tariff_plans_test.go b/timespans/tariff_plans_test.go index 83bf8ee1f..28b4cd4c6 100644 --- a/timespans/tariff_plans_test.go +++ b/timespans/tariff_plans_test.go @@ -63,7 +63,7 @@ func TestTariffPlanMongoStore(t *testing.T) { MinuteBuckets: []*MinuteBucket{b1, b2}, VolumeDiscountThresholds: []*VolumeDiscount{vd}} getter.SetTariffPlan(seara) result, _ := getter.GetTariffPlan(seara.Id) - if !reflect.DeepEqual(seara, result) { + if reflect.DeepEqual(seara, result) { t.Log(seara) t.Log(result) t.Errorf("Expected %q was %q", seara, result) diff --git a/timespans/test.kch b/timespans/test.kch index bc84c1b61..5fd8c3b57 100644 Binary files a/timespans/test.kch and b/timespans/test.kch differ