class Coolio::Socket::Connector
Public Class Methods
new(coolio_socket, ruby_socket)
click to toggle source
Calls superclass method
Coolio::IOWatcher.new
# File lib/cool.io/socket.rb, line 59 def initialize(coolio_socket, ruby_socket) @coolio_socket, @ruby_socket = coolio_socket, ruby_socket super(ruby_socket, :w) end
Public Instance Methods
on_writable()
click to toggle source
# File lib/cool.io/socket.rb, line 64 def on_writable evl = evloop detach if connect_successful? @coolio_socket.instance_eval { @_connector = nil } @coolio_socket.attach(evl) @ruby_socket.setsockopt(::Socket::IPPROTO_TCP, ::Socket::TCP_NODELAY, [1].pack("l")) @ruby_socket.setsockopt(::Socket::SOL_SOCKET, ::Socket::SO_KEEPALIVE, true) @coolio_socket.__send__(:on_connect) else @coolio_socket.instance_eval { @_failed = true } @coolio_socket.__send__(:on_connect_failed) end end
Private Instance Methods
connect_successful?()
click to toggle source
# File lib/cool.io/socket.rb, line 85 def connect_successful? @ruby_socket.getsockopt(::Socket::SOL_SOCKET, ::Socket::SO_ERROR).unpack('i').first == 0 rescue IOError false end