本文整理汇总了Golang中github.com/cgrates/cgrates/cache2go.Set函数的典型用法代码示例。如果您正苦于以下问题:Golang Set函数的具体用法?Golang Set怎么用?Golang Set使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Set函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: GetDerivedChargers
func (ms *MongoStorage) GetDerivedChargers(key string, skipCache bool, transactionID string) (dcs *utils.DerivedChargers, err error) {
if !skipCache {
if x, ok := cache2go.Get(utils.DERIVEDCHARGERS_PREFIX + key); ok {
if x != nil {
return x.(*utils.DerivedChargers), nil
}
return nil, utils.ErrNotFound
}
}
var kv struct {
Key string
Value *utils.DerivedChargers
}
session, col := ms.conn(colDcs)
defer session.Close()
err = col.Find(bson.M{"key": key}).One(&kv)
cCommit := cacheCommit(transactionID)
if err == nil {
dcs = kv.Value
} else {
cache2go.Set(utils.DERIVEDCHARGERS_PREFIX+key, nil, cCommit, transactionID)
return nil, utils.ErrNotFound
}
cache2go.Set(utils.DERIVEDCHARGERS_PREFIX+key, dcs, cCommit, transactionID)
return
}
开发者ID:eloycoto,项目名称:cgrates,代码行数:26,代码来源:storage_mongo_datadb.go
示例2: GetDestination
func (ms *MapStorage) GetDestination(key string, skipCache bool, transactionID string) (dest *Destination, err error) {
ms.mu.RLock()
defer ms.mu.RUnlock()
cCommit := cacheCommit(transactionID)
key = utils.DESTINATION_PREFIX + key
if !skipCache {
if x, ok := cache2go.Get(key); ok {
if x != nil {
return x.(*Destination), nil
}
return nil, utils.ErrNotFound
}
}
if values, ok := ms.dict[key]; ok {
b := bytes.NewBuffer(values)
r, err := zlib.NewReader(b)
if err != nil {
return nil, err
}
out, err := ioutil.ReadAll(r)
if err != nil {
return nil, err
}
r.Close()
dest = new(Destination)
err = ms.ms.Unmarshal(out, dest)
if err != nil {
cache2go.Set(key, dest, cCommit, transactionID)
}
} else {
cache2go.Set(key, nil, cCommit, transactionID)
return nil, utils.ErrNotFound
}
return
}
开发者ID:eloycoto,项目名称:cgrates,代码行数:35,代码来源:storage_map.go
示例3: GetLCR
func (ms *MongoStorage) GetLCR(key string, skipCache bool, transactionID string) (lcr *LCR, err error) {
if !skipCache {
if x, ok := cache2go.Get(utils.LCR_PREFIX + key); ok {
if x != nil {
return x.(*LCR), nil
}
return nil, utils.ErrNotFound
}
}
var result struct {
Key string
Value *LCR
}
session, col := ms.conn(colLcr)
defer session.Close()
cCommit := cacheCommit(transactionID)
if err = col.Find(bson.M{"key": key}).One(&result); err == nil {
lcr = result.Value
} else {
cache2go.Set(utils.LCR_PREFIX+key, nil, cCommit, transactionID)
return nil, utils.ErrNotFound
}
cache2go.Set(utils.LCR_PREFIX+key, lcr, cCommit, transactionID)
return
}
开发者ID:eloycoto,项目名称:cgrates,代码行数:25,代码来源:storage_mongo_datadb.go
示例4: GetReverseAlias
func (ms *MongoStorage) GetReverseAlias(reverseID string, skipCache bool, transactionID string) (ids []string, err error) {
if !skipCache {
if x, ok := cache2go.Get(utils.REVERSE_ALIASES_PREFIX + reverseID); ok {
if x != nil {
return x.([]string), nil
}
return nil, utils.ErrNotFound
}
}
var result struct {
Key string
Value []string
}
session, col := ms.conn(colRls)
defer session.Close()
if err = col.Find(bson.M{"key": reverseID}).One(&result); err == nil {
ids = result.Value
cache2go.Set(utils.REVERSE_ALIASES_PREFIX+reverseID, ids, cacheCommit(transactionID), transactionID)
} else {
cache2go.Set(utils.REVERSE_ALIASES_PREFIX+reverseID, nil, cacheCommit(transactionID), transactionID)
return nil, utils.ErrNotFound
}
return
}
开发者ID:eloycoto,项目名称:cgrates,代码行数:25,代码来源:storage_mongo_datadb.go
示例5: GetDestination
func (rs *RedisStorage) GetDestination(key string, skipCache bool, transactionID string) (dest *Destination, err error) {
key = utils.DESTINATION_PREFIX + key
if !skipCache {
if x, ok := cache2go.Get(key); ok {
if x != nil {
return x.(*Destination), nil
}
return nil, utils.ErrNotFound
}
}
var values []byte
if values, err = rs.db.Cmd("GET", key).Bytes(); len(values) > 0 && err == nil {
b := bytes.NewBuffer(values)
r, err := zlib.NewReader(b)
if err != nil {
return nil, err
}
out, err := ioutil.ReadAll(r)
if err != nil {
return nil, err
}
r.Close()
dest = new(Destination)
err = rs.ms.Unmarshal(out, dest)
if err != nil {
cache2go.Set(key, dest, cacheCommit(transactionID), transactionID)
}
} else {
cache2go.Set(key, nil, cacheCommit(transactionID), transactionID)
return nil, err
}
return
}
开发者ID:eloycoto,项目名称:cgrates,代码行数:33,代码来源:storage_redis.go
示例6: GetAlias
func (ms *MongoStorage) GetAlias(key string, skipCache bool, transactionID string) (al *Alias, err error) {
origKey := key
key = utils.ALIASES_PREFIX + key
if !skipCache {
if x, ok := cache2go.Get(key); ok {
if x != nil {
al = &Alias{Values: x.(AliasValues)}
al.SetId(origKey)
return al, nil
}
return nil, utils.ErrNotFound
}
}
var kv struct {
Key string
Value AliasValues
}
session, col := ms.conn(colAls)
defer session.Close()
cCommit := cacheCommit(transactionID)
if err = col.Find(bson.M{"key": origKey}).One(&kv); err == nil {
al = &Alias{Values: kv.Value}
al.SetId(origKey)
if err == nil {
cache2go.Set(key, al.Values, cCommit, transactionID)
}
} else {
cache2go.Set(key, nil, cCommit, transactionID)
return nil, utils.ErrNotFound
}
return
}
开发者ID:eloycoto,项目名称:cgrates,代码行数:33,代码来源:storage_mongo_datadb.go
示例7: GetRatingPlan
func (ms *MapStorage) GetRatingPlan(key string, skipCache bool, transactionID string) (rp *RatingPlan, err error) {
ms.mu.RLock()
defer ms.mu.RUnlock()
key = utils.RATING_PLAN_PREFIX + key
if !skipCache {
if x, ok := cache2go.Get(key); ok {
if x != nil {
return x.(*RatingPlan), nil
}
return nil, utils.ErrNotFound
}
}
cCommit := cacheCommit(transactionID)
if values, ok := ms.dict[key]; ok {
b := bytes.NewBuffer(values)
r, err := zlib.NewReader(b)
if err != nil {
return nil, err
}
out, err := ioutil.ReadAll(r)
if err != nil {
return nil, err
}
r.Close()
rp = new(RatingPlan)
err = ms.ms.Unmarshal(out, rp)
} else {
cache2go.Set(key, nil, cCommit, transactionID)
return nil, utils.ErrNotFound
}
cache2go.Set(key, rp, cCommit, transactionID)
return
}
开发者ID:eloycoto,项目名称:cgrates,代码行数:33,代码来源:storage_map.go
示例8: GetAlias
func (rs *RedisStorage) GetAlias(key string, skipCache bool, transactionID string) (al *Alias, err error) {
origKey := key
key = utils.ALIASES_PREFIX + key
if !skipCache {
if x, ok := cache2go.Get(key); ok {
if x != nil {
al = &Alias{Values: x.(AliasValues)}
al.SetId(origKey)
return al, nil
}
return nil, utils.ErrNotFound
}
}
var values []byte
if values, err = rs.db.Cmd("GET", key).Bytes(); err == nil {
al = &Alias{Values: make(AliasValues, 0)}
al.SetId(origKey)
err = rs.ms.Unmarshal(values, &al.Values)
} else {
cache2go.Set(key, nil, cacheCommit(transactionID), transactionID)
return nil, utils.ErrNotFound
}
cache2go.Set(key, al.Values, cacheCommit(transactionID), transactionID)
return
}
开发者ID:eloycoto,项目名称:cgrates,代码行数:26,代码来源:storage_redis.go
示例9: GetAlias
func (ms *MapStorage) GetAlias(key string, skipCache bool, transactionID string) (al *Alias, err error) {
ms.mu.RLock()
defer ms.mu.RUnlock()
origKey := key
key = utils.ALIASES_PREFIX + key
if !skipCache {
if x, ok := cache2go.Get(key); ok {
if x != nil {
al = &Alias{Values: x.(AliasValues)}
al.SetId(origKey)
return al, nil
}
return nil, utils.ErrNotFound
}
}
cCommit := cacheCommit(transactionID)
if values, ok := ms.dict[key]; ok {
al = &Alias{Values: make(AliasValues, 0)}
al.SetId(key[len(utils.ALIASES_PREFIX):])
err = ms.ms.Unmarshal(values, &al.Values)
if err == nil {
cache2go.Set(key, al.Values, cCommit, transactionID)
}
} else {
cache2go.Set(key, nil, cCommit, transactionID)
return nil, utils.ErrNotFound
}
return al, nil
}
开发者ID:eloycoto,项目名称:cgrates,代码行数:29,代码来源:storage_map.go
示例10: GetActionPlan
func (rs *RedisStorage) GetActionPlan(key string, skipCache bool, transactionID string) (ats *ActionPlan, err error) {
key = utils.ACTION_PLAN_PREFIX + key
if !skipCache {
if x, ok := cache2go.Get(key); ok {
if x != nil {
return x.(*ActionPlan), nil
}
return nil, utils.ErrNotFound
}
}
var values []byte
if values, err = rs.db.Cmd("GET", key).Bytes(); err == nil {
b := bytes.NewBuffer(values)
r, err := zlib.NewReader(b)
if err != nil {
return nil, err
}
out, err := ioutil.ReadAll(r)
if err != nil {
return nil, err
}
r.Close()
ats = &ActionPlan{}
err = rs.ms.Unmarshal(out, &ats)
}
cache2go.Set(key, ats, cacheCommit(transactionID), transactionID)
return
}
开发者ID:eloycoto,项目名称:cgrates,代码行数:28,代码来源:storage_redis.go
示例11: GetRatingPlan
func (rs *RedisStorage) GetRatingPlan(key string, skipCache bool, transactionID string) (rp *RatingPlan, err error) {
key = utils.RATING_PLAN_PREFIX + key
if !skipCache {
if x, ok := cache2go.Get(key); ok {
if x != nil {
return x.(*RatingPlan), nil
}
return nil, utils.ErrNotFound
}
}
var values []byte
if values, err = rs.Cmd("GET", key).Bytes(); err == nil {
b := bytes.NewBuffer(values)
r, err := zlib.NewReader(b)
if err != nil {
return nil, err
}
out, err := ioutil.ReadAll(r)
if err != nil {
return nil, err
}
r.Close()
rp = new(RatingPlan)
err = rs.ms.Unmarshal(out, rp)
}
cache2go.Set(key, rp, cacheCommit(transactionID), transactionID)
return
}
开发者ID:razvancrainea,项目名称:cgrates,代码行数:28,代码来源:storage_redis.go
示例12: GetLoadHistory
// Limit will only retrieve the last n items out of history, newest first
func (ms *MongoStorage) GetLoadHistory(limit int, skipCache bool, transactionID string) (loadInsts []*utils.LoadInstance, err error) {
if limit == 0 {
return nil, nil
}
if !skipCache {
if x, ok := cache2go.Get(utils.LOADINST_KEY); ok {
if x != nil {
items := x.([]*utils.LoadInstance)
if len(items) < limit || limit == -1 {
return items, nil
}
return items[:limit], nil
}
return nil, utils.ErrNotFound
}
}
var kv struct {
Key string
Value []*utils.LoadInstance
}
session, col := ms.conn(colLht)
defer session.Close()
err = col.Find(bson.M{"key": utils.LOADINST_KEY}).One(&kv)
cCommit := cacheCommit(transactionID)
if err == nil {
loadInsts = kv.Value
cache2go.RemKey(utils.LOADINST_KEY, cCommit, transactionID)
cache2go.Set(utils.LOADINST_KEY, loadInsts, cCommit, transactionID)
}
if len(loadInsts) < limit || limit == -1 {
return loadInsts, nil
}
return loadInsts[:limit], nil
}
开发者ID:eloycoto,项目名称:cgrates,代码行数:35,代码来源:storage_mongo_datadb.go
示例13: GetActionPlan
func (ms *MongoStorage) GetActionPlan(key string, skipCache bool, transactionID string) (ats *ActionPlan, err error) {
if !skipCache {
if x, ok := cache2go.Get(utils.ACTION_PLAN_PREFIX + key); ok {
if x != nil {
return x.(*ActionPlan), nil
}
return nil, utils.ErrNotFound
}
}
var kv struct {
Key string
Value []byte
}
session, col := ms.conn(colApl)
defer session.Close()
err = col.Find(bson.M{"key": key}).One(&kv)
if err == nil {
b := bytes.NewBuffer(kv.Value)
r, err := zlib.NewReader(b)
if err != nil {
return nil, err
}
out, err := ioutil.ReadAll(r)
if err != nil {
return nil, err
}
r.Close()
err = ms.ms.Unmarshal(out, &ats)
if err != nil {
return nil, err
}
}
cache2go.Set(utils.ACTION_PLAN_PREFIX+key, ats, cacheCommit(transactionID), transactionID)
return
}
开发者ID:eloycoto,项目名称:cgrates,代码行数:35,代码来源:storage_mongo_datadb.go
示例14: GetReverseAlias
func (rs *RedisStorage) GetReverseAlias(reverseID string, skipCache bool, transactionID string) (ids []string, err error) {
key := utils.REVERSE_ALIASES_PREFIX + reverseID
if !skipCache {
if x, ok := cache2go.Get(key); ok {
if x != nil {
return x.([]string), nil
}
return nil, utils.ErrNotFound
}
}
if ids, err = rs.db.Cmd("SMEMBERS", key).List(); len(ids) == 0 || err != nil {
cache2go.Set(key, nil, cacheCommit(transactionID), transactionID)
return nil, utils.ErrNotFound
}
cache2go.Set(key, ids, cacheCommit(transactionID), transactionID)
return
}
开发者ID:eloycoto,项目名称:cgrates,代码行数:17,代码来源:storage_redis.go
示例15: SetResourceLimit
func (rs *RedisStorage) SetResourceLimit(rl *ResourceLimit, transactionID string) error {
result, err := rs.ms.Marshal(rl)
if err != nil {
return err
}
key := utils.ResourceLimitsPrefix + rl.ID
err = rs.db.Cmd("SET", key, result).Err
cache2go.Set(key, rl, cacheCommit(transactionID), transactionID)
return err
}
开发者ID:eloycoto,项目名称:cgrates,代码行数:10,代码来源:storage_redis.go
示例16: GetLoadHistory
// Limit will only retrieve the last n items out of history, newest first
func (rs *RedisStorage) GetLoadHistory(limit int, skipCache bool, transactionID string) ([]*utils.LoadInstance, error) {
if limit == 0 {
return nil, nil
}
if !skipCache {
if x, ok := cache2go.Get(utils.LOADINST_KEY); ok {
if x != nil {
items := x.([]*utils.LoadInstance)
if len(items) < limit || limit == -1 {
return items, nil
}
return items[:limit], nil
}
return nil, utils.ErrNotFound
}
}
if limit != -1 {
limit -= -1 // Decrease limit to match redis approach on lrange
}
marshaleds, err := rs.db.Cmd("LRANGE", utils.LOADINST_KEY, 0, limit).ListBytes()
cCommit := cacheCommit(transactionID)
if err != nil {
cache2go.Set(utils.LOADINST_KEY, nil, cCommit, transactionID)
return nil, err
}
loadInsts := make([]*utils.LoadInstance, len(marshaleds))
for idx, marshaled := range marshaleds {
var lInst utils.LoadInstance
err = rs.ms.Unmarshal(marshaled, &lInst)
if err != nil {
return nil, err
}
loadInsts[idx] = &lInst
}
cache2go.RemKey(utils.LOADINST_KEY, cCommit, transactionID)
cache2go.Set(utils.LOADINST_KEY, loadInsts, cCommit, transactionID)
if len(loadInsts) < limit || limit == -1 {
return loadInsts, nil
}
return loadInsts[:limit], nil
}
开发者ID:eloycoto,项目名称:cgrates,代码行数:43,代码来源:storage_redis.go
示例17: GetDerivedChargers
func (rs *RedisStorage) GetDerivedChargers(key string, skipCache bool, transactionID string) (dcs *utils.DerivedChargers, err error) {
key = utils.DERIVEDCHARGERS_PREFIX + key
if !skipCache {
if x, ok := cache2go.Get(key); ok {
if x != nil {
return x.(*utils.DerivedChargers), nil
}
return nil, utils.ErrNotFound
}
}
var values []byte
if values, err = rs.db.Cmd("GET", key).Bytes(); err == nil {
err = rs.ms.Unmarshal(values, &dcs)
} else {
cache2go.Set(key, nil, cacheCommit(transactionID), transactionID)
return nil, utils.ErrNotFound
}
cache2go.Set(key, dcs, cacheCommit(transactionID), transactionID)
return
}
开发者ID:eloycoto,项目名称:cgrates,代码行数:20,代码来源:storage_redis.go
示例18: GetSharedGroup
func (ms *MongoStorage) GetSharedGroup(key string, skipCache bool, transactionID string) (sg *SharedGroup, err error) {
if !skipCache {
if x, ok := cache2go.Get(utils.SHARED_GROUP_PREFIX + key); ok {
if x != nil {
return x.(*SharedGroup), nil
}
return nil, utils.ErrNotFound
}
}
session, col := ms.conn(colShg)
defer session.Close()
sg = &SharedGroup{}
err = col.Find(bson.M{"id": key}).One(sg)
if err == nil {
cache2go.Set(utils.SHARED_GROUP_PREFIX+key, sg, cacheCommit(transactionID), transactionID)
} else {
cache2go.Set(utils.SHARED_GROUP_PREFIX+key, nil, cacheCommit(transactionID), transactionID)
}
return
}
开发者ID:eloycoto,项目名称:cgrates,代码行数:20,代码来源:storage_mongo_datadb.go
示例19: GetRatingProfile
func (ms *MongoStorage) GetRatingProfile(key string, skipCache bool, transactionID string) (rp *RatingProfile, err error) {
if !skipCache {
if x, ok := cache2go.Get(utils.RATING_PROFILE_PREFIX + key); ok {
if x != nil {
return x.(*RatingProfile), nil
}
return nil, utils.ErrNotFound
}
}
rp = new(RatingProfile)
session, col := ms.conn(colRpf)
defer session.Close()
err = col.Find(bson.M{"id": key}).One(rp)
if err == nil {
cache2go.Set(utils.RATING_PROFILE_PREFIX+key, rp, cacheCommit(transactionID), transactionID)
} else {
cache2go.Set(utils.RATING_PROFILE_PREFIX+key, nil, cacheCommit(transactionID), transactionID)
}
return
}
开发者ID:eloycoto,项目名称:cgrates,代码行数:20,代码来源:storage_mongo_datadb.go
示例20: GetReverseDestination
func (ms *MapStorage) GetReverseDestination(prefix string, skipCache bool, transactionID string) (ids []string, err error) {
ms.mu.Lock()
defer ms.mu.Unlock()
prefix = utils.REVERSE_DESTINATION_PREFIX + prefix
if !skipCache {
if x, ok := cache2go.Get(prefix); ok {
if x != nil {
return x.([]string), nil
}
return nil, utils.ErrNotFound
}
}
if idMap, ok := ms.dict.smembers(prefix, ms.ms); ok {
ids = idMap.Slice()
} else {
cache2go.Set(prefix, nil, cacheCommit(transactionID), transactionID)
return nil, utils.ErrNotFound
}
cache2go.Set(prefix, ids, cacheCommit(transactionID), transactionID)
return
}
开发者ID:eloycoto,项目名称:cgrates,代码行数:21,代码来源:storage_map.go
注:本文中的github.com/cgrates/cgrates/cache2go.Set函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论