Class: Async::IO::SocketEndpoint
- Defined in:
- lib/async/io/socket_endpoint.rb
Overview
This class doesn’t exert ownership over the specified socket, wraps a native ::IO.
Instance Attribute Summary collapse
-
#socket ⇒ Object
readonly
Returns the value of attribute socket.
Attributes inherited from Endpoint
Instance Method Summary collapse
- #bind(&block) ⇒ Object
- #connect(&block) ⇒ Object
-
#initialize(socket, **options) ⇒ SocketEndpoint
constructor
A new instance of SocketEndpoint.
- #to_s ⇒ Object
Methods inherited from Endpoint
#accept, #bound, composite, #connected, #each, each, #hostname, #linger, #local_address, parse, #reuse_address, #reuse_port, socket, ssl, tcp, #timeout, try_convert, udp, unix, #with
Constructor Details
#initialize(socket, **options) ⇒ SocketEndpoint
Returns a new instance of SocketEndpoint.
12 13 14 15 16 17 |
# File 'lib/async/io/socket_endpoint.rb', line 12 def initialize(socket, **) super(**) # This socket should already be in the required state. @socket = Async::IO.try_convert(socket) end |
Instance Attribute Details
#socket ⇒ Object (readonly)
Returns the value of attribute socket.
23 24 25 |
# File 'lib/async/io/socket_endpoint.rb', line 23 def socket @socket end |
Instance Method Details
#bind(&block) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/async/io/socket_endpoint.rb', line 25 def bind(&block) if block_given? begin yield @socket ensure @socket.reactor = nil end else return @socket end end |
#connect(&block) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/async/io/socket_endpoint.rb', line 37 def connect(&block) if block_given? begin yield @socket ensure @socket.reactor = nil end else return @socket end end |
#to_s ⇒ Object
19 20 21 |
# File 'lib/async/io/socket_endpoint.rb', line 19 def to_s "\#<#{self.class} #{@socket.inspect}>" end |