class MaZMQ::Request
Attributes
state[R]
Public Class Methods
new()
click to toggle source
Calls superclass method
MaZMQ::SocketHandler::new
# File lib/ma-zmq/request.rb, line 5 def initialize @socket_type = ZMQ::REQ @last_try = nil @timeout = false # @cooldown super end
Public Instance Methods
on_timeout(&block)
click to toggle source
# File lib/ma-zmq/request.rb, line 61 def on_timeout(&block) return false if not @connection or block.arity != -1 @connection.on_timeout(block) end
reconnect()
click to toggle source
# File lib/ma-zmq/request.rb, line 15 def reconnect close @socket = MaZMQ::context.socket(@socket_type) @addresses.each do |zmq_address| @socket.connect zmq_address end end
recv_string()
click to toggle source
Calls superclass method
MaZMQ::SocketHandler#recv_string
# File lib/ma-zmq/request.rb, line 34 def recv_string case @state when :idle return false when :sending @last_try ||= Time.now if @timeout msg = super if msg.empty? if @timeout and (Time.now - @last_try) > @timeout @state = :timeout end else @last_try = nil if @timeout @state = :idle end return msg when :timeout return false end end
send_string(msg)
click to toggle source
Calls superclass method
MaZMQ::SocketHandler#send_string
# File lib/ma-zmq/request.rb, line 23 def send_string(msg) case @state when :idle super(msg) @state = :sending return @state else return false end end
timeout(secs)
click to toggle source
# File lib/ma-zmq/request.rb, line 57 def timeout(secs) @timeout = secs end