Class: DeepConnect::Event::RequestWithBlock

Inherits:
Request show all
Defined in:
lib/deep-connect/event.rb

Direct Known Subclasses

IteratorCallBackRequest, IteratorRequest

Instance Attribute Summary collapse

Attributes inherited from Request

#args, #method

Attributes inherited from Event

#receiver, #seq, #session

Class Method Summary collapse

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

#blockObject (readonly)

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

#serializeObject



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)
	#	@receiver.peer_id
	sel = [self.class, @seq, receiver_id, @method]
	sel.push args
	sel.push Reference.serialize(@session.deep_space, @block)
	sel
end