Files
gb-cms/stack/client_channels.go
2025-08-26 17:36:04 +08:00

37 lines
764 B
Go

package stack
import (
"gb-cms/dao"
"sync"
)
var (
// DeviceChannelsManager 目前只用作模拟多个国标客户端. 设备接入和级联都会走数据库
DeviceChannelsManager *DeviceChannels
)
type DeviceChannels struct {
channels map[string][]*dao.ChannelModel
lock sync.RWMutex
}
func (d *DeviceChannels) AddChannel(deviceId string, channel *dao.ChannelModel) {
d.lock.Lock()
defer d.lock.Unlock()
if d.channels == nil {
d.channels = make(map[string][]*dao.ChannelModel, 5)
}
channels := d.channels[deviceId]
channels = append(channels, channel)
d.channels[deviceId] = channels
}
func (d *DeviceChannels) FindChannels(deviceId string) []*dao.ChannelModel {
d.lock.RLock()
defer d.lock.RUnlock()
return d.channels[deviceId]
}