Sha256: a0b9508670a66d2f5ca61c495a0b449b5ee0c8978b43a279e9e8baf77ed4b1ad
Contents?: true
Size: 846 Bytes
Versions: 1
Compression:
Stored size: 846 Bytes
Contents
class NetworkDiscoveryUdpApp<Service requires :udpBroadcast provides :networkDiscoveryUdp def initialize(cluster,options) super(cluster,options,:networkDiscoveryUdp) @nodes=[] @myNodes=[] @mutex=Mutex.new @quit=false end def add(node) @myNodes << node end def remove(node) @myNodes.delete(node) end def get (@nodes+@myNodes).uniq end def run begin @broadcast=getApp(:udpBroadcast) sleep 2 end while @broadcast.nil? @connection=@broadcast.connect("networkDiscovery"){|result| @mutex.synchronize { @nodes << result @nodes.uniq! } } loop do @myNodes.uniq.each{|node| @connection.send(node) } sleep 2 break if @quit end end def stop super @quit=true end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
appswarm-0.0.1 | apps/network_discovery_udp/network_discovery_udp.rb |