mapDtu.go 945 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package dataStruct
  2. type DMapDtuDev struct {
  3. Map *DMapKv
  4. }
  5. func NewDMapDtuDev() *DMapDtuDev {
  6. cm := &DMapDtuDev{
  7. Map: NewDMapKv(),
  8. }
  9. return cm
  10. }
  11. func (cm *DMapDtuDev) Add(key string, val *DTUDeviceState) {
  12. cm.Map.Add(key, val)
  13. }
  14. func (cm *DMapDtuDev) Remove(key string) {
  15. cm.Map.Remove(key)
  16. }
  17. func (cm *DMapDtuDev) Get(key string) (*DTUDeviceState, bool) {
  18. v, ok := cm.Map.Get(key)
  19. if ok {
  20. return v.(*DTUDeviceState), true
  21. } else {
  22. var t *DTUDeviceState
  23. return t, false
  24. }
  25. }
  26. // AlterKey 修改key
  27. func (cm *DMapDtuDev) AlterKey(before, after string) bool {
  28. if before == after {
  29. return true
  30. }
  31. if v, ok := cm.Map.Get(before); !ok {
  32. return false
  33. } else {
  34. if _, ok = cm.Map.Get(after); ok {
  35. return false
  36. }
  37. val := v.(*DTUDeviceState)
  38. cm.Map.Add(after, val)
  39. cm.Map.Remove(before)
  40. return true
  41. }
  42. }
  43. func (cm *DMapDtuDev) Len() int {
  44. return cm.Map.Len()
  45. }
  46. func (cm *DMapDtuDev) Clean() {
  47. cm.Map.Clean()
  48. }