Class: DeepConnect::Event::RequestWithBlock
Instance Attribute Summary collapse
Attributes inherited from Request
#args, #method
Attributes inherited from Event
#receiver, #seq, #session
Class Method Summary
collapse
-
.materialize_sub(session, type, klass, seq, receiver_id, method, args, block) ⇒ Object
-
.receipt(session, seq, receiver, method, args, block) ⇒ Object
-
.request(session, receiver, method, args, block) ⇒ Object
Instance Method Summary
collapse
Methods inherited from Request
#create_exception, #init_req, #inspect, #reply, #reply_class, #request?, #result, #result=, #result_event, #set_seq
Methods inherited from Event
#inspect
Constructor Details
#initialize(session, receiver, method, args, block) ⇒ RequestWithBlock
Returns a new instance of RequestWithBlock.
194
195
196
197
|
# File 'lib/deep-connect/event.rb', line 194
def initialize(session, receiver, method, args, block)
super(session, receiver, method, args)
@block = block
end
|
Instance Attribute Details
Returns the value of attribute block.
199
200
201
|
# File 'lib/deep-connect/event.rb', line 199
def block
@block
end
|
Class Method Details
.materialize_sub(session, type, klass, seq, receiver_id, method, args, block) ⇒ Object
170
171
172
173
174
175
176
177
178
179
180
|
# File 'lib/deep-connect/event.rb', line 170
def self.materialize_sub(session, type, klass, seq, receiver_id, method, args, block)
receiver = receiver(session, receiver_id)
type.receipt(session, seq,
receiver,
method,
args.collect{|elm|
Reference.materialize(session.deep_space, *elm)},
Reference.materialize(session.deep_space, *block))
end
|
.receipt(session, seq, receiver, method, args, block) ⇒ Object
188
189
190
191
192
|
# File 'lib/deep-connect/event.rb', line 188
def self.receipt(session, seq, receiver, method, args, block)
rec = new(session, receiver, method, args, block)
rec.set_seq(seq)
rec
end
|
.request(session, receiver, method, args, block) ⇒ Object
182
183
184
185
186
|
# File 'lib/deep-connect/event.rb', line 182
def self.request(session, receiver, method, args, block)
req = new(session, receiver, method, args, block)
req.init_req
req
end
|
Instance Method Details
#serialize ⇒ Object
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
|
# File 'lib/deep-connect/event.rb', line 201
def serialize
mspec = method_spec(@receiver, @method)
if mspec && mspec_args(mspec)
args = mspec_arg_zip(mspec){|spec, arg|
Reference.serialize_with_spec(@session.deep_space, arg, spec)
}
else
args = @args.collect{|elm|
Reference.serialize(@session.deep_space, elm)
}
end
receiver_id = receiver_id(@receiver)
sel = [self.class, @seq, receiver_id, @method]
sel.push args
sel.push Reference.serialize(@session.deep_space, @block)
sel
end
|