Files
kapow/internal/server/data/state.go
Roberto Abdelkader Martínez Pérez 47bd2be882 Some fixes suggested by golangci-lint
2019-10-07 08:53:48 +02:00

41 lines
642 B
Go

package data
import (
"sync"
"github.com/BBVA/kapow/internal/server/model"
)
type safeHandlerMap struct {
hs map[string]*model.Handler
m *sync.RWMutex
}
var Handlers = New()
func New() safeHandlerMap {
return safeHandlerMap{
hs: make(map[string]*model.Handler),
m: &sync.RWMutex{},
}
}
func (shm *safeHandlerMap) Add(h *model.Handler) {
shm.m.Lock()
shm.hs[h.ID] = h
shm.m.Unlock()
}
func (shm *safeHandlerMap) Remove(id string) {
shm.m.Lock()
delete(shm.hs, id)
shm.m.Unlock()
}
func (shm *safeHandlerMap) Get(id string) (*model.Handler, bool) {
shm.m.RLock()
h, ok := shm.hs[id]
shm.m.RUnlock()
return h, ok
}