Cache results
This commit is contained in:
parent
bd9a72920f
commit
5b795b1e93
16
model.go
16
model.go
@ -16,7 +16,8 @@ type GimeDB struct {
|
||||
path string
|
||||
filename, arch string
|
||||
|
||||
AllTypes []int
|
||||
AllTypes []int
|
||||
TypeCollections map[int]*TimeEntryCollection
|
||||
}
|
||||
|
||||
const (
|
||||
@ -49,10 +50,11 @@ func LoadDatabase(path, name, archName string) (*GimeDB, error) {
|
||||
path = path + "/"
|
||||
}
|
||||
gdb := GimeDB{
|
||||
path: path,
|
||||
filename: name,
|
||||
arch: archName,
|
||||
AllTypes: []int{TypeCurrent, TypeRecent, TypeArchive},
|
||||
path: path,
|
||||
filename: name,
|
||||
arch: archName,
|
||||
AllTypes: []int{TypeCurrent, TypeRecent, TypeArchive},
|
||||
TypeCollections: make(map[int]*TimeEntryCollection),
|
||||
}
|
||||
if err := gdb.initDatabase(); err != nil {
|
||||
fmt.Println(err.Error())
|
||||
@ -63,11 +65,15 @@ func LoadDatabase(path, name, archName string) (*GimeDB, error) {
|
||||
|
||||
// Load a TimeEntry collection from a database
|
||||
func (gdb *GimeDB) LoadTimeEntryCollection(tp int) *TimeEntryCollection {
|
||||
if v, ok := gdb.TypeCollections[tp]; ok {
|
||||
return v
|
||||
}
|
||||
ret := new(TimeEntryCollection)
|
||||
entries := gdb.dbGetAllTimeEntries(tp)
|
||||
for i := range entries {
|
||||
ret.Push(&entries[i])
|
||||
}
|
||||
gdb.TypeCollections[tp] = ret
|
||||
return ret
|
||||
}
|
||||
|
||||
|
@ -225,6 +225,7 @@ func (gdb *GimeDB) dbGetAllTimeEntries(tp int) []TimeEntry {
|
||||
ret = append(ret, *te)
|
||||
}
|
||||
}
|
||||
|
||||
return ret
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user