Sha256: dd1a1421eb43a0821b62e96d6d0d2db98e6d5969dc9eeb767bbd7d3ba9b681bd
Contents?: true
Size: 1.26 KB
Versions: 4
Compression:
Stored size: 1.26 KB
Contents
require 'socket' module DRbQS # The class of connection to s.erver. class ConnectionClient def initialize(message, logger = nil) @message = message @logger = logger @id_number = nil @id_string = create_id_string end def create_id_string t = Time.now sprintf("%d%d%d:#{Socket.gethostname}", t.to_i, t.usec, rand(1000)) end private :create_id_string def get_id unless @id_number @message.write([:connect, @id_string]) @id_number = @message.take([@id_string, Fixnum])[1] @logger.info("Get node id: #{@id_number}") if @logger end @id_number end def get_initialization begin ary = @message.read([:initialize, nil, Symbol, nil], 0) ary[1..-1] rescue Rinda::RequestExpiredError nil end end def respond_alive_signal begin node_id, sym = @message.take([@id_number, Symbol], 0) case sym when :alive_p @message.write([:alive, @id_number]) @logger.info("Send alive signal of node id #{@id_number}") if @logger when :exit @logger.info("Get exit signal") if @logger return :exit end rescue Rinda::RequestExpiredError end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
drbqs-0.0.9 | lib/drbqs/connection.rb |
drbqs-0.0.8 | lib/drbqs/connection.rb |
drbqs-0.0.7 | lib/drbqs/connection.rb |
drbqs-0.0.6 | lib/drbqs/connection.rb |