Class: TP2::Server

Inherits:
Object
  • Object
show all
Defined in:
lib/tp2/server.rb

Instance Method Summary collapse

Constructor Details

#initialize(machine, hostname, port, &app) ⇒ Server

Returns a new instance of Server.



8
9
10
11
12
13
# File 'lib/tp2/server.rb', line 8

def initialize(machine, hostname, port, &app)
  @machine = machine
  @hostname = hostname
  @port = port
  @app = app
end

Instance Method Details

#runObject



24
25
26
27
28
29
30
# File 'lib/tp2/server.rb', line 24

def run
  setup
  @machine.accept_each(@server_fd) do |fd|
    conn = HTTP1Adapter.new(@machine, fd, &@app)
    @machine.spin(conn) { it.run }
  end
end

#setupObject



15
16
17
18
19
20
21
22
# File 'lib/tp2/server.rb', line 15

def setup
  @server_fd = @machine.socket(UM::AF_INET, UM::SOCK_STREAM, 0, 0)
  @machine.setsockopt(@server_fd, UM::SOL_SOCKET, UM::SO_REUSEADDR, true)
  @machine.bind(@server_fd, @hostname, @port)
  @machine.listen(@server_fd, UM::SOMAXCONN)

  # puts "Listening on #{@hostname}:#{@port}"
end