class DRb::HTTP0::Server

Attributes

uri[R]

Public Class Methods

new(uri, config) click to toggle source
# File lib/drb/http0serv.rb, line 53
def initialize(uri, config)
  @uri = uri
  @config = config
  @queue = Thread::Queue.new
  setup_webrick(uri)
end

Public Instance Methods

accept() click to toggle source
# File lib/drb/http0serv.rb, line 69
def accept
  client = @queue.pop
  ServerSide.new(client, @config)
end
close() click to toggle source
# File lib/drb/http0serv.rb, line 60
def close
  @server.shutdown if @server
  @server = nil
end
push(callback) click to toggle source
# File lib/drb/http0serv.rb, line 65
def push(callback)
  @queue.push(callback)
end
setup_webrick(uri) click to toggle source
# File lib/drb/http0serv.rb, line 74
def setup_webrick(uri)
  logger = WEBrick::Log::new($stderr, WEBrick::Log::FATAL)
  u = URI.parse(uri)
  s = WEBrick::HTTPServer.new(:Port => u.port,
    :AddressFamily => Socket::AF_INET,
    :BindAddress => u.host,
    :Logger => logger,
    :ServerType => Thread)
  s.mount(u.path, Callback, self)
  @server = s
  s.start
end