Class: Celluloid::IO::TCPServer

Inherits:
Socket
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/celluloid/io/tcp_server.rb

Overview

TCPServer with combined blocking and evented support

Constant Summary

Constants inherited from Socket

Socket::Constants

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Socket

new, #to_io, try_convert

Constructor Details

#initialize(port) ⇒ TCPServer #initialize(hostname, port) ⇒ TCPServer #initialize(socket) ⇒ TCPServer

Returns a new instance of TCPServer.

Overloads:

  • #initialize(port) ⇒ TCPServer

    Opens a tcp server on the given port.

    Parameters:

    • port (Numeric)
  • #initialize(hostname, port) ⇒ TCPServer

    Opens a tcp server on the given port and interface.

    Parameters:

    • hostname (String)
    • port (Numeric)
  • #initialize(socket) ⇒ TCPServer

    Wraps an already existing tcp server instance.

    Parameters:

    • socket (::TCPServer)


22
23
24
25
26
27
28
29
30
31
32
# 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

Class Method Details

.from_ruby_server(ruby_server) ⇒ Object

Deprecated.

Use .new instead.

Convert a Ruby TCPServer into a Celluloid::IO::TCPServer



47
48
49
50
51
# 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

Instance Method Details

#acceptTCPSocket

Returns:



35
36
37
38
# File 'lib/celluloid/io/tcp_server.rb', line 35

def accept
  Celluloid::IO.wait_readable(to_io)
  accept_nonblock
end

#accept_nonblockTCPSocket

Returns:



41
42
43
# File 'lib/celluloid/io/tcp_server.rb', line 41

def accept_nonblock
  Celluloid::IO::TCPSocket.new(to_io.accept_nonblock)
end