class Celluloid::IO::TCPServer

TCPServer with combined blocking and evented support

Public Class Methods

from_ruby_server(ruby_server) click to toggle source

Convert a Ruby TCPServer into a Celluloid::IO::TCPServer @deprecated Use .new instead.

# File lib/celluloid/io/tcp_server.rb, line 47
def self.from_ruby_server(ruby_server)
  warn "#from_ruby_server is deprecated please use .new instead"
  
  self.new(ruby_server)
end
new(*args) click to toggle source

@overload initialize(port)

Opens a tcp server on the given port.
@param port [Numeric]

@overload initialize(hostname, port)

Opens a tcp server on the given port and interface.
@param hostname [String]
@param port [Numeric]

@overload initialize(socket)

Wraps an already existing tcp server instance.
@param socket [::TCPServer]
Calls superclass method Celluloid::IO::Socket.new
# File lib/celluloid/io/tcp_server.rb, line 22
def initialize(*args)
  if args.first.kind_of? ::BasicSocket
    # socket
    socket = args.first
    fail ArgumentError, "wrong number of arguments (#{args.size} for 1)" if args.size != 1
    fail ArgumentError, "wrong kind of socket (#{socket.class} for TCPServer)" unless socket.kind_of? ::TCPServer
    super(socket)
  else
    super(::TCPServer.new(*args))
  end
end

Public Instance Methods

accept() click to toggle source

@return [TCPSocket]

# File lib/celluloid/io/tcp_server.rb, line 35
def accept
  Celluloid::IO.wait_readable(to_io)
  accept_nonblock
end
accept_nonblock() click to toggle source

@return [TCPSocket]

# File lib/celluloid/io/tcp_server.rb, line 41
def accept_nonblock
  Celluloid::IO::TCPSocket.new(to_io.accept_nonblock)
end