Sha256: f55a8968a866473abe4d7f7c0cfa155221bce21cad8a15627b22f2750517a082

Contents?: true

Size: 932 Bytes

Versions: 1

Compression:

Stored size: 932 Bytes

Contents

require 'socket'

module DRbQS
  # The class of connection to s.erver.
  class ConnectionClient
    def initialize(message, logger = nil)
      @message = message
      @logger = logger
      @id = nil
    end

    def create_id_string
      t = Time.now
      sprintf("#{Socket.gethostname} %d%d%d", t.to_i, t.usec, rand(1000))
    end
    private :create_id_string

    def get_id
      s = create_id_string
      @message.write([:connect, s])
      @id = @message.take([s, Fixnum])[1]
    end

    def get_initialization
      begin
        ary = @message.read([:initialize, nil, Symbol, nil], 0)
        ary[1..-1]
      rescue
        nil
      end
    end

    def respond_alive_signal
      begin
        node_id, sym = @message.take([@id, Symbol], 0)
        case sym
        when :alive_p
          @message.write([:alive, @id])
        when :exit
          Kernel.exit
        end
      rescue
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
drbqs-0.0.1 lib/drbqs/connection.rb