Class: EventMachine::Protocols::Zmq2::ReqCb

Inherits:
Req show all
Defined in:
lib/em/protocols/zmq2/req.rb

Overview

Convinient Req class which accepts callback as data

Examples:

req = EM::Protocols::Zmq2::ReqCb.new
req.bind('ipc://req')
timer = nil
request_id = req.send_request(['hello', 'world']) do |message|
  EM.cancel_timer(timer)
  puts "Message #{message}"
end
if request_id
  timer = EM.add_timer(1) {
    req.cancel_request(request_id)
  }
end

Instance Method Summary collapse

Methods inherited from Req

#flush_all_queue, #flush_queue, #initialize, #peer_free

Methods inherited from PreReq

#form_request, #initialize, #receive_message

Methods inherited from PreDealer

#choose_peer, #receive_message, #receive_message_and_peer, #send_message

Constructor Details

This class inherits a constructor from EventMachine::Protocols::Zmq2::Req

Instance Method Details

#cancel_request(request_id) ⇒ Object



265
266
267
268
# File 'lib/em/protocols/zmq2/req.rb', line 265

def cancel_request(request_id)
  callback = super
  callback.call(nil, request_id)
end

#receive_reply(message, callback, request_id) ⇒ Object



270
271
272
# File 'lib/em/protocols/zmq2/req.rb', line 270

def receive_reply(message, callback, request_id)
  callback.call(message, request_id)
end

#send_request(message, callback = nil, &block) ⇒ Object



274
275
276
# File 'lib/em/protocols/zmq2/req.rb', line 274

def send_request(message, callback = nil, &block)
  super message, callback || block
end