package app import ( "sync" "code.tnxs.net/taxnexus/lib/api/ledger/ledger_models" ) var glBalanceCache = glBalanceCacheType{ obj: map[string]map[string]*ledger_models.GlBalance{}, } type glBalanceCacheType struct { sync.RWMutex obj map[string]map[string]*ledger_models.GlBalance } func (m *glBalanceCacheType) get(periodID, glAccountID string) (*ledger_models.GlBalance, bool) { m.RLock() defer m.RUnlock() r, ok := m.obj[periodID][glAccountID] return r, ok } func (m *glBalanceCacheType) put(periodID, glAccountID string, glBalance *ledger_models.GlBalance) { m.init(periodID) m.Lock() defer m.Unlock() m.obj[periodID][glAccountID] = glBalance } func (m *glBalanceCacheType) init(periodID string) { m.RLock() defer m.RUnlock() _, ok := m.obj[periodID] if !ok { m.obj[periodID] = map[string]*ledger_models.GlBalance{} } }