github.com/stampzilla/stampzilla-go@v2.0.0-rc9+incompatible/nodes/stampzilla-server/store/connections.go (about) 1 package store 2 3 import "github.com/stampzilla/stampzilla-go/nodes/stampzilla-server/models" 4 5 func (store *Store) GetConnections() Connections { 6 store.RLock() 7 defer store.RUnlock() 8 return store.Connections 9 } 10 11 func (store *Store) Connection(id string) *models.Connection { 12 store.RLock() 13 defer store.RUnlock() 14 if conn, ok := store.Connections[id]; ok { 15 return conn 16 } 17 return nil 18 } 19 20 func (store *Store) AddOrUpdateConnection(id string, c *models.Connection) { 21 store.Lock() 22 store.Connections[id] = c 23 store.Unlock() 24 25 store.runCallbacks("connections") 26 } 27 28 func (store *Store) ConnectionChanged() { 29 store.runCallbacks("connections") 30 } 31 32 func (store *Store) RemoveConnection(id string) { 33 store.Lock() 34 delete(store.Connections, id) 35 for _, device := range store.Devices.All() { 36 if device.ID.Node == id { 37 device.Online = false 38 } 39 } 40 store.Unlock() 41 42 store.runCallbacks("connections") 43 store.runCallbacks("devices") 44 }