| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- package dataStruct
- import "sync"
- type DMapKv struct {
- RWLock sync.RWMutex
- Map map[interface{}]interface{}
- }
- func NewDMapKv() *DMapKv {
- cm := &DMapKv{
- Map: make(map[interface{}]interface{}),
- }
- return cm
- }
- func (cm *DMapKv) Add(key interface{}, val interface{}) {
- cm.RWLock.Lock()
- cm.Map[key] = val
- cm.RWLock.Unlock()
- }
- func (cm *DMapKv) Remove(key interface{}) {
- cm.RWLock.Lock()
- delete(cm.Map, key)
- cm.RWLock.Unlock()
- }
- func (cm *DMapKv) Get(key interface{}) (interface{}, bool) {
- cm.RWLock.RLock()
- res, ok := cm.Map[key]
- cm.RWLock.RUnlock()
- return res, ok
- }
- func (cm *DMapKv) Len() int {
- return len(cm.Map)
- }
- func (cm *DMapKv) Clean() {
- cm.RWLock.Lock()
- //cm = NewDmap()
- for key, _ := range cm.Map {
- delete(cm.Map, key)
- }
- cm.RWLock.Unlock()
- }
|