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.