Class: DripDrop::ZMQXRepHandler

Inherits:
ZMQBaseHandler show all
Includes:
ZMQReadableHandler, ZMQWritableHandler
Defined in:
lib/dripdrop/handlers/zeromq.rb

Defined Under Namespace

Classes: Response

Instance Attribute Summary

Attributes included from ZMQReadableHandler

#message_class

Attributes inherited from ZMQBaseHandler

#connection

Instance Method Summary collapse

Methods included from ZMQReadableHandler

#decode_message, #post_setup

Methods included from ZMQWritableHandler

#on_writable

Methods inherited from ZMQBaseHandler

#address, #on_recv, #post_setup

Methods inherited from BaseHandler

#handle_error, #on_error, #print_exception

Constructor Details

#initialize(*args) ⇒ ZMQXRepHandler

Returns a new instance of ZMQXRepHandler.



187
188
189
# File 'lib/dripdrop/handlers/zeromq.rb', line 187

def initialize(*args)
  super(*args)
end

Instance Method Details

#on_readable(socket, messages) ⇒ Object



191
192
193
194
195
196
197
198
199
200
201
202
# File 'lib/dripdrop/handlers/zeromq.rb', line 191

def on_readable(socket,messages)
  if @msg_format == :dripdrop
    identities = messages[0..-2].map {|m| m.copy_out_string}
    body       = messages.last.copy_out_string
    message    = decode_message(body)
    seq        = message.head[SEQ_CTR_KEY]
    response   = ZMQXRepHandler::Response.new(self, identities,seq)
    @recv_cbak.call(message,response)
  else
    super(socket,messages)
  end
end

#send_message(message, identities, seq) ⇒ Object



204
205
206
207
208
209
210
211
212
213
214
# File 'lib/dripdrop/handlers/zeromq.rb', line 204

def send_message(message,identities,seq)
  if message.is_a?(DripDrop::Message)
    message.head[SEQ_CTR_KEY] = seq
     
    resp  = identities + ['', message.encoded]
    super(resp)
  else
    resp  = identities + ['', message]
    super(resp)
  end
end