Sha256: f1d5552eb0ccf157def88e010e37b90c498e94123698770d6822ba4ac367b5b3
Contents?: true
Size: 1.59 KB
Versions: 1
Compression:
Stored size: 1.59 KB
Contents
require 'socket' module Celluloid module IO # TCPServer with combined blocking and evented support class TCPServer < Socket extend Forwardable def_delegators :to_io, :listen, :sysaccept, :addr # @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] 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 # @return [TCPSocket] def accept Celluloid::IO.wait_readable(to_io) accept_nonblock end # @return [TCPSocket] def accept_nonblock Celluloid::IO::TCPSocket.new(to_io.accept_nonblock) end # Convert a Ruby TCPServer into a Celluloid::IO::TCPServer # @deprecated Use .new instead. def self.from_ruby_server(ruby_server) warn "#from_ruby_server is deprecated please use .new instead" self.new(ruby_server) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
celluloid-io-0.17.3 | lib/celluloid/io/tcp_server.rb |