obj_mgr.go 807 B

12345678910111213141516171819202122232425262728293031323334353637
  1. package logic
  2. import (
  3. "sync"
  4. )
  5. type ObjMgr struct {
  6. DictInfo sync.Map
  7. }
  8. func (sel *ObjMgr) Register(key, val interface{}) {
  9. //log.Printf("<ObjMgr.Register> key:%v, value:%v", key, reflect.TypeOf(val).String())
  10. sel.DictInfo.Store(key, val)
  11. }
  12. func (sel *ObjMgr) GetObj(objName interface{}) interface{} {
  13. obj, ok := sel.DictInfo.Load(objName)
  14. if ok == true {
  15. return obj
  16. } else {
  17. // log.Println("<ObjMgr> GetObj nil, objName:", objName)
  18. return nil
  19. }
  20. }
  21. func (sel *ObjMgr) DeleteObj(objName interface{}) {
  22. sel.DictInfo.Delete(objName)
  23. //log.Printf("<ObjMgr.DeleteObj> [%v] : %v \n", &sel.DictInfo, objName)
  24. }
  25. func (sel *ObjMgr) GetObjKeys() []interface{} {
  26. return GetSyncMapKeys(&sel.DictInfo)
  27. }
  28. func (sel *ObjMgr) GetObjValues() []interface{} {
  29. return GetSyncMapValues(&sel.DictInfo)
  30. }