storage better error checking

This commit is contained in:
Radu Ioan Fericean
2012-03-01 21:08:57 +02:00
parent 8f6dd0af5a
commit d53ca34744
4 changed files with 41 additions and 29 deletions

View File

@@ -28,6 +28,7 @@ The struture that is saved to storage.
type ActivationPeriod struct {
ActivationTime time.Time
Intervals []*Interval
Moaca string
}
/*

View File

@@ -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
}

View File

@@ -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
}

Binary file not shown.