Class: Async::IO::TCPServer
- Inherits:
-
TCPSocket
- Object
- Wrapper
- Generic
- BasicSocket
- IPSocket
- TCPSocket
- Async::IO::TCPServer
- Includes:
- Server
- Defined in:
- lib/async/io/tcp_socket.rb
Overview
Asynchronous TCP server wrappper.
Constant Summary
Constants inherited from Generic
Instance Attribute Summary
Attributes inherited from TCPSocket
Attributes inherited from Generic
Instance Method Summary collapse
- #accept(timeout: nil, task: Task.current) ⇒ Object (also: #accept_nonblock, #sysaccept)
-
#initialize(*args) ⇒ TCPServer
constructor
A new instance of TCPServer.
Methods included from Server
Methods inherited from TCPSocket
Methods included from Peer
#connected?, #eof, #eof?, #protocol, #sync, #sync=, #type
Methods inherited from Generic
#<<, #connected?, #dup, #nonblock, #nonblock=, #nonblock?, #read, #readable?, #sysread, #syswrite, #wait, wrap, wrap_blocking_method, wraps, #write
Constructor Details
#initialize(*args) ⇒ TCPServer
Returns a new instance of TCPServer.
70 71 72 73 74 75 76 77 |
# File 'lib/async/io/tcp_socket.rb', line 70 def initialize(*args) if args.first.is_a? ::TCPServer super(args.first) else # We assume this operation doesn't block (for long): super(::TCPServer.new(*args)) end end |
Instance Method Details
#accept(timeout: nil, task: Task.current) ⇒ Object Also known as: accept_nonblock, sysaccept
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/async/io/tcp_socket.rb', line 79 def accept(timeout: nil, task: Task.current) peer, address = async_send(:accept_nonblock, timeout: timeout) wrapper = TCPSocket.new(peer) wrapper.timeout = self.timeout return wrapper, address unless block_given? begin yield wrapper, address ensure wrapper.close end end |