From d53ca34744938bdc15185dc681b5b4c239ffecea Mon Sep 17 00:00:00 2001 From: Radu Ioan Fericean Date: Thu, 1 Mar 2012 21:08:57 +0200 Subject: [PATCH] storage better error checking --- timespans/activationperiod.go | 1 + timespans/kyoto_storage.go | 36 +++++++++++++++++++--------------- timespans/redis_storage.go | 33 +++++++++++++++++++------------ timespans/test.kch | Bin 6299184 -> 6299896 bytes 4 files changed, 41 insertions(+), 29 deletions(-) diff --git a/timespans/activationperiod.go b/timespans/activationperiod.go index e85b18660..35cd62f4b 100644 --- a/timespans/activationperiod.go +++ b/timespans/activationperiod.go @@ -28,6 +28,7 @@ The struture that is saved to storage. type ActivationPeriod struct { ActivationTime time.Time Intervals []*Interval + Moaca string } /* diff --git a/timespans/kyoto_storage.go b/timespans/kyoto_storage.go index fe7dca3e7..e927b3d7f 100644 --- a/timespans/kyoto_storage.go +++ b/timespans/kyoto_storage.go @@ -82,10 +82,11 @@ func (ks *KyotoStorage) GetActivationPeriods(key string) (aps []*ActivationPerio defer ks.mux.Unlock() values, err := ks.db.Get([]byte(key)) - - ks.buf.Reset() - ks.buf.Write(values) - ks.dec.Decode(&aps) + if err == nil { + ks.buf.Reset() + ks.buf.Write(values) + err = ks.dec.Decode(&aps) + } return } @@ -103,10 +104,11 @@ func (ks *KyotoStorage) GetDestination(key string) (dest *Destination, err error defer ks.mux.Unlock() values, err := ks.db.Get([]byte(key)) - - ks.buf.Reset() - ks.buf.Write(values) - ks.dec.Decode(&dest) + if err == nil { + ks.buf.Reset() + ks.buf.Write(values) + err = ks.dec.Decode(&dest) + } return } @@ -124,10 +126,11 @@ func (ks *KyotoStorage) GetTariffPlan(key string) (tp *TariffPlan, err error) { defer ks.mux.Unlock() values, err := ks.db.Get([]byte(key)) - - ks.buf.Reset() - ks.buf.Write(values) - ks.dec.Decode(&tp) + if err == nil { + ks.buf.Reset() + ks.buf.Write(values) + err = ks.dec.Decode(&tp) + } return } @@ -145,9 +148,10 @@ func (ks *KyotoStorage) GetUserBudget(key string) (ub *UserBudget, err error) { defer ks.mux.Unlock() values, err := ks.db.Get([]byte(key)) - - ks.buf.Reset() - ks.buf.Write(values) - ks.dec.Decode(&ub) + if err == nil { + ks.buf.Reset() + ks.buf.Write(values) + ks.dec.Decode(&ub) + } return } diff --git a/timespans/redis_storage.go b/timespans/redis_storage.go index a05fc3e43..9b87c4d62 100644 --- a/timespans/redis_storage.go +++ b/timespans/redis_storage.go @@ -80,12 +80,13 @@ func (rs *RedisStorage) GetActivationPeriods(key string) (aps []*ActivationPerio //rs.db.Select(rs.dbNb) rs.mux.Lock() defer rs.mux.Unlock() - elem, err := rs.db.Get(key) - rs.buf.Reset() - rs.buf.Write(elem.Bytes()) + if err == nil { + rs.buf.Reset() + rs.buf.Write(elem.Bytes()) - rs.dec.Decode(&aps) + err = rs.dec.Decode(&aps) + } return } @@ -105,9 +106,11 @@ func (rs *RedisStorage) GetDestination(key string) (dest *Destination, err error defer rs.mux.Unlock() elem, err := rs.db.Get(key) - rs.buf.Reset() - rs.buf.Write(elem.Bytes()) - rs.dec.Decode(&dest) + if err == nil { + rs.buf.Reset() + rs.buf.Write(elem.Bytes()) + err = rs.dec.Decode(&dest) + } return } @@ -127,9 +130,11 @@ func (rs *RedisStorage) GetTariffPlan(key string) (tp *TariffPlan, err error) { defer rs.mux.Unlock() elem, err := rs.db.Get(key) - rs.buf.Reset() - rs.buf.Write(elem.Bytes()) - rs.dec.Decode(&tp) + if err == nil { + rs.buf.Reset() + rs.buf.Write(elem.Bytes()) + err = rs.dec.Decode(&tp) + } return } @@ -149,8 +154,10 @@ func (rs *RedisStorage) GetUserBudget(key string) (ub *UserBudget, err error) { defer rs.mux.Unlock() elem, err := rs.db.Get(key) - rs.buf.Reset() - rs.buf.Write(elem.Bytes()) - rs.dec.Decode(&ub) + if err == nil { + rs.buf.Reset() + rs.buf.Write(elem.Bytes()) + err = rs.dec.Decode(&ub) + } return } diff --git a/timespans/test.kch b/timespans/test.kch index ea76560ac3b0bad941babc4adca61059d5d1a06f..55fd81e2ce891e7348b9a83179927fe45d85f799 100644 GIT binary patch delta 682 zcmajcH%~%Q6u|LUc+Y|*CM=qem{?G;poqPIy`tDVm%+qMqkaGx2&+#A7NcLl0SDsZ z;?826SzHawOzNK(iNu(Alixk(|qvZ75J-fd(B#C`JiNVMQ6rAFqvy>ZD?^<*yhs!XhH%gizeZgQ$5` z%hZ>@)_!*Voh5{PHyur%)S(^?XoLezXhsX1Xhj>^(E%4a(FHfU;Xx02(T9EvU=TwX z#t25?g%4vG#{?!ZgrVI3RT#1^)(gI(-l9|w==li>S( zX)0y@oSw3+hc*sA*o8K1zCZMND{E#Ze|Wr_O^Myug|o~mk!a0b5jpXeD`t);hhQ(sp?QVNIBkqT6p zp5v|u!${fV+Vfh zB7h)5*h3f*>?4X84iHBINu-d*Au`C~2*)@<4yVZD4ClDOC9ZId0*WZ%24&ph4i((v d0grgXGhR?d4fVlPyiU5-vG((w_qelB_yowQ$c+F1