Exemplo n.º 1
0
func (v *MVVertex) Compute(g *waffle.Graph, msgs []waffle.Message) {
	max := 0
	for _, msg := range msgs {
		val := msg.(*MVMessage).Value
		if val > max {
			max = val
		}
	}
	if v.Value > max {
		max = v.Value
	}
	if max > v.Max {
		v.Max = max
		for _, e := range g.Edges(v.Id()) {
			g.SendMessage(&MVMessage{Value: v.Max, Dest: e.Destination()})
		}
	}
	v.Vactive = false
}