Object
# File lib/msgpack/rpc/transport/tcp.rb, line 62 62: def initialize(session, address, reconnect_limit) 63: @session = session 64: @address = address 65: 66: @pending = "" 67: @sockpool = [] 68: @connecting = 0 69: @reconnect_limit = reconnect_limit 70: end
ClientTransport interface
# File lib/msgpack/rpc/transport/tcp.rb, line 89 89: def close 90: @sockpool.reject! {|sock| 91: sock.detach if sock.attached? 92: sock.close 93: true 94: } 95: @sockpool = [] 96: @connecting = 0 97: @pending = "" 98: self 99: end
from TCPClientTransport::ClientSocket::on_close
# File lib/msgpack/rpc/transport/tcp.rb, line 122 122: def on_close(sock) 123: @sockpool.delete(sock) 124: end
from TCPClientTransport::ClientSocket::on_connect
# File lib/msgpack/rpc/transport/tcp.rb, line 102 102: def on_connect(sock) 103: @sockpool.push(sock) 104: sock.send_pending(@pending) 105: @pending = "" 106: @connecting = 0 107: end
from TCPClientTransport::ClientSocket::on_connect_failed
# File lib/msgpack/rpc/transport/tcp.rb, line 110 110: def on_connect_failed(sock) 111: if @connecting < @reconnect_limit 112: try_connect 113: @connecting += 1 114: else 115: @connecting = 0 116: @pending = "" 117: @session.on_connect_failed 118: end 119: end
ClientTransport interface
# File lib/msgpack/rpc/transport/tcp.rb, line 73 73: def send_data(data) 74: if @sockpool.empty? 75: if @connecting == 0 76: try_connect 77: @connecting = 1 78: end 79: @pending << data 80: else 81: # FIXME pesudo connection load balance 82: # sock = @sockpool.choice 83: sock = @sockpool.first 84: sock.send_data(data) 85: end 86: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.