Sha256: c5c5fe4b3d32f8680b5b08ae390354c54f89d46cd7f09005cfe1b33eadfc7e58
Contents?: true
Size: 790 Bytes
Versions: 1
Compression:
Stored size: 790 Bytes
Contents
module Elaine class Vertex attr_reader :id attr_accessor :value, :messages def initialize(id, value, *outedges) @id = id @value = value @outedges = outedges @messages = [] @active = true @superstep = 0 end def edges block_given? ? @outedges.each {|e| yield e} : @outedges end def deliver_to_all_neighbors(msg) edges.each {|e| deliver(e, msg)} end def deliver(to, msg) PostOffice.instance.deliver(to, msg) end def step @superstep += 1 compute end def halt; @active = false; end def active!; @active = true; end def active?; @active; end def superstep; @superstep; end def neighbors; @outedges; end def compute; end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
elaine-0.0.3 | lib/elaine/vertex.rb |