Files
cgrates/engine/caches.go

45 lines
1.3 KiB
Go

/*
Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments
Copyright (C) ITsysCOM GmbH
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>
*/
package engine
import (
"sync"
"github.com/cgrates/cgrates/cache"
"github.com/cgrates/cgrates/config"
)
func NewCacheS(cfg *config.CGRConfig, dm *DataManager) (c *CacheS) {
c = &CacheS{cfg: cfg, dm: dm,
cItems: make(map[string]chan struct{})}
for k := range cfg.CacheCfg() {
c.cItems[k] = make(chan struct{})
}
cache.NewCache(cfg.CacheCfg()) // init cache
return
}
// CacheS deals with cache preload and other cache related tasks
type CacheS struct {
cfg *config.CGRConfig
dm *DataManager
cItems map[string]chan struct{} // signal receiving of the
lMux sync.RWMutex
}