Exemplo n.º 1
0
Arquivo: v2.go Projeto: pdf/golifx
func (p *V2) addGroup(pkt *packet.Packet) {
	g, err := device.NewGroup(pkt)
	if err != nil {
		common.Log.Errorf("Error parsing group: %v", err)
		return
	}
	group, err := p.getGroup(g.ID())
	if err == nil {
		if err := group.Parse(pkt); err != nil {
			common.Log.Errorf("Error parsing group: %v", err)
		}
		return
	}

	p.Lock()
	p.groups[g.ID()] = g
	p.Unlock()
	if err := p.publish(common.EventNewGroup{Group: g}); err != nil {
		common.Log.Errorf("Error adding group to client: %v", err)
		return
	}
}
Exemplo n.º 2
0
Arquivo: v2.go Projeto: chendo/golifx
func (p *V2) addGroup(pkt *packet.Packet) {
	g, err := device.NewGroup(pkt)
	if err != nil {
		common.Log.Errorf("Error parsing group: %v\n", err)
		return
	}
	p.RLock()
	group, ok := p.groups[g.ID()]
	p.RUnlock()
	if !ok {
		p.Lock()
		p.groups[g.ID()] = g
		p.Unlock()
		if err := p.publish(common.EventNewGroup{Group: g}); err != nil {
			common.Log.Errorf("Error adding group to client: %v\n", err)
			return
		}
	} else {
		if err := group.Parse(pkt); err != nil {
			common.Log.Errorf("Error parsing group: %v\n", err)
		}
	}
}