Slide 14
Slide 14 text
IFͱ͔
• ςΩτʹΦϨΦϨDSL͔ΒδΣωͬͯΔ
func GetCandidate(ctx context.Context, key string) ([]*data.Candidate, bool) {
ldb, ok := levelDBFromContext(ctx, candidateDBKey)
if !ok {
panic("no candidate db in context")
}
res, ok, _ := ldb.getCandidate(key)
return res, ok
}
func (ldb *LevelDB) getCandidate(key string) ([]*data.Candidate, bool, bool) {
cmd := NewDBGetCmd(key, data.UnmarshalCandidates, int64(ldb.dbConf.Options.CacheExpire))
ldb.get <- cmd
r := <-cmd.result
if !r.ok {
return nil, false, false
}
return r.val.([]*data.Candidate), r.ok, r.hit
}