Method: DBus::ObjectTree#on_message

Defined in:
lib/dbus.rb

#on_message(connection, message) ⇒ Object



334
335
336
337
338
339
340
341
342
343
344
345
346
347
# File 'lib/dbus.rb', line 334

def on_message(connection, message)
  target_object_full_path = message.get_path
  n = @base_path.length
  unless @base_path == target_object_full_path[0,n]
    @connection.send(new_error_reply(message, "Invalid target path: #{target_object_full_path}"))
    return HANDLER_RESULT_HANDLED
  end
  target_object_path = target_object_full_path[n..-1]
  target_method = message.get_member
  target_args = message.to_a
  args = [target_object_path, *target_args]
  @connection.send(dispatch(target_method, args, message))
  HANDLER_RESULT_HANDLED
end