Class: DRb::HTTP0::Server

Inherits:
Object
  • Object
show all
Defined in:
lib/drb/http0serv.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(uri, config) ⇒ Server

Returns a new instance of Server.



53
54
55
56
57
58
# File 'lib/drb/http0serv.rb', line 53

def initialize(uri, config)
  @uri = uri
  @config = config
  @queue = Thread::Queue.new
  setup_webrick(uri)
end

Instance Attribute Details

#uriObject (readonly)

Returns the value of attribute uri.



51
52
53
# File 'lib/drb/http0serv.rb', line 51

def uri
  @uri
end

Instance Method Details

#acceptObject



69
70
71
72
# File 'lib/drb/http0serv.rb', line 69

def accept
  client = @queue.pop
  ServerSide.new(client, @config)
end

#closeObject



60
61
62
63
# File 'lib/drb/http0serv.rb', line 60

def close
  @server.shutdown if @server
  @server = nil
end

#push(callback) ⇒ Object



65
66
67
# File 'lib/drb/http0serv.rb', line 65

def push(callback)
  @queue.push(callback)
end

#setup_webrick(uri) ⇒ Object



74
75
76
77
78
79
80
81
82
83
84
85
# 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