Class: Skynet::Server

Inherits:
Object
  • Object
show all
Defined in:
lib/skynet/skynet_tuplespace_server.rb

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Server

Returns a new instance of Server.



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/skynet/skynet_tuplespace_server.rb', line 56

def initialize(options)
  log = Logger.new(options[:logfile], 'weekly')
  log.level = Object.module_eval("#{"Logger::" + options[:loglevel].upcase}", __FILE__, __LINE__)
  log.info "STARTING SKYNET SERVER ON PORT: #{options[:port]} Logging to #{options[:logfile]}"

  # Create a TupleSpace to hold named services, and start running
  begin
    ts = Rinda::TupleSpace.new
    if options[:drburi]
      DRb.start_service(options[:drburi], ts)          
    else
      DRb.start_service
    end
    tuple = [:name,:TupleSpace, ts, 'Tuple Space']
    renewer = Rinda::SimpleRenewer.new
    ring_ts = Rinda::TupleSpace.new
    ring_ts.write(tuple, renewer)

    server = Rinda::RingServer.new(ring_ts, options[:port])
    DRb.thread.join
  rescue Exception, RuntimeError => e
    log.fatal "Couldn't start Skynet Server #{e.inspect}"
  end

end