class Reactomatic::TcpServer
Attributes
reactor[RW]
Public Class Methods
new(opts = {})
click to toggle source
# File lib/reactomatic/tcp_server.rb, line 5 def initialize(opts = {}) @opts = opts @reactor = opts[:reactor] || Reactomatic.reactor end
Public Instance Methods
close()
click to toggle source
# File lib/reactomatic/tcp_server.rb, line 23 def close if @socket @reactor.deregister(@socket) @socket.close @socket = nil end nil end
listen(host, port, klass)
click to toggle source
# File lib/reactomatic/tcp_server.rb, line 10 def listen(host, port, klass) raise AlreadyStarted if @server @host = host @port = port @klass = klass @socket = TCPServer.new(@host, @port) @reactor.register(@socket, :r, method(:selected)) nil end
Private Instance Methods
selected(monitor)
click to toggle source
Internal methods (don’t use).
# File lib/reactomatic/tcp_server.rb, line 39 def selected(monitor) if monitor.closed? @reactor.deregister(@server) return end if monitor.readable? @klass.new({:reactor => @reactor, :socket => monitor.io.accept_nonblock}) end end