Object
![show/hide quicksearch [+]](../../images/find.png)
Session is a abstract class corresponds with a remote host. You can call remote method using call, call_async, callback or notify method.
    # File lib/msgpack/rpc/session.rb, line 25
25:         def initialize(builder, address, loop)
26:                 @address = address
27:                 @loop = loop
28:                 @reqtable = {}
29:                 @timeout = 10    # FIXME default timeout time
30:                 @seqid = 0
31:                 @transport = builder.build_transport(self, address)
32:         end
					Calls remote method. This method is same as call_async(method, *args).get
    # File lib/msgpack/rpc/session.rb, line 53
53:         def call(method, *args)
54:                 send_request(method, args).get
55:         end
					Calls remote method. This method is same as call(method, *args) excepting that the arugment is a array.
    # File lib/msgpack/rpc/session.rb, line 63
63:         def call_apply(method, params)
64:                 send_request(method, params).get
65:         end
					Calls remote method asynchronously. This method is non-blocking and returns Future.
    # File lib/msgpack/rpc/session.rb, line 72
72:         def call_async(method, *args)
73:                 future = send_request(method, args)
74:         end
					Calls remote method asynchronously. This method is same as call_async(method, *args) excepting that the arugment is a array.
    # File lib/msgpack/rpc/session.rb, line 82
82:         def call_async_apply(method, params)
83:                 future = send_request(method, params)
84:         end
					Calls remote method asynchronously. The callback method is called with Future when the result is reached. This method is same as call_async(method, *args).attach_callback {|future| }
     # File lib/msgpack/rpc/session.rb, line 102
102:         def callback(method, *args, &block)
103:                 future = send_request(method, args)
104:                 future.attach_callback(block)
105:                 future
106:         end
					Calls remote method asynchronously. The callback method is called with Future when the result is reached. This method is same as callback(method, *args).attach_callback {|future| } excepting that the argument is a array.
     # File lib/msgpack/rpc/session.rb, line 115
115:         def callback_apply(method, params, &block)
116:                 future = send_request(method, params)
117:                 future.attach_callback(block)
118:                 future
119:         end
					Closes underlaying Transport and destroy resources.
     # File lib/msgpack/rpc/session.rb, line 146
146:         def close
147:                 @transport.close
148:                 @reqtable = {}
149:                 @seqid = 0
150:                 self
151:         end
					Calls remote method with NOTIFY protocol. It doesn’t require server to return results. This method is non-blocking and returns nil.
     # File lib/msgpack/rpc/session.rb, line 127
127:         def notify(method, *args)
128:                 send_notify(method, args)
129:                 nil
130:         end
					Calls remote method with NOTIFY protocol. It doesn’t require server to return results. This method is non-blocking and returns nil. This method is same as notify(method, *args) excepting that the argument is a array.
     # File lib/msgpack/rpc/session.rb, line 140
140:         def notify_apply(method, params)
141:                 send_notify(method, params)
142:                 nil
143:         end
					
    # File lib/msgpack/rpc/session.rb, line 88
88:         def send(method, *args)
89:             if caller.first =~ /.*_test.rb/ || caller.first =~ /.*_spec.rb/ then
90:                    warn "\n Don't use send method. Use 'call_async' method."
91:             end
92:             call_async(method, *args)
93:         end
					backward compatibility
     # File lib/msgpack/rpc/session.rb, line 194
194:         def send_notify(method, param)
195:                 method = method.to_s
196:                 data = [NOTIFY, method, param].to_msgpack
197:                 @transport.send_data(data)
198:                 nil
199:         end
					
     # File lib/msgpack/rpc/session.rb, line 185
185:         def send_request(method, param)
186:                 method = method.to_s
187:                 msgid = @seqid
188:                 @seqid += 1; if @seqid >= 1<<31 then @seqid = 0 end
189:                 data = [REQUEST, msgid, method, param].to_msgpack
190:                 @transport.send_data(data)
191:                 @reqtable[msgid] = Future.new(self, @loop)
192:         end
					Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.