Module: DripDrop::ZMQReadableHandler

Included in:
ZMQPullHandler, ZMQSubHandler, ZMQXRepHandler, ZMQXReqHandler
Defined in:
lib/dripdrop/handlers/zeromq.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#message_classObject

Returns the value of attribute message_class.



84
85
86
# File 'lib/dripdrop/handlers/zeromq.rb', line 84

def message_class
  @message_class
end

Instance Method Details

#decode_message(msg) ⇒ Object



91
92
93
# File 'lib/dripdrop/handlers/zeromq.rb', line 91

def decode_message(msg)
  @message_class.decode(msg)
end

#initialize(*args) ⇒ Object



86
87
88
89
# File 'lib/dripdrop/handlers/zeromq.rb', line 86

def initialize(*args)
  super(*args)
  @message_class = @opts[:msg_class] || DripDrop.default_message_class
end

#on_readable(socket, messages) ⇒ Object



95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/dripdrop/handlers/zeromq.rb', line 95

def on_readable(socket, messages)
  case @msg_format
  when :raw
    @recv_cbak.call(messages)
  when :dripdrop
    raise "Expected message in one part" if messages.length > 1
    body  = messages.shift.copy_out_string
    @recv_cbak.call(decode_message(body))
  else
    raise "Unknown message format '#{@msg_format}'"
  end
end