summaryrefslogtreecommitdiff
path: root/src/components/application_manager
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/application_manager')
-rw-r--r--src/components/application_manager/CMakeLists.txt53
-rw-r--r--src/components/application_manager/include/application_manager/application.h120
-rw-r--r--src/components/application_manager/include/application_manager/application_data_impl.h49
-rw-r--r--src/components/application_manager/include/application_manager/application_impl.h27
-rw-r--r--src/components/application_manager/include/application_manager/application_manager_impl.h497
-rw-r--r--src/components/application_manager/include/application_manager/commands/command.h9
-rw-r--r--src/components/application_manager/include/application_manager/commands/command_impl.h4
-rw-r--r--src/components/application_manager/include/application_manager/commands/command_notification_from_mobile_impl.h64
-rw-r--r--src/components/application_manager/include/application_manager/commands/command_request_impl.h6
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/activate_app_request.h4
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/activate_app_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/add_statistics_info_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/allow_all_apps_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/allow_all_apps_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/allow_app_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/allow_app_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/basic_communication_system_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/basic_communication_system_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/button_get_capabilities_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/button_get_capabilities_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/close_popup_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/close_popup_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/get_system_info_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/get_system_info_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/get_urls.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/get_urls_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/mixing_audio_supported_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/mixing_audio_supported_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/navi_alert_maneuver_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/navi_alert_maneuver_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/navi_audio_start_stream_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/navi_is_ready_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/navi_is_ready_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/navi_send_location_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/navi_send_location_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/navi_show_constant_tbt_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/navi_show_constant_tbt_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/navi_start_stream_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/navi_update_turn_list_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/navi_update_turn_list_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/notification_from_hmi.h4
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_allow_sdl_functionality_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_app_activated_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_app_deactivated_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_app_permission_changed_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_app_permission_consent_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_app_registered_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_app_unregistered_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_button_event_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_button_press_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_device_chosen_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_device_state_changed_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_driver_distraction_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_exit_all_applications_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_exit_application_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_file_removed_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_find_applications.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_ignition_cycle_over_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_navi_tbt_client_state_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_play_tone_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_policy_update.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_put_file_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_ready_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_received_policy_update.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_record_start_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_resume_audio_source_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_sdl_close_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_sdl_consent_needed_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_sdl_persistence_complete_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_start_device_discovery.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_status_update_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_system_context_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_system_error_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_system_info_changed_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_system_request_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_tts_language_change_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_tts_reset_timeout_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_tts_started_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_tts_stopped_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_ui_command_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_ui_keyboard_input_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_ui_language_change_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_ui_reset_timeout_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_ui_touch_event_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_update_device_list.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_vi_acc_pedal_position_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_vi_belt_status_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_vi_body_information_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_vi_device_status_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_vi_driver_braking_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_vi_engine_torque_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_vi_external_temperature_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_vi_fuel_level_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_vi_fuel_level_state_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_vi_gps_data_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_vi_head_lamp_status_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_vi_instant_fuel_consumption_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_vi_my_key_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_vi_odometer_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_vi_prndl_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_vi_rpm_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_vi_speed_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_vi_steering_wheel_angle_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_vi_tire_pressure_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_vi_vehicle_data_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_vi_vin_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_vi_wiper_status_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_vr_command_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_vr_language_change_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_vr_started_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/on_vr_stopped_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/request_from_hmi.h21
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/request_to_hmi.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/response_from_hmi.h6
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/sdl_activate_app_request.h15
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/sdl_activate_app_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/sdl_get_list_of_permissions_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/sdl_get_list_of_permissions_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/sdl_get_status_update_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/sdl_get_status_update_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/sdl_get_user_friendly_message_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/sdl_get_user_friendly_message_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/sdl_policy_update.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/sdl_policy_update_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/tts_change_registration_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/tts_change_registration_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/tts_get_capabilities_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/tts_get_capabilities_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/tts_get_language_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/tts_get_language_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/tts_get_supported_languages_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/tts_get_supported_languages_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/tts_is_ready_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/tts_is_ready_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/tts_set_global_properties_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/tts_set_global_properties_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/tts_speak_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/tts_speak_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/tts_stop_speaking_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/tts_stop_speaking_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_add_command_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_add_command_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_add_submenu_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_add_submenu_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_alert_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_alert_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_change_registration_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_change_registration_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_delete_command_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_delete_command_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_delete_submenu_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_delete_submenu_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_end_audio_pass_thru_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_end_audio_pass_thru_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_get_capabilities_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_get_capabilities_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_get_language_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_get_language_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_get_supported_languages_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_get_supported_languages_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_is_ready_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_is_ready_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_perform_interaction_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_perform_interaction_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_scrollable_message_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_scrollable_message_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_set_app_icon_request.h72
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_set_app_icon_response.h72
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_set_display_layout_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_set_global_properties_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_set_global_properties_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_set_media_clock_timer_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_set_media_clock_timer_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_show_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_show_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_slider_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/ui_slider_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/update_app_list_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/update_app_list_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/update_device_list_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/update_device_list_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/update_sdl_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/update_sdl_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vi_diagnostic_message_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vi_diagnostic_message_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vi_get_dtcs_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vi_get_dtcs_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_request_template.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_response_template.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_type_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_type_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vi_is_ready_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vi_is_ready_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vi_read_did_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vi_read_did_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request_template.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response_template.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request_template.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response_template.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vr_add_command_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vr_add_command_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vr_change_registration_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vr_change_registration_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vr_delete_command_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vr_delete_command_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vr_get_capabilities_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vr_get_capabilities_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vr_get_language_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vr_get_language_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vr_get_supported_languages_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vr_get_supported_languages_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vr_is_ready_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vr_is_ready_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vr_perform_interaction_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/hmi/vr_perform_interaction_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/mobile/add_command_request.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/mobile/change_registration_request.h4
-rw-r--r--src/components/application_manager/include/application_manager/commands/mobile/generic_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/mobile/on_hmi_status_notification.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/mobile/on_hmi_status_notification_from_mobile.h75
-rw-r--r--src/components/application_manager/include/application_manager/commands/mobile/on_system_request_notification.h3
-rw-r--r--src/components/application_manager/include/application_manager/commands/mobile/perform_interaction_request.h15
-rw-r--r--src/components/application_manager/include/application_manager/commands/mobile/register_app_interface_request.h27
-rw-r--r--src/components/application_manager/include/application_manager/commands/mobile/scrollable_message_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/mobile/send_location_request.h3
-rw-r--r--src/components/application_manager/include/application_manager/commands/mobile/send_location_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/mobile/set_app_icon_request.h101
-rw-r--r--src/components/application_manager/include/application_manager/commands/mobile/set_app_icon_response.h73
-rw-r--r--src/components/application_manager/include/application_manager/commands/mobile/set_media_clock_timer_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/mobile/show_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/mobile/slider_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/commands/mobile/speak_response.h2
-rw-r--r--src/components/application_manager/include/application_manager/event_engine/event.h2
-rw-r--r--src/components/application_manager/include/application_manager/event_engine/event_dispatcher.h10
-rw-r--r--src/components/application_manager/include/application_manager/hmi_capabilities.h2
-rw-r--r--src/components/application_manager/include/application_manager/hmi_command_factory.h2
-rw-r--r--src/components/application_manager/include/application_manager/message.h5
-rw-r--r--src/components/application_manager/include/application_manager/message_helper.h113
-rw-r--r--src/components/application_manager/include/application_manager/mobile_command_factory.h4
-rw-r--r--src/components/application_manager/include/application_manager/mobile_message_handler.h11
-rw-r--r--src/components/application_manager/include/application_manager/policies/policy_event_observer.h10
-rw-r--r--src/components/application_manager/include/application_manager/policies/policy_handler.h170
-rw-r--r--src/components/application_manager/include/application_manager/policies/policy_handler_observer.h1
-rw-r--r--src/components/application_manager/include/application_manager/request_controller.h112
-rw-r--r--src/components/application_manager/include/application_manager/request_info.h310
-rw-r--r--src/components/application_manager/include/application_manager/resume_ctrl.h277
-rw-r--r--src/components/application_manager/include/application_manager/smart_object_keys.h8
-rw-r--r--src/components/application_manager/include/application_manager/time_metric_observer.h2
-rw-r--r--src/components/application_manager/include/application_manager/usage_statistics.h2
-rw-r--r--src/components/application_manager/src/application_data_impl.cc82
-rw-r--r--src/components/application_manager/src/application_impl.cc83
-rw-r--r--src/components/application_manager/src/application_manager_impl.cc1506
-rw-r--r--src/components/application_manager/src/commands/command_impl.cc2
-rw-r--r--src/components/application_manager/src/commands/command_notification_from_mobile_impl.cc74
-rw-r--r--src/components/application_manager/src/commands/command_request_impl.cc54
-rw-r--r--src/components/application_manager/src/commands/hmi/activate_app_request.cc21
-rw-r--r--src/components/application_manager/src/commands/hmi/activate_app_response.cc2
-rw-r--r--src/components/application_manager/src/commands/hmi/add_statistics_info_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/allow_all_apps_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/allow_all_apps_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/allow_app_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/allow_app_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/basic_communication_system_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/basic_communication_system_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/button_get_capabilities_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/button_get_capabilities_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/close_popup_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/close_popup_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/get_system_info_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/get_system_info_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/get_urls.cc53
-rw-r--r--src/components/application_manager/src/commands/hmi/get_urls_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/mixing_audio_supported_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/mixing_audio_supported_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/navi_alert_maneuver_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/navi_alert_maneuver_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/navi_audio_start_stream_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/navi_audio_start_stream_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/navi_audio_stop_stream_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/navi_audio_stop_stream_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/navi_is_ready_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/navi_is_ready_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/navi_send_location_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/navi_send_location_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/navi_show_constant_tbt_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/navi_show_constant_tbt_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/navi_start_stream_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/navi_start_stream_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/navi_stop_stream_request.cc2
-rw-r--r--src/components/application_manager/src/commands/hmi/navi_stop_stream_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/navi_update_turn_list_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/navi_update_turn_list_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/notification_from_hmi.cc10
-rw-r--r--src/components/application_manager/src/commands/hmi/on_allow_sdl_functionality_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_app_activated_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_app_deactivated_notification.cc47
-rw-r--r--src/components/application_manager/src/commands/hmi/on_app_permission_changed_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_app_permission_consent_notification.cc2
-rw-r--r--src/components/application_manager/src/commands/hmi/on_app_registered_notification.cc8
-rw-r--r--src/components/application_manager/src/commands/hmi/on_app_unregistered_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_button_event_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_button_press_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_device_chosen_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_device_state_changed_notification.cc51
-rw-r--r--src/components/application_manager/src/commands/hmi/on_driver_distraction_notification.cc16
-rw-r--r--src/components/application_manager/src/commands/hmi/on_exit_all_applications_notification.cc10
-rw-r--r--src/components/application_manager/src/commands/hmi/on_exit_application_notification.cc9
-rw-r--r--src/components/application_manager/src/commands/hmi/on_file_removed_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_find_applications.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_ignition_cycle_over_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_navi_tbt_client_state_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_phone_call_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_play_tone_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_policy_update.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_put_file_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_ready_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_received_policy_update.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_record_start_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_resume_audio_source_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_sdl_close_notification.cc2
-rw-r--r--src/components/application_manager/src/commands/hmi/on_sdl_consent_needed_notification.cc2
-rw-r--r--src/components/application_manager/src/commands/hmi/on_sdl_persistence_complete_notification.cc2
-rw-r--r--src/components/application_manager/src/commands/hmi/on_start_device_discovery.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_status_update_notification.cc2
-rw-r--r--src/components/application_manager/src/commands/hmi/on_system_context_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_system_error_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_system_info_changed_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_system_request_notification.cc10
-rw-r--r--src/components/application_manager/src/commands/hmi/on_tts_language_change_notification.cc9
-rw-r--r--src/components/application_manager/src/commands/hmi/on_tts_reset_timeout_notification.cc2
-rw-r--r--src/components/application_manager/src/commands/hmi/on_tts_started_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_tts_stopped_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_ui_command_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_ui_keyboard_input_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_ui_language_change_notification.cc9
-rw-r--r--src/components/application_manager/src/commands/hmi/on_ui_reset_timeout_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_ui_touch_event_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_update_device_list.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_vi_acc_pedal_position_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_vi_belt_status_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_vi_body_information_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_vi_device_status_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_vi_driver_braking_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_vi_engine_torque_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_vi_external_temperature_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_vi_fuel_level_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_vi_fuel_level_state_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_vi_gps_data_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_vi_head_lamp_status_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_vi_instant_fuel_consumption_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_vi_my_key_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_vi_odometer_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_vi_prndl_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_vi_rpm_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_vi_speed_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_vi_steering_wheel_angle_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_vi_tire_pressure_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_vi_vehicle_data_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_vi_vin_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_vi_wiper_status_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_vr_command_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_vr_language_change_notification.cc13
-rw-r--r--src/components/application_manager/src/commands/hmi/on_vr_started_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/on_vr_stopped_notification.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/request_from_hmi.cc22
-rw-r--r--src/components/application_manager/src/commands/hmi/request_to_hmi.cc2
-rw-r--r--src/components/application_manager/src/commands/hmi/response_from_hmi.cc5
-rw-r--r--src/components/application_manager/src/commands/hmi/sdl_activate_app_request.cc54
-rw-r--r--src/components/application_manager/src/commands/hmi/sdl_activate_app_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/sdl_get_list_of_permissions_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/sdl_get_list_of_permissions_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/sdl_get_status_update_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/sdl_get_status_update_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/sdl_get_user_friendly_message_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/sdl_get_user_friendly_message_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/sdl_policy_update.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/sdl_policy_update_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/tts_change_registration_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/tts_change_registration_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/tts_get_capabilities_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/tts_get_capabilities_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/tts_get_language_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/tts_get_language_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/tts_get_supported_languages_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/tts_get_supported_languages_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/tts_is_ready_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/tts_is_ready_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/tts_set_global_properties_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/tts_set_global_properties_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/tts_speak_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/tts_speak_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/tts_stop_speaking_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/tts_stop_speaking_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_add_command_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_add_command_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_add_submenu_request.cc2
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_add_submenu_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_alert_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_alert_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_change_registration_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_change_registration_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_delete_command_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_delete_command_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_delete_submenu_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_delete_submenu_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_end_audio_pass_thru_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_end_audio_pass_thru_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_get_capabilities_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_get_capabilities_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_get_language_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_get_language_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_get_supported_languages_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_get_supported_languages_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_is_ready_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_is_ready_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_perform_audio_pass_thru_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_perform_audio_pass_thru_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_perform_interaction_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_perform_interaction_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_scrollable_message_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_scrollable_message_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_set_app_icon_request.cc55
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_set_app_icon_response.cc57
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_set_display_layout_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_set_display_layout_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_set_global_properties_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_set_global_properties_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_set_media_clock_timer_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_set_media_clock_timer_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_show_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_show_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_slider_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/ui_slider_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/update_app_list_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/update_app_list_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/update_device_list_request.cc12
-rw-r--r--src/components/application_manager/src/commands/hmi/update_device_list_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/update_sdl_request.cc2
-rw-r--r--src/components/application_manager/src/commands/hmi/update_sdl_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/vi_diagnostic_message_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/vi_diagnostic_message_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/vi_get_dtcs_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/vi_get_dtcs_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/vi_get_vehicle_data_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/vi_get_vehicle_data_response.cc22
-rw-r--r--src/components/application_manager/src/commands/hmi/vi_get_vehicle_type_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/vi_get_vehicle_type_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/vi_is_ready_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/vi_is_ready_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/vi_read_did_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/vi_read_did_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/vi_subscribe_vehicle_data_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/vi_subscribe_vehicle_data_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/vi_unsubscribe_vehicle_data_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/vi_unsubscribe_vehicle_data_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/vr_add_command_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/vr_add_command_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/vr_change_registration_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/vr_change_registration_response.cc2
-rw-r--r--src/components/application_manager/src/commands/hmi/vr_delete_command_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/vr_delete_command_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/vr_get_capabilities_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/vr_get_capabilities_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/vr_get_language_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/vr_get_language_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/vr_get_supported_languages_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/vr_get_supported_languages_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/vr_is_ready_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/vr_is_ready_response.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/vr_perform_interaction_request.cc4
-rw-r--r--src/components/application_manager/src/commands/hmi/vr_perform_interaction_response.cc4
-rw-r--r--src/components/application_manager/src/commands/mobile/add_command_request.cc101
-rw-r--r--src/components/application_manager/src/commands/mobile/add_command_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/add_sub_menu_request.cc4
-rw-r--r--src/components/application_manager/src/commands/mobile/add_sub_menu_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/alert_maneuver_request.cc6
-rw-r--r--src/components/application_manager/src/commands/mobile/alert_maneuver_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/alert_request.cc45
-rw-r--r--src/components/application_manager/src/commands/mobile/alert_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/change_registration_request.cc19
-rw-r--r--src/components/application_manager/src/commands/mobile/change_registration_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/create_interaction_choice_set_request.cc19
-rw-r--r--src/components/application_manager/src/commands/mobile/create_interaction_choice_set_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/delete_command_request.cc4
-rw-r--r--src/components/application_manager/src/commands/mobile/delete_command_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/delete_file_request.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/delete_file_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/delete_interaction_choice_set_request.cc7
-rw-r--r--src/components/application_manager/src/commands/mobile/delete_interaction_choice_set_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/delete_sub_menu_request.cc19
-rw-r--r--src/components/application_manager/src/commands/mobile/delete_sub_menu_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/diagnostic_message_request.cc4
-rw-r--r--src/components/application_manager/src/commands/mobile/diagnostic_message_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/dial_number_request.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/end_audio_pass_thru_request.cc4
-rw-r--r--src/components/application_manager/src/commands/mobile/end_audio_pass_thru_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/get_dtcs_request.cc4
-rw-r--r--src/components/application_manager/src/commands/mobile/get_dtcs_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/get_vehicle_data_request.cc6
-rw-r--r--src/components/application_manager/src/commands/mobile/get_vehicle_data_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/list_files_request.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/list_files_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/on_app_interface_unregistered_notification.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/on_audio_pass_thru_notification.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/on_button_event_notification.cc13
-rw-r--r--src/components/application_manager/src/commands/mobile/on_button_press_notification.cc13
-rw-r--r--src/components/application_manager/src/commands/mobile/on_command_notification.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/on_driver_distraction_notification.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/on_hash_change_notification.cc14
-rw-r--r--src/components/application_manager/src/commands/mobile/on_hmi_status_notification.cc8
-rw-r--r--src/components/application_manager/src/commands/mobile/on_hmi_status_notification_from_mobile.cc81
-rw-r--r--src/components/application_manager/src/commands/mobile/on_keyboard_input_notification.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/on_language_change_notification.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/on_permissions_change_notification.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/on_system_request_notification.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/on_tbt_client_state_notification.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/on_touch_event_notification.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/on_vehicle_data_notification.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_request.cc17
-rw-r--r--src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/perform_interaction_request.cc302
-rw-r--r--src/components/application_manager/src/commands/mobile/perform_interaction_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/put_file_request.cc8
-rw-r--r--src/components/application_manager/src/commands/mobile/put_file_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/read_did_request.cc4
-rw-r--r--src/components/application_manager/src/commands/mobile/read_did_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/register_app_interface_request.cc184
-rw-r--r--src/components/application_manager/src/commands/mobile/register_app_interface_response.cc10
-rw-r--r--src/components/application_manager/src/commands/mobile/reset_global_properties_request.cc6
-rw-r--r--src/components/application_manager/src/commands/mobile/reset_global_properties_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/scrollable_message_request.cc7
-rw-r--r--src/components/application_manager/src/commands/mobile/scrollable_message_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/send_location_request.cc66
-rw-r--r--src/components/application_manager/src/commands/mobile/send_location_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/set_app_icon_request.cc235
-rw-r--r--src/components/application_manager/src/commands/mobile/set_app_icon_response.cc56
-rw-r--r--src/components/application_manager/src/commands/mobile/set_display_layout_request.cc4
-rw-r--r--src/components/application_manager/src/commands/mobile/set_display_layout_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/set_global_properties_request.cc9
-rw-r--r--src/components/application_manager/src/commands/mobile/set_global_properties_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/set_media_clock_timer_request.cc4
-rw-r--r--src/components/application_manager/src/commands/mobile/set_media_clock_timer_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/show_constant_tbt_request.cc6
-rw-r--r--src/components/application_manager/src/commands/mobile/show_constant_tbt_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/show_request.cc6
-rw-r--r--src/components/application_manager/src/commands/mobile/show_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/slider_request.cc14
-rw-r--r--src/components/application_manager/src/commands/mobile/slider_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/speak_request.cc10
-rw-r--r--src/components/application_manager/src/commands/mobile/speak_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/subscribe_button_request.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/subscribe_button_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/subscribe_vehicle_data_request.cc4
-rw-r--r--src/components/application_manager/src/commands/mobile/subscribe_vehicle_data_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/system_request.cc24
-rw-r--r--src/components/application_manager/src/commands/mobile/system_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/unregister_app_interface_request.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/unregister_app_interface_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/unsubscribe_button_request.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/unsubscribe_button_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/unsubscribe_vehicle_data_request.cc4
-rw-r--r--src/components/application_manager/src/commands/mobile/unsubscribe_vehicle_data_response.cc2
-rw-r--r--src/components/application_manager/src/commands/mobile/update_turn_list_request.cc6
-rw-r--r--src/components/application_manager/src/commands/mobile/update_turn_list_response.cc2
-rw-r--r--src/components/application_manager/src/event_engine/event.cc2
-rw-r--r--src/components/application_manager/src/event_engine/event_dispatcher.cc85
-rw-r--r--src/components/application_manager/src/hmi_capabilities.cc7
-rw-r--r--src/components/application_manager/src/hmi_command_factory.cc10
-rw-r--r--src/components/application_manager/src/message.cc2
-rw-r--r--src/components/application_manager/src/message_helper.cc715
-rw-r--r--src/components/application_manager/src/mobile_command_factory.cc15
-rw-r--r--src/components/application_manager/src/mobile_message_handler.cc34
-rw-r--r--src/components/application_manager/src/policies/policy_event_observer.cc25
-rw-r--r--src/components/application_manager/src/policies/policy_handler.cc830
-rw-r--r--src/components/application_manager/src/request_controller.cc577
-rw-r--r--src/components/application_manager/src/request_info.cc322
-rw-r--r--src/components/application_manager/src/resume_ctrl.cpp1495
-rw-r--r--src/components/application_manager/src/usage_statistics.cc2
-rw-r--r--src/components/application_manager/test/CMakeLists.txt65
-rw-r--r--src/components/application_manager/test/command_impl_test.cc43
-rw-r--r--src/components/application_manager/test/mobile_message_handler_test.cc53
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/application.h120
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/application_data_impl.h49
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/application_impl.h27
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/application_manager_impl.h81
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/command.h9
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/command_impl.h4
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/command_notification_from_mobile_impl.h64
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/command_request_impl.h6
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/activate_app_request.h4
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/activate_app_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/add_statistics_info_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/allow_all_apps_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/allow_all_apps_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/allow_app_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/allow_app_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/basic_communication_system_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/basic_communication_system_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/button_get_capabilities_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/button_get_capabilities_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/close_popup_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/close_popup_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/get_system_info_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/get_system_info_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/get_urls.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/get_urls_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/mixing_audio_supported_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/mixing_audio_supported_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_alert_maneuver_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_alert_maneuver_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_audio_start_stream_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_is_ready_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_is_ready_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_send_location_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_send_location_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_show_constant_tbt_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_show_constant_tbt_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_start_stream_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_update_turn_list_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_update_turn_list_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/notification_from_hmi.h4
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_allow_sdl_functionality_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_app_activated_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_app_deactivated_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_app_permission_changed_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_app_permission_consent_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_app_registered_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_app_unregistered_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_button_event_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_button_press_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_device_chosen_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_device_state_changed_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_driver_distraction_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_exit_all_applications_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_exit_application_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_file_removed_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_find_applications.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ignition_cycle_over_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_navi_tbt_client_state_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_play_tone_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_policy_update.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_put_file_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ready_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_received_policy_update.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_record_start_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_resume_audio_source_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_sdl_close_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_sdl_consent_needed_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_sdl_persistence_complete_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_start_device_discovery.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_status_update_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_system_context_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_system_error_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_system_info_changed_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_system_request_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_tts_language_change_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_tts_reset_timeout_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_tts_started_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_tts_stopped_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ui_command_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ui_keyboard_input_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ui_language_change_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ui_reset_timeout_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ui_touch_event_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_update_device_list.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_acc_pedal_position_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_belt_status_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_body_information_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_device_status_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_driver_braking_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_engine_torque_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_external_temperature_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_fuel_level_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_fuel_level_state_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_gps_data_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_head_lamp_status_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_instant_fuel_consumption_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_my_key_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_odometer_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_prndl_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_rpm_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_speed_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_steering_wheel_angle_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_tire_pressure_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_vehicle_data_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_vin_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_wiper_status_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vr_command_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vr_language_change_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vr_started_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vr_stopped_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/request_from_hmi.h21
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/request_to_hmi.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/response_from_hmi.h6
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_activate_app_request.h15
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_activate_app_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_get_list_of_permissions_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_get_list_of_permissions_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_get_status_update_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_get_status_update_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_get_user_friendly_message_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_get_user_friendly_message_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_policy_update.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_policy_update_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_change_registration_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_change_registration_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_get_capabilities_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_get_capabilities_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_get_language_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_get_language_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_get_supported_languages_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_get_supported_languages_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_is_ready_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_is_ready_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_set_global_properties_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_set_global_properties_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_speak_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_speak_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_stop_speaking_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_stop_speaking_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_add_command_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_add_command_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_add_submenu_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_add_submenu_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_alert_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_alert_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_change_registration_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_change_registration_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_delete_command_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_delete_command_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_delete_submenu_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_delete_submenu_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_end_audio_pass_thru_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_end_audio_pass_thru_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_get_capabilities_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_get_capabilities_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_get_language_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_get_language_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_get_supported_languages_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_get_supported_languages_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_is_ready_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_is_ready_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_perform_interaction_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_perform_interaction_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_scrollable_message_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_scrollable_message_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_app_icon_request.h72
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_app_icon_response.h72
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_display_layout_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_global_properties_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_global_properties_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_media_clock_timer_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_media_clock_timer_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_show_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_show_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_slider_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_slider_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/update_app_list_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/update_app_list_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/update_device_list_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/update_device_list_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/update_sdl_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/update_sdl_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_diagnostic_message_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_diagnostic_message_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_dtcs_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_dtcs_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_vehicle_data_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_vehicle_data_request_template.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_vehicle_data_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_vehicle_data_response_template.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_vehicle_type_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_vehicle_type_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_is_ready_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_is_ready_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_read_did_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_read_did_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request_template.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response_template.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request_template.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response_template.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_add_command_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_add_command_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_change_registration_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_change_registration_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_delete_command_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_delete_command_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_get_capabilities_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_get_capabilities_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_get_language_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_get_language_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_get_supported_languages_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_get_supported_languages_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_is_ready_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_is_ready_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_perform_interaction_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_perform_interaction_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/mobile/add_command_request.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/mobile/change_registration_request.h4
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/mobile/generic_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/mobile/on_hmi_status_notification.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/mobile/on_hmi_status_notification_from_mobile.h75
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/mobile/on_system_request_notification.h3
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/mobile/perform_interaction_request.h15
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/mobile/register_app_interface_request.h27
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/mobile/scrollable_message_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/mobile/send_location_request.h3
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/mobile/send_location_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/mobile/set_app_icon_request.h101
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/mobile/set_app_icon_response.h73
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/mobile/set_media_clock_timer_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/mobile/show_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/mobile/slider_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/commands/mobile/speak_response.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/event_engine/event.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/event_engine/event_dispatcher.h10
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/hmi_capabilities.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/hmi_command_factory.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/message.h5
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/message_helper.h105
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/mobile_command_factory.h4
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/mobile_message_handler.h11
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/policies/policy_event_observer.h10
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/policies/policy_handler.h169
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/request_controller.h112
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/request_info.h310
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/resume_ctrl.h277
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/smart_object_keys.h8
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/time_metric_observer.h2
-rw-r--r--src/components/application_manager/test/mock/include/application_manager/usage_statistics.h2
-rw-r--r--src/components/application_manager/test/request_info_test.cc240
845 files changed, 9474 insertions, 4680 deletions
diff --git a/src/components/application_manager/CMakeLists.txt b/src/components/application_manager/CMakeLists.txt
index 07d8de458e..3f05c039f9 100644
--- a/src/components/application_manager/CMakeLists.txt
+++ b/src/components/application_manager/CMakeLists.txt
@@ -1,10 +1,39 @@
-set (COMPONENTS_DIR ${CMAKE_SOURCE_DIR}/src/components)
+# Copyright (c) 2014, Ford Motor Company
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided with the
+# distribution.
+#
+# Neither the name of the Ford Motor Company nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+
set (AM_SOURCE_DIR ${COMPONENTS_DIR}/application_manager)
set (AM_TEST_DIR ${AM_SOURCE_DIR}/test)
set (AM_MOCK_DIR ${AM_TEST_DIR}/mock)
-
include_directories (
include/
${COMPONENTS_DIR}/utils/include/
@@ -18,6 +47,7 @@ include_directories (
${COMPONENTS_DIR}/request_watchdog/include/
${COMPONENTS_DIR}/resumption/include/
${COMPONENTS_DIR}/rpc_base/include/
+ ${COMPONENTS_DIR}/interfaces
${CMAKE_BINARY_DIR}/src/components/
${COMPONENTS_DIR}/include/
${COMPONENTS_DIR}/policy/src/policy/include/
@@ -35,15 +65,13 @@ file (GLOB SOURCES
set (POLICIES_MANAGER
${AM_SOURCE_DIR}/src/policies/policy_handler.cc
${AM_SOURCE_DIR}/src/policies/policy_event_observer.cc
+${AM_SOURCE_DIR}/src/policies/delegates/app_permission_delegate.cc
+${AM_SOURCE_DIR}/src/policies/delegates/statistics_delegate.cc
)
include_directories(
${COMPONENTS_DIR}/policy/src/policy/policy_table/table_struct
)
- list(APPEND POLICIES_MANAGER
- ${AM_SOURCE_DIR}/src/policies/pt_exchange_handler_impl.cc
- ${AM_SOURCE_DIR}/src/policies/policy_retry_sequence.cc
- )
file (GLOB EVENT_ENGINE
${AM_SOURCE_DIR}/src/event_engine/*
@@ -163,8 +191,8 @@ file (GLOB MOBILE_COMMANDS_SOURCES
${AM_SOURCE_DIR}/src/commands/hmi/ui_end_audio_pass_thru_response.cc
${AM_SOURCE_DIR}/src/commands/hmi/ui_perform_interaction_request.cc
${AM_SOURCE_DIR}/src/commands/hmi/ui_perform_interaction_response.cc
- ${AM_SOURCE_DIR}/src/commands/hmi/ui_set_icon_request.cc
- ${AM_SOURCE_DIR}/src/commands/hmi/ui_set_icon_response.cc
+ ${AM_SOURCE_DIR}/src/commands/hmi/ui_set_app_icon_request.cc
+ ${AM_SOURCE_DIR}/src/commands/hmi/ui_set_app_icon_response.cc
${AM_SOURCE_DIR}/src/commands/hmi/ui_set_media_clock_timer_request.cc
${AM_SOURCE_DIR}/src/commands/hmi/ui_set_media_clock_timer_response.cc
${AM_SOURCE_DIR}/src/commands/hmi/ui_show_request.cc
@@ -291,9 +319,14 @@ if (${HMI_DBUS_API})
endif (${HMI_DBUS_API})
SET (LIBRARIES
- UsageStatistics
- dl
+ HMI_API
+ MOBILE_API
+ v4_protocol_v1_2_no_extra
ProtocolLibrary
+ SmartObjects
+ UsageStatistics
+ dl
+ formatters
)
IF(${CMAKE_SYSTEM_NAME} MATCHES "QNX")
diff --git a/src/components/application_manager/include/application_manager/application.h b/src/components/application_manager/include/application_manager/application.h
index 5f1f598851..531e1fd465 100644
--- a/src/components/application_manager/include/application_manager/application.h
+++ b/src/components/application_manager/include/application_manager/application.h
@@ -1,5 +1,5 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
+/*
+ * Copyright (c) 2015, Ford Motor Company
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -36,6 +36,7 @@
#include <string>
#include <map>
#include "utils/shared_ptr.h"
+#include "utils/data_accessor.h"
#include "interfaces/MOBILE_API.h"
#include "connection_handler/device.h"
#include "application_manager/message.h"
@@ -61,7 +62,8 @@ enum APIVersion {
kAPIV0 = 0,
kAPIV1 = 1,
kAPIV2 = 2,
- kAPIV3 = 3
+ kAPIV3 = 3,
+ kAPIV4 = 4
};
enum TLimitSource {
@@ -104,7 +106,7 @@ class InitialApplicationData {
virtual const smart_objects::SmartObject* app_types() const = 0;
virtual const smart_objects::SmartObject* vr_synonyms() const = 0;
- virtual const smart_objects::SmartObject* mobile_app_id() const = 0;
+ virtual std::string mobile_app_id() const = 0;
virtual const smart_objects::SmartObject* tts_name() const = 0;
virtual const smart_objects::SmartObject* ngn_media_screen_name() const = 0;
virtual const mobile_api::Language::eType& language() const = 0;
@@ -112,8 +114,7 @@ class InitialApplicationData {
virtual void set_app_types(const smart_objects::SmartObject& app_types) = 0;
virtual void set_vr_synonyms(
const smart_objects::SmartObject& vr_synonyms) = 0;
- virtual void set_mobile_app_id(
- const smart_objects::SmartObject& mobile_app_id) = 0;
+ virtual void set_mobile_app_id(const std::string& mobile_app_id) = 0;
virtual void set_tts_name(const smart_objects::SmartObject& tts_name) = 0;
virtual void set_ngn_media_screen_name(
const smart_objects::SmartObject& ngn_name) = 0;
@@ -164,6 +165,7 @@ class DynamicApplicationData {
virtual const smart_objects::SmartObject* menu_title() const = 0;
virtual const smart_objects::SmartObject* menu_icon() const = 0;
+ virtual void load_global_properties(const smart_objects::SmartObject& so) = 0;
virtual void set_help_prompt(
const smart_objects::SmartObject& help_prompt) = 0;
virtual void set_timeout_prompt(
@@ -268,7 +270,7 @@ class DynamicApplicationData {
*
* @return ChoiceSet map that is currently in use
*/
- virtual const PerformChoiceSetMap&
+ virtual DataAccessor<PerformChoiceSetMap>
performinteraction_choice_set_map() const = 0;
/*
@@ -285,17 +287,17 @@ class DynamicApplicationData {
/*
* @brief Retrieve application commands
*/
- virtual const CommandsMap& commands_map() const = 0;
+ virtual DataAccessor<CommandsMap> commands_map() const = 0;
/*
* @brief Retrieve application sub menus
*/
- virtual const SubMenuMap& sub_menu_map() const = 0;
+ virtual DataAccessor<SubMenuMap> sub_menu_map() const = 0;
/*
* @brief Retrieve application choice set map
*/
- virtual const ChoiceSetMap& choice_set_map() const = 0;
+ virtual DataAccessor<ChoiceSetMap> choice_set_map() const = 0;
/*
* @brief Sets perform interaction state
@@ -359,6 +361,12 @@ class DynamicApplicationData {
class Application : public virtual InitialApplicationData,
public virtual DynamicApplicationData {
public:
+ enum ApplicationState {
+ kRegistered = 0,
+ kWaitingForRegistration
+ };
+
+ public:
virtual ~Application() {
}
@@ -370,41 +378,41 @@ class Application : public virtual InitialApplicationData,
virtual const smart_objects::SmartObject* active_message() const = 0;
/**
- * @brief Change Hash value and return it
- * @return next Hash value
+ * @brief returns current hash value
+ * @return current hash value
*/
- virtual uint32_t nextHash() = 0;
-
- /**
- * @brief returns cuurent hash value
- * @return current Hash value
- */
- virtual uint32_t curHash() const = 0;
+ virtual const std::string& curHash() const = 0;
/**
* @brief Change Hash for current application
* and send notification to mobile
* @return updated_hash
*/
- virtual uint32_t UpdateHash() = 0;
+ virtual void UpdateHash() = 0;
virtual void CloseActiveMessage() = 0;
virtual bool IsFullscreen() const = 0;
- virtual bool MakeFullscreen() = 0;
+ virtual void ChangeSupportingAppHMIType() = 0;
virtual bool IsAudible() const = 0;
- virtual void MakeNotAudible() = 0;
- virtual bool allowed_support_navigation() const = 0;
- virtual void set_allowed_support_navigation(bool allow) = 0;
+ virtual bool is_navi() const = 0;
+ virtual void set_is_navi(bool allow) = 0;
virtual bool hmi_supports_navi_video_streaming() const = 0;
virtual void set_hmi_supports_navi_video_streaming(bool supports) = 0;
virtual bool hmi_supports_navi_audio_streaming() const = 0;
virtual void set_hmi_supports_navi_audio_streaming(bool supports) = 0;
+ bool is_streaming_allowed() const { return can_stream_;}
+ void set_streaming_allowed(bool can_stream) { can_stream_ = can_stream;}
+ bool streaming() const {return streaming_;}
+ void set_streaming(bool can_stream) { streaming_ = can_stream;}
+
+
virtual bool is_voice_communication_supported() const = 0;
virtual void set_voice_communication_supported(
bool is_voice_communication_supported) = 0;
virtual bool app_allowed() const = 0;
virtual bool has_been_activated() const = 0;
+ virtual bool set_activated(bool is_active) = 0;
virtual const Version& version() const = 0;
virtual void set_hmi_application_id(uint32_t hmi_app_id) = 0;
@@ -539,6 +547,62 @@ class Application : public virtual InitialApplicationData,
*/
virtual bool IsAudioApplication() const = 0;
+ /**
+ * @brief IsRegistered allows to distinguish if this
+ * application has been registered.
+ *
+ * @return true if registered, false otherwise.
+ */
+ bool IsRegistered() const { return app_state_ == kRegistered;}
+
+ /**
+ * @brief MarkRegistered allows to mark application as registered.
+ */
+ void MarkRegistered() {app_state_ = kRegistered;}
+
+ /**
+ * @brief MarkUnregistered allows to mark application as unregistered.
+ */
+ void MarkUnregistered() {app_state_ = kWaitingForRegistration;}
+
+ /**
+ * @brief schemaUrl contains application's url (for 4th protocol version)
+ *
+ * @return application's url.
+ */
+ std::string SchemaUrl() const {return url_;}
+
+ /**
+ * @brief SetShemaUrl allows to store schema url for application.
+ *
+ * @param url url to store.
+ */
+ void SetShemaUrl(const std::string& url) {url_ = url;}
+
+ /**
+ * @brief packagName allows to obtain application's package name.
+ *
+ * @return pakage name.
+ */
+ std::string PackageName() const {return package_name_;}
+
+ /**
+ * @brief SetPackageName allows to store package name for application.
+ *
+ * @param packageName package name to store.
+ */
+ void SetPackageName(const std::string& packageName) {
+ package_name_ = packageName;
+ }
+
+ /**
+ * @brief GetDeviceId allows to obtain device id which posseses
+ * by this application.
+ *
+ * @return device the device id.
+ */
+ std::string GetDeviceId() const {return device_id_;}
+
protected:
// interfaces for NAVI retry sequence
@@ -548,6 +612,14 @@ class Application : public virtual InitialApplicationData,
virtual void set_audio_stream_retry_active(bool active) = 0;
virtual void OnVideoStreamRetry() = 0;
virtual void OnAudioStreamRetry() = 0;
+
+ protected:
+ ApplicationState app_state_;
+ std::string url_;
+ std::string package_name_;
+ std::string device_id_;
+ bool can_stream_;
+ bool streaming_;
};
typedef utils::SharedPtr<Application> ApplicationSharedPtr;
diff --git a/src/components/application_manager/include/application_manager/application_data_impl.h b/src/components/application_manager/include/application_manager/application_data_impl.h
index 556eee4349..9977ad6dbd 100644
--- a/src/components/application_manager/include/application_manager/application_data_impl.h
+++ b/src/components/application_manager/include/application_manager/application_data_impl.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -34,6 +34,7 @@
#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_APPLICATION_DATA_IMPL_H_
#include <string>
+#include "utils/lock.h"
#include "smart_objects/smart_object.h"
#include "application_manager/application.h"
#include "interfaces/MOBILE_API.h"
@@ -49,14 +50,14 @@ class InitialApplicationDataImpl : public virtual Application {
const smart_objects::SmartObject* app_types() const;
const smart_objects::SmartObject* vr_synonyms() const;
- const smart_objects::SmartObject* mobile_app_id() const;
+ virtual std::string mobile_app_id() const;
const smart_objects::SmartObject* tts_name() const;
const smart_objects::SmartObject* ngn_media_screen_name() const;
const mobile_api::Language::eType& language() const;
const mobile_api::Language::eType& ui_language() const;
void set_app_types(const smart_objects::SmartObject& app_types);
void set_vr_synonyms(const smart_objects::SmartObject& vr_synonyms);
- void set_mobile_app_id(const smart_objects::SmartObject& mobile_app_id);
+ void set_mobile_app_id(const std::string& mobile_app_id);
void set_tts_name(const smart_objects::SmartObject& tts_name);
void set_ngn_media_screen_name(const smart_objects::SmartObject& ngn_name);
void set_language(const mobile_api::Language::eType& language);
@@ -65,7 +66,7 @@ class InitialApplicationDataImpl : public virtual Application {
protected:
smart_objects::SmartObject* app_types_;
smart_objects::SmartObject* vr_synonyms_;
- smart_objects::SmartObject* mobile_app_id_;
+ std::string mobile_app_id_;
smart_objects::SmartObject* tts_name_;
smart_objects::SmartObject* ngn_media_screen_name_;
mobile_api::Language::eType language_;
@@ -89,6 +90,7 @@ class DynamicApplicationDataImpl : public virtual Application {
const smart_objects::SmartObject* menu_title() const;
const smart_objects::SmartObject* menu_icon() const;
+ void load_global_properties(const smart_objects::SmartObject& properties_so);
void set_help_prompt(const smart_objects::SmartObject& help_prompt);
void set_timeout_prompt(const smart_objects::SmartObject& timeout_prompt);
void set_vr_help_title(const smart_objects::SmartObject& vr_help_title);
@@ -180,7 +182,7 @@ class DynamicApplicationDataImpl : public virtual Application {
*
* @return ChoiceSet map that is currently in use
*/
- inline const PerformChoiceSetMap& performinteraction_choice_set_map() const;
+ inline DataAccessor<PerformChoiceSetMap> performinteraction_choice_set_map() const;
/*
* @brief Retrieves choice set that is currently in use by perform
@@ -196,17 +198,17 @@ class DynamicApplicationDataImpl : public virtual Application {
/*
* @brief Retrieve application commands
*/
- inline const CommandsMap& commands_map() const;
+ inline DataAccessor<CommandsMap> commands_map() const;
/*
* @brief Retrieve application sub menus
*/
- inline const SubMenuMap& sub_menu_map() const;
+ inline DataAccessor<SubMenuMap> sub_menu_map() const;
/*
* @brief Retrieve application choice set map
*/
- inline const ChoiceSetMap& choice_set_map() const;
+ inline DataAccessor<ChoiceSetMap> choice_set_map() const;
/*
* @brief Sets perform interaction state
@@ -279,27 +281,41 @@ class DynamicApplicationDataImpl : public virtual Application {
CommandsMap commands_;
+ mutable sync_primitives::Lock commands_lock_;
SubMenuMap sub_menu_;
+ mutable sync_primitives::Lock sub_menu_lock_;
ChoiceSetMap choice_set_map_;
+ mutable sync_primitives::Lock choice_set_map_lock_;
PerformChoiceSetMap performinteraction_choice_set_map_;
+ mutable sync_primitives::Lock performinteraction_choice_set_lock_;
uint32_t is_perform_interaction_active_;
uint32_t perform_interaction_ui_corrid_;
bool is_reset_global_properties_active_;
int32_t perform_interaction_mode_;
private:
+ void SetGlobalProperties(const smart_objects::SmartObject& param,
+ void (DynamicApplicationData::*callback)(
+ const NsSmartDeviceLink::NsSmartObjects::SmartObject&));
DISALLOW_COPY_AND_ASSIGN(DynamicApplicationDataImpl);
};
-const CommandsMap& DynamicApplicationDataImpl::commands_map() const {
- return commands_;
+DataAccessor<CommandsMap> DynamicApplicationDataImpl::commands_map() const {
+ return DataAccessor<CommandsMap>(commands_, commands_lock_);
}
-const SubMenuMap& DynamicApplicationDataImpl::sub_menu_map() const {
- return sub_menu_;
+DataAccessor<SubMenuMap> DynamicApplicationDataImpl::sub_menu_map() const {
+ return DataAccessor<SubMenuMap>(sub_menu_, sub_menu_lock_);
}
-const ChoiceSetMap& DynamicApplicationDataImpl::choice_set_map() const {
- return choice_set_map_;
+DataAccessor<ChoiceSetMap> DynamicApplicationDataImpl::choice_set_map() const {
+ return DataAccessor<ChoiceSetMap>(choice_set_map_, choice_set_map_lock_);
+}
+
+DataAccessor<PerformChoiceSetMap>
+DynamicApplicationDataImpl::performinteraction_choice_set_map() const {
+ return DataAccessor<PerformChoiceSetMap>(
+ performinteraction_choice_set_map_,
+ performinteraction_choice_set_lock_);
}
uint32_t DynamicApplicationDataImpl::is_perform_interaction_active() const {
@@ -314,11 +330,6 @@ bool DynamicApplicationDataImpl::is_reset_global_properties_active() const {
return is_reset_global_properties_active_;
}
-const PerformChoiceSetMap&
-DynamicApplicationDataImpl::performinteraction_choice_set_map() const {
- return performinteraction_choice_set_map_;
-}
-
inline int32_t DynamicApplicationDataImpl::perform_interaction_mode() const {
return perform_interaction_mode_;
}
diff --git a/src/components/application_manager/include/application_manager/application_impl.h b/src/components/application_manager/include/application_manager/application_impl.h
index dadfce0929..d2d39c8e10 100644
--- a/src/components/application_manager/include/application_manager/application_impl.h
+++ b/src/components/application_manager/include/application_manager/application_impl.h
@@ -1,5 +1,5 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
+/*
+ * Copyright (c) 2015, Ford Motor Company
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -70,13 +70,16 @@ class ApplicationImpl : public virtual InitialApplicationDataImpl,
const smart_objects::SmartObject* active_message() const;
void CloseActiveMessage();
bool IsFullscreen() const;
- bool MakeFullscreen();
+
+ /**
+ * @brief change supporting COMMUNICATION NAVIGATION
+ */
+ virtual void ChangeSupportingAppHMIType();
bool IsAudible() const;
- void MakeNotAudible();
// navi
- bool allowed_support_navigation() const;
- void set_allowed_support_navigation(bool allow);
+ inline bool is_navi() const { return is_navi_; }
+ void set_is_navi(bool allow);
bool hmi_supports_navi_video_streaming() const;
void set_hmi_supports_navi_video_streaming(bool supports);
bool hmi_supports_navi_audio_streaming() const;
@@ -87,6 +90,7 @@ class ApplicationImpl : public virtual InitialApplicationDataImpl,
bool is_voice_communication_supported);
inline bool app_allowed() const;
bool has_been_activated() const;
+ bool set_activated(bool is_active);
const Version& version() const;
void set_hmi_application_id(uint32_t hmi_app_id);
@@ -149,15 +153,13 @@ class ApplicationImpl : public virtual InitialApplicationDataImpl,
virtual const std::set<mobile_apis::ButtonName::eType>& SubscribedButtons() const;
virtual const std::set<uint32_t>& SubscribesIVI() const;
- virtual uint32_t nextHash();
- virtual uint32_t curHash() const;
-
+ virtual const std::string& curHash() const;
/**
* @brief Change Hash for current application
* and send notification to mobile
* @return updated_hash
*/
- virtual uint32_t UpdateHash();
+ virtual void UpdateHash();
UsageStatistics& usage_report();
@@ -198,7 +200,7 @@ class ApplicationImpl : public virtual InitialApplicationDataImpl,
void OnVideoStreamRetry();
void OnAudioStreamRetry();
- uint32_t hash_val_;
+ std::string hash_val_;
uint32_t grammar_id_;
@@ -208,7 +210,7 @@ class ApplicationImpl : public virtual InitialApplicationDataImpl,
uint32_t app_id_;
smart_objects::SmartObject* active_message_;
bool is_media_;
- bool allowed_support_navigation_;
+ bool is_navi_;
bool hmi_supports_navi_video_streaming_;
bool hmi_supports_navi_audio_streaming_;
bool is_app_allowed_;
@@ -231,7 +233,6 @@ class ApplicationImpl : public virtual InitialApplicationDataImpl,
UsageStatistics usage_report_;
ProtocolVersion protocol_version_;
bool is_voice_communication_application_;
-
// NAVI retry stream
volatile bool is_video_stream_retry_active_;
volatile bool is_audio_stream_retry_active_;
diff --git a/src/components/application_manager/include/application_manager/application_manager_impl.h b/src/components/application_manager/include/application_manager/application_manager_impl.h
index dacac9e010..3a951cfbb6 100644
--- a/src/components/application_manager/include/application_manager/application_manager_impl.h
+++ b/src/components/application_manager/include/application_manager/application_manager_impl.h
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright (c) 2014, Ford Motor Company
* All rights reserved.
*
@@ -37,22 +37,23 @@
#include <vector>
#include <map>
#include <set>
+#include <algorithm>
+
#include "application_manager/hmi_command_factory.h"
#include "application_manager/application_manager.h"
#include "application_manager/hmi_capabilities.h"
#include "application_manager/message.h"
+#include "application_manager/message_helper.h"
#include "application_manager/request_controller.h"
#include "application_manager/resume_ctrl.h"
#include "application_manager/vehicle_info_data.h"
#include "protocol_handler/protocol_observer.h"
#include "hmi_message_handler/hmi_message_observer.h"
#include "hmi_message_handler/hmi_message_sender.h"
-
+#include "application_manager/policies/policy_handler_observer.h"
#include "media_manager/media_manager_impl.h"
-
#include "connection_handler/connection_handler_observer.h"
#include "connection_handler/device.h"
-
#include "formatters/CSmartFactory.hpp"
#include "interfaces/HMI_API.h"
@@ -73,10 +74,9 @@
#include "utils/threads/message_loop_thread.h"
#include "utils/lock.h"
#include "utils/singleton.h"
+#include "utils/data_accessor.h"
+
-namespace policy {
-class PolicyManager;
-}
namespace NsSmartDeviceLink {
namespace NsSmartObjects {
@@ -163,15 +163,26 @@ typedef threads::MessageLoopThread<utils::PrioritizedQueue<MessageFromMobile> >
typedef threads::MessageLoopThread<utils::PrioritizedQueue<MessageToMobile> > ToMobileQueue;
typedef threads::MessageLoopThread<utils::PrioritizedQueue<MessageFromHmi> > FromHmiQueue;
typedef threads::MessageLoopThread<utils::PrioritizedQueue<MessageToHmi> > ToHmiQueue;
+
+// AudioPassThru
+typedef struct {
+std::vector<uint8_t> binary_data;
+int32_t session_key;
+} AudioData;
+typedef std::queue<AudioData> RawAudioDataQueue;
+typedef threads::MessageLoopThread<RawAudioDataQueue> AudioPassThruQueue;
}
+
typedef std::vector<std::string> RPCParams;
class ApplicationManagerImpl : public ApplicationManager,
public hmi_message_handler::HMIMessageObserver,
public protocol_handler::ProtocolObserver,
public connection_handler::ConnectionHandlerObserver,
+ public policy::PolicyHandlerObserver,
public impl::FromMobileQueue::Handler, public impl::ToMobileQueue::Handler,
public impl::FromHmiQueue::Handler, public impl::ToHmiQueue::Handler,
+ public impl::AudioPassThruQueue::Handler,
public utils::Singleton<ApplicationManagerImpl> {
friend class ResumeCtrl;
@@ -244,13 +255,21 @@ class ApplicationManagerImpl : public ApplicationManager,
* @param vehicle_info Enum value of type of vehicle data
* @param new value (for integer values currently) of vehicle data
*/
- std::vector<utils::SharedPtr<Application>> IviInfoUpdated(
+ std::vector<ApplicationSharedPtr> IviInfoUpdated(
VehicleDataType vehicle_info, int value);
/////////////////////////////////////////////////////
HMICapabilities& hmi_capabilities();
+ /**
+ * @brief ProcessQueryApp executes logic related to QUERY_APP system request.
+ *
+ * @param sm_object smart object wich is actually parsed json obtained within
+ * system request.
+ */
+ void ProcessQueryApp(const smart_objects::SmartObject& sm_object);
+
#ifdef TIME_TESTER
/**
* @brief Setup observer for time metric.
@@ -278,12 +297,10 @@ class ApplicationManagerImpl : public ApplicationManager,
bool is_unexpected_disconnect = false);
/**
- * @brief Unregister application revoked by Policy
+ * @brief Handle sequence for unauthorized application
* @param app_id Application id
- * @param reason Reason of unregistering application
*/
- void UnregisterRevokedApplication(const uint32_t& app_id,
- mobile_apis::Result::eType reason);
+ void OnAppUnauthorized(const uint32_t& app_id);
/*
* @brief Sets unregister reason for closing all registered applications
@@ -303,15 +320,9 @@ class ApplicationManagerImpl : public ApplicationManager,
mobile_api::AppInterfaceUnregisteredReason::eType reason);
/*
- * @brief Called by HMI on SUSPEND.
- * SDL must save all persistence data(Resume, Policy)
- */
- void HeadUnitSuspend();
-
- /*
* @brief Closes all registered applications
*/
- void UnregisterAllApplications(bool generated_by_hmi = false);
+ void UnregisterAllApplications();
bool RemoveAppDataFromHMI(ApplicationSharedPtr app);
bool LoadAppDataToHMI(ApplicationSharedPtr app);
@@ -324,7 +335,7 @@ class ApplicationManagerImpl : public ApplicationManager,
* @param app, application, that need to be puted in FULL
* @return seted HMI Level
*/
- mobile_api::HMILevel::eType PutApplicationInFull(ApplicationSharedPtr app);
+ mobile_api::HMILevel::eType IsHmiLevelFullAllowed(ApplicationSharedPtr app);
void ConnectToDevice(uint32_t id);
void OnHMIStartedCooperation();
@@ -391,6 +402,20 @@ class ApplicationManagerImpl : public ApplicationManager,
*/
void set_all_apps_allowed(const bool& allowed);
+
+ /**
+ * @brief Notification from PolicyHandler about PTU.
+ * Compares AppHMIType between saved in app and received from PTU. If they are different method sends:
+ * UI_ChangeRegistration with list new AppHMIType;
+ * ActivateApp with HMI level BACKGROUND;
+ * OnHMIStatus notification;
+ * for app with HMI level FULL or LIMITED.
+ * method sends:
+ * UI_ChangeRegistration with list new AppHMIType
+ * for app with HMI level BACKGROUND.
+ */
+ virtual void OnUpdateHMIAppType(std::map<std::string, std::vector<std::string> > app_hmi_types);
+
/*
* @brief Starts audio pass thru thread
*
@@ -412,8 +437,17 @@ class ApplicationManagerImpl : public ApplicationManager,
*/
void StopAudioPassThru(int32_t application_key);
+ /*
+ * @brief Creates AudioPassThru data chunk and inserts it
+ * to audio_pass_thru_messages_
+ *
+ * @param session_key Id of application for which
+ * audio pass thru should be sent
+ *
+ * @param binary_data AudioPassThru data chunk
+ */
void SendAudioPassThroughNotification(uint32_t session_key,
- std::vector<uint8_t> binaryData);
+ std::vector<uint8_t>& binary_data);
std::string GetDeviceName(connection_handler::DeviceHandle handle);
@@ -430,42 +464,39 @@ class ApplicationManagerImpl : public ApplicationManager,
// Put message to the queue to be sent to mobile.
// if |final_message| parameter is set connection to mobile will be closed
// after processing this message
- void SendMessageToMobile(
- const utils::SharedPtr<smart_objects::SmartObject> message,
- bool final_message = false);
+ void SendMessageToMobile(const commands::MessageSharedPtr message,
+ bool final_message = false);
+
bool ManageMobileCommand(
- const utils::SharedPtr<smart_objects::SmartObject> message);
- void SendMessageToHMI(
- const utils::SharedPtr<smart_objects::SmartObject> message);
- bool ManageHMICommand(
- const utils::SharedPtr<smart_objects::SmartObject> message);
+ const commands::MessageSharedPtr message,
+ commands::Command::CommandOrigin origin =
+ commands::Command::ORIGIN_SDL);
+ void SendMessageToHMI(const commands::MessageSharedPtr message);
+ bool ManageHMICommand(const commands::MessageSharedPtr message);
/////////////////////////////////////////////////////////
- /*
- * @brief Overriden ProtocolObserver method
- */
+ // Overriden ProtocolObserver method
virtual void OnMessageReceived(
- const ::protocol_handler::RawMessagePtr message);
-
- /*
- * @brief Overriden ProtocolObserver method
- */
+ const ::protocol_handler::RawMessagePtr message) OVERRIDE;
virtual void OnMobileMessageSent(
- const ::protocol_handler::RawMessagePtr message);
+ const ::protocol_handler::RawMessagePtr message) OVERRIDE;
- void OnMessageReceived(hmi_message_handler::MessageSharedPointer message);
- void OnErrorSending(hmi_message_handler::MessageSharedPointer message);
+ // Overriden HMIMessageObserver method
+ void OnMessageReceived(hmi_message_handler::MessageSharedPointer message) OVERRIDE;
+ void OnErrorSending(hmi_message_handler::MessageSharedPointer message) OVERRIDE;
- void OnDeviceListUpdated(const connection_handler::DeviceMap& device_list);
+ // Overriden ConnectionHandlerObserver method
+ void OnDeviceListUpdated(const connection_handler::DeviceMap& device_list) OVERRIDE;
//TODO (EZamakhov): fix all indentations in this file
- virtual void OnFindNewApplicationsRequest();
- void RemoveDevice(const connection_handler::DeviceHandle& device_handle);
+ void OnFindNewApplicationsRequest() OVERRIDE;
+ void RemoveDevice(const connection_handler::DeviceHandle& device_handle) OVERRIDE;
bool OnServiceStartedCallback(
- const connection_handler::DeviceHandle& device_handle,
- const int32_t& session_key, const protocol_handler::ServiceType& type);
+ const connection_handler::DeviceHandle& device_handle,
+ const int32_t& session_key, const protocol_handler::ServiceType& type) OVERRIDE;
void OnServiceEndedCallback(const int32_t& session_key,
- const protocol_handler::ServiceType& type);
-
+ const protocol_handler::ServiceType& type) OVERRIDE;
+ void OnApplicationFloodCallBack(const uint32_t& connection_key) OVERRIDE;
+ void OnMalformedMessageCallback(const uint32_t& connection_key) OVERRIDE;
/**
* @ Add notification to collection
*
@@ -508,6 +539,21 @@ class ApplicationManagerImpl : public ApplicationManager,
*/
void set_application_id(const int32_t correlation_id, const uint32_t app_id);
+ /**
+ * @brief AddPolicyObserver allows to subscribe needed component to events
+ * from policy.
+ *
+ * @param listener the component to subscribe.
+ */
+ void AddPolicyObserver(PolicyHandlerObserver* listener);
+
+ /**
+ * @brief RemovePolicyObserver allows to remove observer from collection.
+ *
+ * @param listener observer to remove.
+ */
+ void RemovePolicyObserver(PolicyHandlerObserver* listener);
+
/*
* @brief Change AudioStreamingState for all application according to
* system audio-mixing capabilities (NOT_AUDIBLE/ATTENUATED) and
@@ -538,6 +584,36 @@ class ApplicationManagerImpl : public ApplicationManager,
bool IsVideoStreamingAllowed(uint32_t connection_key) const;
/**
+ * @brief CanAppStream allows to check whether application is permited for
+ * data streaming.
+ *
+ * In case streaming for app is disallowed the method will send EndService to mobile.
+ *
+ * @param app_id the application id which should be checked.
+ *
+ * @return true in case streaming is allowed, false otherwise.
+ */
+ bool CanAppStream(uint32_t app_id) const;
+
+ /**
+ * @brief StreamingEnded Callback called from MediaManager when it decide that
+ * streaming has been ended
+ *
+ * @param app_id the id of application that stops stream.
+ */
+ void StreamingEnded(uint32_t app_id);
+
+ /**
+ * @brief ForbidStreaming forbid the stream over the certain application.
+ *
+ * @param app_id the application's id which should stop streaming.
+ */
+ void ForbidStreaming(uint32_t app_id);
+
+ mobile_api::HMILevel::eType GetDefaultHmiLevel(
+ ApplicationSharedPtr application) const;
+
+ /**
* Getter for resume_controller
* @return Resume Controller
*/
@@ -642,6 +718,33 @@ class ApplicationManagerImpl : public ApplicationManager,
void ResetPhoneCallAppList();
/**
+ * @brief ChangeAppsHMILevel the function that will change application's
+ * hmi level.
+ *
+ * @param app_id id of the application whose hmi level should be changed.
+ *
+ * @param level new hmi level for certain application.
+ */
+ void ChangeAppsHMILevel(uint32_t app_id, mobile_apis::HMILevel::eType level);
+
+ /**
+ * @brief MakeAppNotAudible allows to make certain application not audible.
+ *
+ * @param app_id applicatin's id whose audible state should be changed.
+ */
+ void MakeAppNotAudible(uint32_t app_id);
+
+ /**
+ * @brief MakeAppFullScreen allows ti change application's properties
+ * in order to make it full screen.
+ *
+ * @param app_id the id of application which should be in full screen mode.
+ *
+ * @return true if operation was success, false otherwise.
+ */
+ bool MakeAppFullScreen(uint32_t app_id);
+
+ /**
* Function used only by HMI request/response/notification base classes
* to change HMI app id to Mobile app id and vice versa.
* Dot use it inside Core
@@ -667,45 +770,107 @@ class ApplicationManagerImpl : public ApplicationManager,
mobile_apis::FunctionID::eType function_id,
const RPCParams& rpc_params,
CommandParametersPermissions* params_permissions = NULL);
+ /*
+ * @brief Function Should be called when Low Voltage is occured
+ */
+ void OnLowVoltage();
+
+ /*
+ * @brief Function Should be called when WakeUp occures after Low Voltage
+ */
+ void OnWakeUp();
+
+ struct ApplicationsAppIdSorter {
+ bool operator() (const ApplicationSharedPtr lhs,
+ const ApplicationSharedPtr rhs) {
+ return lhs->app_id() < rhs->app_id();
+ }
+ };
+
+ struct ApplicationsMobileAppIdSorter {
+ bool operator() (const ApplicationSharedPtr lhs,
+ const ApplicationSharedPtr rhs) {
+ return lhs->mobile_app_id() < rhs->mobile_app_id();
+ }
+ };
// typedef for Applications list
- typedef const std::set<ApplicationSharedPtr> TAppList;
+ typedef std::set<ApplicationSharedPtr,
+ ApplicationsAppIdSorter> ApplictionSet;
+
+ typedef std::set<ApplicationSharedPtr,
+ ApplicationsMobileAppIdSorter> AppsWaitRegistrationSet;
// typedef for Applications list iterator
- typedef std::set<ApplicationSharedPtr>::iterator TAppListIt;
+ typedef ApplictionSet::iterator ApplictionSetIt;
// typedef for Applications list const iterator
- typedef std::set<ApplicationSharedPtr>::const_iterator TAppListConstIt;
+ typedef ApplictionSet::const_iterator ApplictionSetConstIt;
+
/**
* Class for thread-safe access to applications list
*/
- class ApplicationListAccessor {
+ class ApplicationListAccessor: public DataAccessor<ApplictionSet> {
public:
/**
* @brief ApplicationListAccessor class constructor
*/
- ApplicationListAccessor() {
- ApplicationManagerImpl::instance()->applications_list_lock_.Acquire();
+ ApplicationListAccessor() :
+ DataAccessor<ApplictionSet>(ApplicationManagerImpl::instance()->applications_,
+ ApplicationManagerImpl::instance()->applications_list_lock_) {
}
- /**
- * @brief ApplicationListAccessor class destructor
- */
- ~ApplicationListAccessor() {
- ApplicationManagerImpl::instance()->applications_list_lock_.Release();
- }
+ ~ApplicationListAccessor();
- // TODO(VS): Now we have return application list by value, because we have
- // situations, when our process is killed without Stop method called.
- // This problem must be discussed and fixed.
/**
* @brief thread-safe getter for applications
* @return applications list
*/
- TAppList applications() {
- return ApplicationManagerImpl::instance()->application_list_;
+ const ApplictionSet& applications() const {
+ return GetData();
+ }
+
+ ApplictionSetConstIt begin() {
+ return applications().begin();
+ }
+
+ ApplictionSetConstIt end() {
+ return applications().end();
+ }
+
+ template<class UnaryPredicate>
+ ApplicationSharedPtr Find(UnaryPredicate finder) {
+ ApplicationSharedPtr result;
+ ApplictionSetConstIt it = std::find_if(begin(), end(), finder);
+ if (it != end()) {
+ result = *it;
+ }
+ return result;
+ }
+
+ template<class UnaryPredicate>
+ std::vector<ApplicationSharedPtr> FindAll(UnaryPredicate finder) {
+ std::vector<ApplicationSharedPtr> result;
+ ApplictionSetConstIt it = std::find_if(begin(), end(), finder);
+ while (it != end()) {
+ result.push_back(*it);
+ it = std::find_if(++it, end(), finder);
+ }
+ return result;
+ }
+
+ void Erase(ApplicationSharedPtr app_to_remove) {
+ ApplicationManagerImpl::instance()->applications_.erase(app_to_remove);
+ }
+
+ void Insert(ApplicationSharedPtr app_to_insert) {
+ ApplicationManagerImpl::instance()->applications_.insert(app_to_insert);
+ }
+
+ bool Empty() {
+ return ApplicationManagerImpl::instance()->applications_.empty();
}
private:
@@ -714,9 +879,68 @@ class ApplicationManagerImpl : public ApplicationManager,
friend class ApplicationListAccessor;
+ struct AppIdPredicate {
+ uint32_t app_id_;
+ AppIdPredicate(uint32_t app_id): app_id_(app_id) {}
+ bool operator () (const ApplicationSharedPtr app) const {
+ return app ? app_id_ == app->app_id() : false;
+ }
+ };
+
+ struct HmiAppIdPredicate {
+ uint32_t hmi_app_id_;
+ HmiAppIdPredicate(uint32_t hmi_app_id): hmi_app_id_(hmi_app_id) {}
+ bool operator () (const ApplicationSharedPtr app) const {
+ return app ? hmi_app_id_ == app->hmi_app_id() : false;
+ }
+ };
+
+ struct MobileAppIdPredicate {
+ std::string policy_app_id_;
+ MobileAppIdPredicate(const std::string& policy_app_id):
+ policy_app_id_(policy_app_id) {}
+ bool operator () (const ApplicationSharedPtr app) const {
+ return app ? policy_app_id_ == app->mobile_app_id() : false;
+ }
+ };
+
+ struct SubscribedToButtonPredicate {
+ mobile_apis::ButtonName::eType button_;
+ SubscribedToButtonPredicate(mobile_apis::ButtonName::eType button)
+ : button_(button) {}
+ bool operator () (const ApplicationSharedPtr app) const {
+ return app ? app->IsSubscribedToButton(button_) : false;
+ }
+ };
+
+ struct SubscribedToIVIPredicate {
+ int32_t vehicle_info_;
+ SubscribedToIVIPredicate(int32_t vehicle_info)
+ : vehicle_info_(vehicle_info) {}
+ bool operator () (const ApplicationSharedPtr app) const {
+ return app ? app->IsSubscribedToIVI(vehicle_info_) : false;
+ }
+ };
+
private:
ApplicationManagerImpl();
+ /**
+ * @brief Method transforms string to AppHMIType
+ * @param str contains string AppHMIType
+ * @return enum AppHMIType
+ */
+ mobile_apis::AppHMIType::eType StringToAppHMIType(std::string str);
+
+ /**
+ * @brief Method compares arrays of app HMI type
+ * @param from_policy contains app HMI type from policy
+ * @param from_application contains app HMI type from application
+ * @return return TRUE if arrays of appHMIType equal, otherwise return FALSE
+ */
+ bool CompareAppHMIType (const smart_objects::SmartObject& from_policy,
+ const smart_objects::SmartObject& from_application);
+
hmi_apis::HMI_API& hmi_so_factory();
mobile_apis::MOBILE_API& mobile_so_factory();
@@ -747,26 +971,154 @@ class ApplicationManagerImpl : public ApplicationManager,
// CALLED ON messages_to_hmi_ thread!
virtual void Handle(const impl::MessageToHmi message) OVERRIDE;
- void SendUpdateAppList(const std::list<uint32_t>& applications_ids);
+ // CALLED ON audio_pass_thru_messages_ thread!
+ virtual void Handle(const impl::AudioData message) OVERRIDE;
+
+ void SendUpdateAppList();
+
+ template<typename ApplicationList>
+ void PrepareApplicationListSO(ApplicationList app_list,
+ smart_objects::SmartObject& applications) {
+ CREATE_LOGGERPTR_LOCAL(logger_, "ApplicatinManagerImpl");
+
+ uint32_t app_count = 0;
+ typename ApplicationList::const_iterator it;
+ for (it = app_list.begin(); it != app_list.end(); ++it) {
+ if (!it->valid()) {
+ LOG4CXX_ERROR(logger_, "Application not found ");
+ continue;
+ }
+
+ smart_objects::SmartObject hmi_application(smart_objects::SmartType_Map);;
+ if (MessageHelper::CreateHMIApplicationStruct(*it, hmi_application)) {
+ applications[app_count++] = hmi_application;
+ } else {
+ LOG4CXX_DEBUG(logger_, "Can't CreateHMIApplicationStruct ");
+ }
+ }
+
+ if (0 == app_count) {
+ LOG4CXX_WARN(logger_, "Empty applications list");
+ }
+ }
+
void OnApplicationListUpdateTimer();
+ /**
+ * @brief CreateApplications creates aplpication adds it to application list
+ * and prepare data for sending AppIcon request.
+ *
+ * @param obj_array applications array.
+ *
+ * @param app_icon_dir application icons directory
+ *
+ * @param apps_with_icon container which store application and it's icon path.
+ */
+ void CreateApplications(smart_objects::SmartArray& obj_array);
+
/*
* @brief Function is called on IGN_OFF, Master_reset or Factory_defaults
* to notify HMI that SDL is shutting down.
*/
void SendOnSDLClose();
+ /*
+ * @brief returns true if low voltage state is active
+ */
+ bool IsLowVoltage();
+
private:
+ /**
+ * @brief OnHMILevelChanged the callback that allows SDL to react when
+ * application's HMILeval has been changed.
+ *
+ * @param app_id application identifier for which HMILevel has been chaned.
+ *
+ * @param from previous HMILevel.
+ * @param to current HMILevel.
+ */
+ void OnHMILevelChanged(uint32_t app_id,
+ mobile_apis::HMILevel::eType from,
+ mobile_apis::HMILevel::eType to);
+
+ /**
+ * @brief EndNaviServices either send EndService to mobile or proceed
+ * unregister application procedure.
+ */
+ void EndNaviServices();
+
+ /**
+ * @brief CloseNaviApp allows to unregister application in case the EndServiceEndedAck
+ * didn't come for at least one of services(audio or video).
+ */
+ void CloseNaviApp();
+
+ /**
+ * @brief AckReceived allows to distinguish if ack for appropriate service
+ * has been received (means EndServiceAck).
+ *
+ * @param type service type.
+ *
+ * @return in case EndService has been sent and appropriate ack has been
+ * received it returns true. In case no EndService for appropriate serevice type
+ * has been sent and no ack has been received it returns true as well.
+ * Otherwise it will return false.
+ *
+ */
+ bool AckReceived(protocol_handler::ServiceType type);
+
+ /**
+ * @brief NaviAppChangeLevel the callback which reacts on case when applications
+ * hmi level has been changed.
+ */
+ void NaviAppChangeLevel(mobile_apis::HMILevel::eType new_level);
+
+ /**
+ * @brief ChangeStreamStatus allows to process streaming state.
+ *
+ * @param app_id id of application whose stream state has been changed.
+ *
+ * @param can_stream streaming state if true - streaming active, if false
+ * streaming is not active.
+ */
+ void ChangeStreamStatus(uint32_t app_id, bool can_stream);
+
+ /**
+ * @brief ProcessNaviService allows to start navi service
+ *
+ * @param type service type.
+ *
+ * @param connection_key the application id.
+ */
+ bool ProcessNaviService(protocol_handler::ServiceType type, uint32_t connection_key);
+
+ /**
+ * @brief NaviAppStreamStatus allows to handle case when navi streaming state
+ * has ben changed from streaming to non streaming and vise versa.
+ *
+ * @param stream_active the stream's state - is it streams or not.
+ */
+ void NaviAppStreamStatus(bool stream_active);
+
+
+ /**
+ * @brief Function returns supported SDL Protocol Version
+ * @return protocol version depends on parameters from smartDeviceLink.ini.
+ */
+ ProtocolVersion SupportedSDLVersion() const;
+
// members
/**
* @brief List of applications
*/
- std::set<ApplicationSharedPtr> application_list_;
+ ApplictionSet applications_;
+ AppsWaitRegistrationSet apps_to_register_;
// Lock for applications list
mutable sync_primitives::Lock applications_list_lock_;
+ mutable sync_primitives::Lock apps_to_register_list_lock_;
/**
* @brief Map of correlation id and associated application id.
@@ -831,6 +1183,8 @@ class ApplicationManagerImpl : public ApplicationManager,
impl::FromHmiQueue messages_from_hmi_;
// Thread that pumps messages being passed to HMI.
impl::ToHmiQueue messages_to_hmi_;
+ // Thread that pumps messages audio pass thru to mobile.
+ impl::AudioPassThruQueue audio_pass_thru_messages_;
HMICapabilities hmi_capabilities_;
@@ -844,6 +1198,16 @@ class ApplicationManagerImpl : public ApplicationManager,
*/
ResumeCtrl resume_ctrl_;
+ // The map contains service type as a key and pair as a value.
+ // The pair meaning is: first item shows if EndService has been sent and
+ // the second one shows if appropriate ACK has been received.
+ std::map<protocol_handler::ServiceType, std::pair<bool, bool> > service_status_;
+
+ timer::TimerThread<ApplicationManagerImpl> end_services_timer;
+ uint32_t wait_end_service_timeout_;
+ uint32_t navi_app_to_stop_;
+
+
#ifdef TIME_TESTER
AMMetricObserver* metric_observer_;
#endif // TIME_TESTER
@@ -860,6 +1224,7 @@ class ApplicationManagerImpl : public ApplicationManager,
timer::TimerThread<ApplicationManagerImpl> tts_global_properties_timer_;
+ bool is_low_voltage_;
DISALLOW_COPY_AND_ASSIGN(ApplicationManagerImpl);
FRIEND_BASE_SINGLETON_CLASS(ApplicationManagerImpl);
diff --git a/src/components/application_manager/include/application_manager/commands/command.h b/src/components/application_manager/include/application_manager/commands/command.h
index 587c3d834c..742873a2c0 100644
--- a/src/components/application_manager/include/application_manager/commands/command.h
+++ b/src/components/application_manager/include/application_manager/commands/command.h
@@ -1,4 +1,4 @@
-/**
+/*
Copyright (c) 2014, Ford Motor Company
All rights reserved.
@@ -44,7 +44,6 @@ namespace application_manager {
**/
namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
-typedef utils::SharedPtr<smart_objects::SmartObject> MessageSharedPtr;
namespace commands {
@@ -108,8 +107,14 @@ class Command {
*/
virtual void onTimeOut() = 0;
+ enum CommandOrigin {
+ ORIGIN_SDL,
+ ORIGIN_MOBILE
+ };
};
+typedef smart_objects::SmartObjectSPtr MessageSharedPtr;
+
} // namespace commands
} // namespace application_manager
diff --git a/src/components/application_manager/include/application_manager/commands/command_impl.h b/src/components/application_manager/include/application_manager/commands/command_impl.h
index a34716bd62..c7b7cbb59c 100644
--- a/src/components/application_manager/include/application_manager/commands/command_impl.h
+++ b/src/components/application_manager/include/application_manager/commands/command_impl.h
@@ -1,4 +1,4 @@
-/**
+/*
Copyright (c) 2014, Ford Motor Company
All rights reserved.
@@ -121,7 +121,7 @@ class CommandImpl : public Command {
// members
static const int32_t hmi_protocol_type_;
static const int32_t mobile_protocol_type_;
- static const int32_t protocol_version_;
+ static const int32_t protocol_version_;
protected:
MessageSharedPtr message_;
diff --git a/src/components/application_manager/include/application_manager/commands/command_notification_from_mobile_impl.h b/src/components/application_manager/include/application_manager/commands/command_notification_from_mobile_impl.h
new file mode 100644
index 0000000000..9f95a52850
--- /dev/null
+++ b/src/components/application_manager/include/application_manager/commands/command_notification_from_mobile_impl.h
@@ -0,0 +1,64 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_NOTIFICATION_FROM_MOBILE_IMPL_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_NOTIFICATION_FROM_MOBILE_IMPL_H_
+
+#include "application_manager/commands/command_impl.h"
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+class SmartObject;
+}
+}
+
+namespace application_manager {
+
+namespace commands {
+
+class CommandNotificationFromMobileImpl : public CommandImpl {
+ public:
+ explicit CommandNotificationFromMobileImpl(const MessageSharedPtr& message);
+ virtual ~CommandNotificationFromMobileImpl();
+ virtual bool Init();
+ virtual bool CleanUp();
+ virtual void Run();
+ void SendNotification();
+ private:
+ DISALLOW_COPY_AND_ASSIGN(CommandNotificationFromMobileImpl);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_NOTIFICATION_FROM_MOBILE_IMPL_H_
diff --git a/src/components/application_manager/include/application_manager/commands/command_request_impl.h b/src/components/application_manager/include/application_manager/commands/command_request_impl.h
index 1bbba5aa0b..68fff9bb47 100644
--- a/src/components/application_manager/include/application_manager/commands/command_request_impl.h
+++ b/src/components/application_manager/include/application_manager/commands/command_request_impl.h
@@ -1,4 +1,4 @@
-/**
+/*
Copyright (c) 2014, Ford Motor Company
All rights reserved.
@@ -91,7 +91,7 @@ class CommandRequestImpl : public CommandImpl,
void SendResponse(const bool success,
const mobile_apis::Result::eType& result_code,
const char* info = NULL,
- const NsSmart::SmartObject* response_params = NULL);
+ const smart_objects::SmartObject* response_params = NULL);
/**
* @brief Check syntax of string from mobile
@@ -110,7 +110,7 @@ class CommandRequestImpl : public CommandImpl,
*
*/
void SendHMIRequest(const hmi_apis::FunctionID::eType& function_id,
- const NsSmart::SmartObject* msg_params = NULL,
+ const smart_objects::SmartObject* msg_params = NULL,
bool use_events = false);
/*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/activate_app_request.h b/src/components/application_manager/include/application_manager/commands/hmi/activate_app_request.h
index 3495ce1377..7d1b294c86 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/activate_app_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/activate_app_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -52,7 +52,7 @@ class ActivateAppRequest : public RequestToHMI, event_engine::EventObserver {
explicit ActivateAppRequest(const MessageSharedPtr& message);
/**
- * @brief Calback for response
+ * @brief Callback for response
*
* @param event - event response
**/
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/activate_app_response.h b/src/components/application_manager/include/application_manager/commands/hmi/activate_app_response.h
index 1df9bc095a..a15d317077 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/activate_app_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/activate_app_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/add_statistics_info_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/add_statistics_info_notification.h
index 1569af434d..1aa3b7a512 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/add_statistics_info_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/add_statistics_info_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2014, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/allow_all_apps_request.h b/src/components/application_manager/include/application_manager/commands/hmi/allow_all_apps_request.h
index 6c2db489ce..3d42b6d5a6 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/allow_all_apps_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/allow_all_apps_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/allow_all_apps_response.h b/src/components/application_manager/include/application_manager/commands/hmi/allow_all_apps_response.h
index 0eb8184fa8..ccc8d5ae7d 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/allow_all_apps_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/allow_all_apps_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/allow_app_request.h b/src/components/application_manager/include/application_manager/commands/hmi/allow_app_request.h
index 91228440a2..e90576a7df 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/allow_app_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/allow_app_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/allow_app_response.h b/src/components/application_manager/include/application_manager/commands/hmi/allow_app_response.h
index 5a24ac1a74..6bedf30a38 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/allow_app_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/allow_app_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/basic_communication_system_request.h b/src/components/application_manager/include/application_manager/commands/hmi/basic_communication_system_request.h
index d066df813e..867596f189 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/basic_communication_system_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/basic_communication_system_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/basic_communication_system_response.h b/src/components/application_manager/include/application_manager/commands/hmi/basic_communication_system_response.h
index 1948211c48..5c174eac85 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/basic_communication_system_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/basic_communication_system_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/button_get_capabilities_request.h b/src/components/application_manager/include/application_manager/commands/hmi/button_get_capabilities_request.h
index 3c9fbac684..639800a047 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/button_get_capabilities_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/button_get_capabilities_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/button_get_capabilities_response.h b/src/components/application_manager/include/application_manager/commands/hmi/button_get_capabilities_response.h
index 067954537d..7cd174477b 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/button_get_capabilities_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/button_get_capabilities_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/close_popup_request.h b/src/components/application_manager/include/application_manager/commands/hmi/close_popup_request.h
index 72ff8a2c5b..34722bc4f1 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/close_popup_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/close_popup_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/close_popup_response.h b/src/components/application_manager/include/application_manager/commands/hmi/close_popup_response.h
index 05318e3cb9..ce3a6d2936 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/close_popup_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/close_popup_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/get_system_info_request.h b/src/components/application_manager/include/application_manager/commands/hmi/get_system_info_request.h
index 8cb34718a1..8262dbb6fa 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/get_system_info_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/get_system_info_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/get_system_info_response.h b/src/components/application_manager/include/application_manager/commands/hmi/get_system_info_response.h
index f10c07c52f..70983d3ce3 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/get_system_info_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/get_system_info_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/get_urls.h b/src/components/application_manager/include/application_manager/commands/hmi/get_urls.h
index 9241446676..551ab20431 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/get_urls.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/get_urls.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/get_urls_response.h b/src/components/application_manager/include/application_manager/commands/hmi/get_urls_response.h
index 6b025142e2..956e5a788e 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/get_urls_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/get_urls_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/mixing_audio_supported_request.h b/src/components/application_manager/include/application_manager/commands/hmi/mixing_audio_supported_request.h
index 905b5b3836..2957693c9e 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/mixing_audio_supported_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/mixing_audio_supported_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/mixing_audio_supported_response.h b/src/components/application_manager/include/application_manager/commands/hmi/mixing_audio_supported_response.h
index c8bfe4e156..e2b5affe34 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/mixing_audio_supported_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/mixing_audio_supported_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/navi_alert_maneuver_request.h b/src/components/application_manager/include/application_manager/commands/hmi/navi_alert_maneuver_request.h
index 1e2a39df94..58f85f829a 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/navi_alert_maneuver_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/navi_alert_maneuver_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/navi_alert_maneuver_response.h b/src/components/application_manager/include/application_manager/commands/hmi/navi_alert_maneuver_response.h
index 41e0f623f1..11f46d5da8 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/navi_alert_maneuver_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/navi_alert_maneuver_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/navi_audio_start_stream_request.h b/src/components/application_manager/include/application_manager/commands/hmi/navi_audio_start_stream_request.h
index a321d32dd9..97de7102f7 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/navi_audio_start_stream_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/navi_audio_start_stream_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/navi_is_ready_request.h b/src/components/application_manager/include/application_manager/commands/hmi/navi_is_ready_request.h
index a31efc7fe4..e779ecb699 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/navi_is_ready_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/navi_is_ready_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/navi_is_ready_response.h b/src/components/application_manager/include/application_manager/commands/hmi/navi_is_ready_response.h
index 0fbad35154..3da6933bc3 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/navi_is_ready_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/navi_is_ready_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/navi_send_location_request.h b/src/components/application_manager/include/application_manager/commands/hmi/navi_send_location_request.h
index 9c91df648a..45474b532a 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/navi_send_location_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/navi_send_location_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/navi_send_location_response.h b/src/components/application_manager/include/application_manager/commands/hmi/navi_send_location_response.h
index 029d903192..ef9a605c36 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/navi_send_location_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/navi_send_location_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/navi_show_constant_tbt_request.h b/src/components/application_manager/include/application_manager/commands/hmi/navi_show_constant_tbt_request.h
index 5da47e580b..b866ce3e1f 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/navi_show_constant_tbt_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/navi_show_constant_tbt_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/navi_show_constant_tbt_response.h b/src/components/application_manager/include/application_manager/commands/hmi/navi_show_constant_tbt_response.h
index 4a26b26b09..3f212985f9 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/navi_show_constant_tbt_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/navi_show_constant_tbt_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/navi_start_stream_request.h b/src/components/application_manager/include/application_manager/commands/hmi/navi_start_stream_request.h
index f43b992219..5b73e2dbab 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/navi_start_stream_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/navi_start_stream_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/navi_update_turn_list_request.h b/src/components/application_manager/include/application_manager/commands/hmi/navi_update_turn_list_request.h
index 61beef1b3b..a5e2f8bf37 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/navi_update_turn_list_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/navi_update_turn_list_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/navi_update_turn_list_response.h b/src/components/application_manager/include/application_manager/commands/hmi/navi_update_turn_list_response.h
index 9e711b8be9..0e15a9175c 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/navi_update_turn_list_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/navi_update_turn_list_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/notification_from_hmi.h b/src/components/application_manager/include/application_manager/commands/hmi/notification_from_hmi.h
index 219306d375..1dcae4366d 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/notification_from_hmi.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/notification_from_hmi.h
@@ -46,7 +46,7 @@ namespace application_manager {
namespace commands {
-namespace NsSmartObj = NsSmartDeviceLink::NsSmartObjects;
+namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
class NotificationFromHMI : public CommandImpl {
public:
@@ -57,7 +57,7 @@ class NotificationFromHMI : public CommandImpl {
virtual void Run();
void SendNotificationToMobile(const MessageSharedPtr& message);
void CreateHMIRequest(const hmi_apis::FunctionID::eType& function_id,
- const NsSmartObj::SmartObject& msg_params) const;
+ const smart_objects::SmartObject& msg_params) const;
private:
DISALLOW_COPY_AND_ASSIGN(NotificationFromHMI);
};
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_allow_sdl_functionality_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_allow_sdl_functionality_notification.h
index aa549638e4..6ec14e35b0 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_allow_sdl_functionality_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_allow_sdl_functionality_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_app_activated_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_app_activated_notification.h
index a8bdeb6c91..011df3832c 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_app_activated_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_app_activated_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_app_deactivated_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_app_deactivated_notification.h
index 4c56dc4158..8731fc43f1 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_app_deactivated_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_app_deactivated_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_app_permission_changed_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_app_permission_changed_notification.h
index 034efb7a8c..c6ea82a15c 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_app_permission_changed_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_app_permission_changed_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_app_permission_consent_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_app_permission_consent_notification.h
index a5037820cc..ea36d55b39 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_app_permission_consent_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_app_permission_consent_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2014, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_app_registered_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_app_registered_notification.h
index 4364aa9a35..1ebbfcd483 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_app_registered_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_app_registered_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_app_unregistered_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_app_unregistered_notification.h
index d8470af396..96fd19e9bc 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_app_unregistered_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_app_unregistered_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_button_event_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_button_event_notification.h
index a4657ea24e..0a56d7d924 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_button_event_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_button_event_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_button_press_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_button_press_notification.h
index 065cdc4a72..ce5f1de8f1 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_button_press_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_button_press_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_device_chosen_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_device_chosen_notification.h
index e980bfe41b..17ba26b7f7 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_device_chosen_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_device_chosen_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_device_state_changed_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_device_state_changed_notification.h
index 5c12bdfd9f..b87a6e2d9f 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_device_state_changed_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_device_state_changed_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2014, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_driver_distraction_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_driver_distraction_notification.h
index 77da5cf3b2..01a87aae05 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_driver_distraction_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_driver_distraction_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_exit_all_applications_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_exit_all_applications_notification.h
index c913509e5e..65d78f60c6 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_exit_all_applications_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_exit_all_applications_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_exit_application_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_exit_application_notification.h
index b78c0e2afe..479dd3a09c 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_exit_application_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_exit_application_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_file_removed_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_file_removed_notification.h
index b6b46041f8..cc47705c82 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_file_removed_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_file_removed_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_find_applications.h b/src/components/application_manager/include/application_manager/commands/hmi/on_find_applications.h
index 2499129b2c..f9fb9cdb21 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_find_applications.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_find_applications.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_ignition_cycle_over_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_ignition_cycle_over_notification.h
index ed0638f3cc..f8fccdc382 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_ignition_cycle_over_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_ignition_cycle_over_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_navi_tbt_client_state_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_navi_tbt_client_state_notification.h
index 6e42e1a0cd..a657ffcc68 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_navi_tbt_client_state_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_navi_tbt_client_state_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_play_tone_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_play_tone_notification.h
index 8e463c3276..ceba0528fa 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_play_tone_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_play_tone_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_policy_update.h b/src/components/application_manager/include/application_manager/commands/hmi/on_policy_update.h
index f71de540e5..81278fb75a 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_policy_update.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_policy_update.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2014, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_put_file_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_put_file_notification.h
index 839af785be..bc60284309 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_put_file_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_put_file_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_ready_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_ready_notification.h
index a3e2dd731d..24fc52deac 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_ready_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_ready_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_received_policy_update.h b/src/components/application_manager/include/application_manager/commands/hmi/on_received_policy_update.h
index 38a4470d22..0eeb28218f 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_received_policy_update.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_received_policy_update.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_record_start_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_record_start_notification.h
index 81f0b5bdda..67cccdd816 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_record_start_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_record_start_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_resume_audio_source_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_resume_audio_source_notification.h
index c27e2e5ee8..03f84d0907 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_resume_audio_source_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_resume_audio_source_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2014, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_sdl_close_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_sdl_close_notification.h
index e6b4418d6d..5b9ac04e8f 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_sdl_close_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_sdl_close_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_sdl_consent_needed_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_sdl_consent_needed_notification.h
index c9b93a4dcf..4f30873e4e 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_sdl_consent_needed_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_sdl_consent_needed_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_sdl_persistence_complete_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_sdl_persistence_complete_notification.h
index 5da06ef34c..6f8f3a6e1a 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_sdl_persistence_complete_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_sdl_persistence_complete_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_start_device_discovery.h b/src/components/application_manager/include/application_manager/commands/hmi/on_start_device_discovery.h
index 3e4dc1daf4..bfa14f67fc 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_start_device_discovery.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_start_device_discovery.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_status_update_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_status_update_notification.h
index ae85d13713..c123826886 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_status_update_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_status_update_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_system_context_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_system_context_notification.h
index b16df6069e..35d6f49daa 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_system_context_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_system_context_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_system_error_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_system_error_notification.h
index cb3fc12017..ee7df7acd6 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_system_error_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_system_error_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2014, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_system_info_changed_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_system_info_changed_notification.h
index d0bcadfaac..9b6c62782c 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_system_info_changed_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_system_info_changed_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_system_request_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_system_request_notification.h
index 6e3a0eea7f..f1d25e24a4 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_system_request_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_system_request_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_tts_language_change_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_tts_language_change_notification.h
index d9b55ac0c1..79ae9b496e 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_tts_language_change_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_tts_language_change_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_tts_reset_timeout_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_tts_reset_timeout_notification.h
index 3bafc920b7..11cb755544 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_tts_reset_timeout_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_tts_reset_timeout_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_tts_started_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_tts_started_notification.h
index 8cb6256074..c7e88ac558 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_tts_started_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_tts_started_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_tts_stopped_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_tts_stopped_notification.h
index 31fb6fb31c..bf5dc7fb9e 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_tts_stopped_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_tts_stopped_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_ui_command_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_ui_command_notification.h
index 1d0aaf3078..b4a0228c78 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_ui_command_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_ui_command_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_ui_keyboard_input_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_ui_keyboard_input_notification.h
index bb0a6a72d3..77b771065b 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_ui_keyboard_input_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_ui_keyboard_input_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_ui_language_change_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_ui_language_change_notification.h
index 85b8f60c4d..bcb661c89d 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_ui_language_change_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_ui_language_change_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_ui_reset_timeout_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_ui_reset_timeout_notification.h
index 511606d077..f97c8768b5 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_ui_reset_timeout_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_ui_reset_timeout_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_ui_touch_event_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_ui_touch_event_notification.h
index 3231d1ca29..6d8005e12f 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_ui_touch_event_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_ui_touch_event_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_update_device_list.h b/src/components/application_manager/include/application_manager/commands/hmi/on_update_device_list.h
index c0d355c925..f56d01a5cc 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_update_device_list.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_update_device_list.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_acc_pedal_position_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_acc_pedal_position_notification.h
index 04bb3e54bc..d591ab2be6 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_acc_pedal_position_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_acc_pedal_position_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_belt_status_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_belt_status_notification.h
index 3cfb048cdc..f901462fdf 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_belt_status_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_belt_status_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_body_information_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_body_information_notification.h
index b9ecf5a34b..a0bc31778a 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_body_information_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_body_information_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_device_status_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_device_status_notification.h
index 925989e8c6..0e24616f3e 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_device_status_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_device_status_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_driver_braking_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_driver_braking_notification.h
index 7baea90651..0290388756 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_driver_braking_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_driver_braking_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_engine_torque_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_engine_torque_notification.h
index 33dd824c6e..8307e5359e 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_engine_torque_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_engine_torque_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_external_temperature_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_external_temperature_notification.h
index 207302a373..be5b086853 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_external_temperature_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_external_temperature_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_fuel_level_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_fuel_level_notification.h
index 535758db25..83e6f845e0 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_fuel_level_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_fuel_level_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_fuel_level_state_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_fuel_level_state_notification.h
index 92dffd89b3..42a6b8e0d9 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_fuel_level_state_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_fuel_level_state_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_gps_data_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_gps_data_notification.h
index d8f2a768fc..01c2cf60b6 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_gps_data_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_gps_data_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_head_lamp_status_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_head_lamp_status_notification.h
index 47802e97eb..dc80b33ddd 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_head_lamp_status_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_head_lamp_status_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_instant_fuel_consumption_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_instant_fuel_consumption_notification.h
index fe38412980..c4e5accead 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_instant_fuel_consumption_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_instant_fuel_consumption_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_my_key_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_my_key_notification.h
index d636b6e779..e2d9d91ae1 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_my_key_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_my_key_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_odometer_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_odometer_notification.h
index 1cf4c25878..7c1c691ac5 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_odometer_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_odometer_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_prndl_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_prndl_notification.h
index 5a3a136374..bf2ca83f8f 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_prndl_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_prndl_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_rpm_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_rpm_notification.h
index 80dea2a6e2..ebcfe3a86c 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_rpm_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_rpm_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_speed_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_speed_notification.h
index 19bffabf4f..37bf66e4d0 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_speed_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_speed_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_steering_wheel_angle_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_steering_wheel_angle_notification.h
index 0826cb6c6f..bf01b2bf76 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_steering_wheel_angle_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_steering_wheel_angle_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_tire_pressure_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_tire_pressure_notification.h
index ba8eceefc3..1c1e00d893 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_tire_pressure_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_tire_pressure_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_vehicle_data_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_vehicle_data_notification.h
index 30ad9d6acc..59da271a04 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_vehicle_data_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_vehicle_data_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_vin_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_vin_notification.h
index 0cb5fb17d2..06b73c508d 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_vin_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_vin_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_wiper_status_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_wiper_status_notification.h
index c7a1a6bd62..399b38112e 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_vi_wiper_status_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_vi_wiper_status_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_vr_command_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_vr_command_notification.h
index 677bc26727..37bc2556f8 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_vr_command_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_vr_command_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_vr_language_change_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_vr_language_change_notification.h
index 24c60c32d9..be408f0aa0 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_vr_language_change_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_vr_language_change_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_vr_started_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_vr_started_notification.h
index cc78f010b6..5ae5ace27b 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_vr_started_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_vr_started_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/on_vr_stopped_notification.h b/src/components/application_manager/include/application_manager/commands/hmi/on_vr_stopped_notification.h
index 2ee8ad429e..311ee8acde 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/on_vr_stopped_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/on_vr_stopped_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/request_from_hmi.h b/src/components/application_manager/include/application_manager/commands/hmi/request_from_hmi.h
index 39ebd95819..31dabf7617 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/request_from_hmi.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/request_from_hmi.h
@@ -1,4 +1,4 @@
- /**
+ /*
Copyright (c) 2014, Ford Motor Company
All rights reserved.
@@ -48,14 +48,29 @@
namespace NsSmart = NsSmartDeviceLink::NsSmartObjects;
- class RequestFromHMI : public CommandImpl {
+ class RequestFromHMI : public CommandImpl, public event_engine::EventObserver {
public:
explicit RequestFromHMI(const MessageSharedPtr& message);
virtual ~RequestFromHMI();
virtual bool Init();
virtual bool CleanUp();
virtual void Run();
-
+ virtual void on_event(const event_engine::Event& event);
+ /**
+ * @brief SendResponse allows to send response to hmi
+ *
+ * @param success the response result.
+ *
+ * @param correlation_id the correlation id for the rfesponse.
+ *
+ * @param function_id the function id for which response will be sent
+ *
+ * @param result_code the result code.
+ */
+ void SendResponse(bool success,
+ uint32_t correlation_id,
+ hmi_apis::FunctionID::eType function_id,
+ hmi_apis::Common_Result::eType result_code);
private:
DISALLOW_COPY_AND_ASSIGN(RequestFromHMI);
};
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/request_to_hmi.h b/src/components/application_manager/include/application_manager/commands/hmi/request_to_hmi.h
index 3a9de4b7b5..fe359182dd 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/request_to_hmi.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/request_to_hmi.h
@@ -1,4 +1,4 @@
-/**
+/*
Copyright (c) 2014, Ford Motor Company
All rights reserved.
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/response_from_hmi.h b/src/components/application_manager/include/application_manager/commands/hmi/response_from_hmi.h
index 21497a1335..7769caa0a7 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/response_from_hmi.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/response_from_hmi.h
@@ -1,4 +1,4 @@
-/**
+/*
Copyright (c) 2014, Ford Motor Company
All rights reserved.
@@ -46,7 +46,7 @@ namespace application_manager {
namespace commands {
-namespace NsSmart = NsSmartDeviceLink::NsSmartObjects;
+namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
class ResponseFromHMI : public CommandImpl {
public:
@@ -64,7 +64,7 @@ class ResponseFromHMI : public CommandImpl {
* @param msg_params HMI request msg params
*/
void CreateHMIRequest(const hmi_apis::FunctionID::eType& function_id,
- const NsSmart::SmartObject& msg_params) const;
+ const smart_objects::SmartObject& msg_params) const;
private:
DISALLOW_COPY_AND_ASSIGN(ResponseFromHMI);
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/sdl_activate_app_request.h b/src/components/application_manager/include/application_manager/commands/hmi/sdl_activate_app_request.h
index db4a93b0b5..77960e5f60 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/sdl_activate_app_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/sdl_activate_app_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -61,7 +61,20 @@ class SDLActivateAppRequest : public RequestFromHMI {
**/
virtual void Run();
+ /**
+ * @brief onTimeOut allows to process case when timeout has appeared
+ * during request execution.
+ */
+ virtual void onTimeOut();
+
+ /**
+ * @brief on_event allows to handle events
+ *
+ * @param event event type that current request subscribed on.
+ */
+ virtual void on_event(const event_engine::Event& event);
private:
+ uint32_t app_id() const;
DISALLOW_COPY_AND_ASSIGN(SDLActivateAppRequest);
};
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/sdl_activate_app_response.h b/src/components/application_manager/include/application_manager/commands/hmi/sdl_activate_app_response.h
index 63adc6c0d3..bf0789e60e 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/sdl_activate_app_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/sdl_activate_app_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/sdl_get_list_of_permissions_request.h b/src/components/application_manager/include/application_manager/commands/hmi/sdl_get_list_of_permissions_request.h
index 5da473b1a7..7c8f10529b 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/sdl_get_list_of_permissions_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/sdl_get_list_of_permissions_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/sdl_get_list_of_permissions_response.h b/src/components/application_manager/include/application_manager/commands/hmi/sdl_get_list_of_permissions_response.h
index 5de9fc0ea8..452784d92c 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/sdl_get_list_of_permissions_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/sdl_get_list_of_permissions_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/sdl_get_status_update_request.h b/src/components/application_manager/include/application_manager/commands/hmi/sdl_get_status_update_request.h
index a098e0a113..cb7d37d336 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/sdl_get_status_update_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/sdl_get_status_update_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/sdl_get_status_update_response.h b/src/components/application_manager/include/application_manager/commands/hmi/sdl_get_status_update_response.h
index 6299cde630..a3fc0862b5 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/sdl_get_status_update_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/sdl_get_status_update_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/sdl_get_user_friendly_message_request.h b/src/components/application_manager/include/application_manager/commands/hmi/sdl_get_user_friendly_message_request.h
index b729a16170..96f46cfa3d 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/sdl_get_user_friendly_message_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/sdl_get_user_friendly_message_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/sdl_get_user_friendly_message_response.h b/src/components/application_manager/include/application_manager/commands/hmi/sdl_get_user_friendly_message_response.h
index bb7a7f8e20..4cf7be56c9 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/sdl_get_user_friendly_message_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/sdl_get_user_friendly_message_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/sdl_policy_update.h b/src/components/application_manager/include/application_manager/commands/hmi/sdl_policy_update.h
index ee2b9865c8..481f37a257 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/sdl_policy_update.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/sdl_policy_update.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/sdl_policy_update_response.h b/src/components/application_manager/include/application_manager/commands/hmi/sdl_policy_update_response.h
index b6ab925fd6..d3f7105523 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/sdl_policy_update_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/sdl_policy_update_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/tts_change_registration_request.h b/src/components/application_manager/include/application_manager/commands/hmi/tts_change_registration_request.h
index a587af950b..a25309e5d5 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/tts_change_registration_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/tts_change_registration_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/tts_change_registration_response.h b/src/components/application_manager/include/application_manager/commands/hmi/tts_change_registration_response.h
index 3a9e9fda51..73ad180286 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/tts_change_registration_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/tts_change_registration_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/tts_get_capabilities_request.h b/src/components/application_manager/include/application_manager/commands/hmi/tts_get_capabilities_request.h
index 73edd9de73..543945e8ef 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/tts_get_capabilities_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/tts_get_capabilities_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/tts_get_capabilities_response.h b/src/components/application_manager/include/application_manager/commands/hmi/tts_get_capabilities_response.h
index 71f85d68e3..2fc16d1a40 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/tts_get_capabilities_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/tts_get_capabilities_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/tts_get_language_request.h b/src/components/application_manager/include/application_manager/commands/hmi/tts_get_language_request.h
index 94e38ec473..e0ae0da0c4 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/tts_get_language_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/tts_get_language_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/tts_get_language_response.h b/src/components/application_manager/include/application_manager/commands/hmi/tts_get_language_response.h
index bd67d64f32..0d9df07ae6 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/tts_get_language_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/tts_get_language_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/tts_get_supported_languages_request.h b/src/components/application_manager/include/application_manager/commands/hmi/tts_get_supported_languages_request.h
index ff80dd2389..136edbb5f4 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/tts_get_supported_languages_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/tts_get_supported_languages_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/tts_get_supported_languages_response.h b/src/components/application_manager/include/application_manager/commands/hmi/tts_get_supported_languages_response.h
index 244f223460..38e3c673bb 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/tts_get_supported_languages_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/tts_get_supported_languages_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/tts_is_ready_request.h b/src/components/application_manager/include/application_manager/commands/hmi/tts_is_ready_request.h
index dc58d852ea..676faabc01 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/tts_is_ready_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/tts_is_ready_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/tts_is_ready_response.h b/src/components/application_manager/include/application_manager/commands/hmi/tts_is_ready_response.h
index 375e5a5d1f..12bb3bb870 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/tts_is_ready_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/tts_is_ready_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/tts_set_global_properties_request.h b/src/components/application_manager/include/application_manager/commands/hmi/tts_set_global_properties_request.h
index b398e0b2d2..92a260d77f 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/tts_set_global_properties_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/tts_set_global_properties_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/tts_set_global_properties_response.h b/src/components/application_manager/include/application_manager/commands/hmi/tts_set_global_properties_response.h
index adf0b70276..0766decf9f 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/tts_set_global_properties_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/tts_set_global_properties_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/tts_speak_request.h b/src/components/application_manager/include/application_manager/commands/hmi/tts_speak_request.h
index 326c638f4d..f5555f6495 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/tts_speak_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/tts_speak_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/tts_speak_response.h b/src/components/application_manager/include/application_manager/commands/hmi/tts_speak_response.h
index e22c549871..541ea0d2ab 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/tts_speak_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/tts_speak_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/tts_stop_speaking_request.h b/src/components/application_manager/include/application_manager/commands/hmi/tts_stop_speaking_request.h
index 0d82121fd7..46c464425d 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/tts_stop_speaking_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/tts_stop_speaking_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/tts_stop_speaking_response.h b/src/components/application_manager/include/application_manager/commands/hmi/tts_stop_speaking_response.h
index b9055bfbe5..aab8ca8c5b 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/tts_stop_speaking_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/tts_stop_speaking_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_add_command_request.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_add_command_request.h
index ffd6eeeefd..6b857818e7 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_add_command_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_add_command_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_add_command_response.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_add_command_response.h
index f84b71d0f1..c6a02fdd03 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_add_command_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_add_command_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_add_submenu_request.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_add_submenu_request.h
index 1227de0463..bba9a4c47e 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_add_submenu_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_add_submenu_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_add_submenu_response.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_add_submenu_response.h
index 1b3a10729e..0c4afc2fa3 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_add_submenu_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_add_submenu_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_alert_request.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_alert_request.h
index 7395eb19e1..72cd733eb5 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_alert_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_alert_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_alert_response.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_alert_response.h
index 1d17d98095..97eb2ba94b 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_alert_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_alert_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_change_registration_request.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_change_registration_request.h
index 51276b7b0f..8e68dee2ec 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_change_registration_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_change_registration_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_change_registration_response.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_change_registration_response.h
index edb7574e8d..50b092639b 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_change_registration_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_change_registration_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_command_request.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_command_request.h
index 398f78c28f..9eceb2eb6f 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_command_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_command_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_command_response.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_command_response.h
index bb19811908..c4d7ab6cac 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_command_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_command_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_submenu_request.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_submenu_request.h
index 1b3747234b..24bf5878ff 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_submenu_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_submenu_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_submenu_response.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_submenu_response.h
index 8bbab99468..05d77c82d7 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_submenu_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_submenu_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_end_audio_pass_thru_request.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_end_audio_pass_thru_request.h
index 9e8e11c1ad..06637fc8d4 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_end_audio_pass_thru_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_end_audio_pass_thru_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_end_audio_pass_thru_response.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_end_audio_pass_thru_response.h
index 740fc5501d..6d5594f69f 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_end_audio_pass_thru_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_end_audio_pass_thru_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_get_capabilities_request.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_get_capabilities_request.h
index 2d0469d6a6..ad9a566078 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_get_capabilities_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_get_capabilities_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_get_capabilities_response.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_get_capabilities_response.h
index dc6052e049..ce6ad6f7ef 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_get_capabilities_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_get_capabilities_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_get_language_request.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_get_language_request.h
index 4fca4826be..7371cd1031 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_get_language_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_get_language_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_get_language_response.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_get_language_response.h
index ea43e3856d..f6536452ce 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_get_language_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_get_language_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_get_supported_languages_request.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_get_supported_languages_request.h
index cc0e70feae..d0975e68da 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_get_supported_languages_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_get_supported_languages_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_get_supported_languages_response.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_get_supported_languages_response.h
index 15e400687f..c888c7b208 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_get_supported_languages_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_get_supported_languages_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_is_ready_request.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_is_ready_request.h
index 5e2cb7ef9f..7cb4287244 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_is_ready_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_is_ready_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_is_ready_response.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_is_ready_response.h
index bc7210f2a8..64106654e9 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_is_ready_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_is_ready_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_request.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_request.h
index 94bc4827a9..69566324f2 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_response.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_response.h
index 04afedfba0..c3283101f9 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_interaction_request.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_interaction_request.h
index 0d63139437..d8e2f6c682 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_interaction_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_interaction_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_interaction_response.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_interaction_response.h
index 32a87c73c2..04286897a3 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_interaction_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_interaction_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_scrollable_message_request.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_scrollable_message_request.h
index 6f23d3b21c..06bfadbae7 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_scrollable_message_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_scrollable_message_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_scrollable_message_response.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_scrollable_message_response.h
index 7bf15a0511..6d6d09c313 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_scrollable_message_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_scrollable_message_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_set_app_icon_request.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_set_app_icon_request.h
new file mode 100644
index 0000000000..96f91d0f82
--- /dev/null
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_set_app_icon_request.h
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_ICON_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_ICON_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UISetIconRequest command class
+ **/
+class UISetAppIconRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief UISetIconRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UISetAppIconRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief UISetIconRequest class destructor
+ **/
+ virtual ~UISetAppIconRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UISetAppIconRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_ICON_REQUEST_H_
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_set_app_icon_response.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_set_app_icon_response.h
new file mode 100644
index 0000000000..b323a91c36
--- /dev/null
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_set_app_icon_response.h
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_ICON_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_ICON_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UISetIconResponse command class
+ **/
+class UISetAppIconResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief UISetIconResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UISetAppIconResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief UISetIconResponse class destructor
+ **/
+ virtual ~UISetAppIconResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UISetAppIconResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_ICON_RESPONSE_H_
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_set_display_layout_response.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_set_display_layout_response.h
index 74df2030e5..3e7a898af0 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_set_display_layout_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_set_display_layout_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_set_global_properties_request.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_set_global_properties_request.h
index f3f7d0e733..8b54e85332 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_set_global_properties_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_set_global_properties_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_set_global_properties_response.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_set_global_properties_response.h
index bc00397e37..b3cb38d49f 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_set_global_properties_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_set_global_properties_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_set_media_clock_timer_request.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_set_media_clock_timer_request.h
index 44cbbbfcf9..443fc8d1a7 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_set_media_clock_timer_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_set_media_clock_timer_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_set_media_clock_timer_response.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_set_media_clock_timer_response.h
index dd46f128d9..9358707117 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_set_media_clock_timer_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_set_media_clock_timer_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_show_request.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_show_request.h
index 6f22263e61..136a99622b 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_show_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_show_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_show_response.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_show_response.h
index a6391fa6c9..4a9b49253e 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_show_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_show_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_slider_request.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_slider_request.h
index 5cb31b4a95..8a3b37bfef 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_slider_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_slider_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/ui_slider_response.h b/src/components/application_manager/include/application_manager/commands/hmi/ui_slider_response.h
index aae5408e21..2384f248aa 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/ui_slider_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/ui_slider_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/update_app_list_request.h b/src/components/application_manager/include/application_manager/commands/hmi/update_app_list_request.h
index d2307232e3..b606134409 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/update_app_list_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/update_app_list_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/update_app_list_response.h b/src/components/application_manager/include/application_manager/commands/hmi/update_app_list_response.h
index 3e6a1d78a2..135481cb0b 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/update_app_list_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/update_app_list_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/update_device_list_request.h b/src/components/application_manager/include/application_manager/commands/hmi/update_device_list_request.h
index e9a32e9fc4..f645d312c5 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/update_device_list_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/update_device_list_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/update_device_list_response.h b/src/components/application_manager/include/application_manager/commands/hmi/update_device_list_response.h
index d4191c8bee..6ea2c1e528 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/update_device_list_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/update_device_list_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/update_sdl_request.h b/src/components/application_manager/include/application_manager/commands/hmi/update_sdl_request.h
index 506c137861..f84f93f2ed 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/update_sdl_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/update_sdl_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/update_sdl_response.h b/src/components/application_manager/include/application_manager/commands/hmi/update_sdl_response.h
index 729483cfa1..b0d370ecfd 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/update_sdl_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/update_sdl_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vi_diagnostic_message_request.h b/src/components/application_manager/include/application_manager/commands/hmi/vi_diagnostic_message_request.h
index 90e1e145c2..c60533d2ea 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vi_diagnostic_message_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vi_diagnostic_message_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vi_diagnostic_message_response.h b/src/components/application_manager/include/application_manager/commands/hmi/vi_diagnostic_message_response.h
index f332a32812..027e007e42 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vi_diagnostic_message_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vi_diagnostic_message_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vi_get_dtcs_request.h b/src/components/application_manager/include/application_manager/commands/hmi/vi_get_dtcs_request.h
index 93f046d7d6..170eb895fd 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vi_get_dtcs_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vi_get_dtcs_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vi_get_dtcs_response.h b/src/components/application_manager/include/application_manager/commands/hmi/vi_get_dtcs_response.h
index 9ee7fac44a..3ba4656d5b 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vi_get_dtcs_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vi_get_dtcs_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_request.h b/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_request.h
index 9cb964981c..7413b6bf3b 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_request_template.h b/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_request_template.h
index 951bf0c334..af991186fd 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_request_template.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_request_template.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_response.h b/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_response.h
index 952b0fb4d3..1f9736b56a 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_response_template.h b/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_response_template.h
index ecd465365a..156664cac3 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_response_template.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_response_template.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_type_request.h b/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_type_request.h
index 876f7d2e55..67d8ae046c 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_type_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_type_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_type_response.h b/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_type_response.h
index 8b632182f0..b36b193418 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_type_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_type_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vi_is_ready_request.h b/src/components/application_manager/include/application_manager/commands/hmi/vi_is_ready_request.h
index e905cf4c09..061681029a 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vi_is_ready_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vi_is_ready_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vi_is_ready_response.h b/src/components/application_manager/include/application_manager/commands/hmi/vi_is_ready_response.h
index e13e368b34..52e00f85da 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vi_is_ready_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vi_is_ready_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vi_read_did_request.h b/src/components/application_manager/include/application_manager/commands/hmi/vi_read_did_request.h
index 336ad4443a..6520db5e7d 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vi_read_did_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vi_read_did_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vi_read_did_response.h b/src/components/application_manager/include/application_manager/commands/hmi/vi_read_did_response.h
index af66505174..0855be454b 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vi_read_did_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vi_read_did_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request.h b/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request.h
index ef14a05f2d..1eb06c6217 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request_template.h b/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request_template.h
index bcfa2f6f1a..fc9b7dd2ea 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request_template.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request_template.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response.h b/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response.h
index 057fd52e13..b5e2788f32 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response_template.h b/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response_template.h
index 740d8c386a..64f3c51cbc 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response_template.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response_template.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request.h b/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request.h
index 18d118fadb..1320ae477a 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request_template.h b/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request_template.h
index d604d4d536..9aa529d407 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request_template.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request_template.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response.h b/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response.h
index b71b8241f5..8818709afe 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response_template.h b/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response_template.h
index 8730cc0361..3dfcc763cb 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response_template.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response_template.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vr_add_command_request.h b/src/components/application_manager/include/application_manager/commands/hmi/vr_add_command_request.h
index 3675cfb153..9fdc3f776f 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vr_add_command_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vr_add_command_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vr_add_command_response.h b/src/components/application_manager/include/application_manager/commands/hmi/vr_add_command_response.h
index 328e8a2058..7418ed5865 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vr_add_command_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vr_add_command_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vr_change_registration_request.h b/src/components/application_manager/include/application_manager/commands/hmi/vr_change_registration_request.h
index 5e69b4c18b..53584ee970 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vr_change_registration_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vr_change_registration_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vr_change_registration_response.h b/src/components/application_manager/include/application_manager/commands/hmi/vr_change_registration_response.h
index f79da44598..d71a14da34 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vr_change_registration_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vr_change_registration_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vr_delete_command_request.h b/src/components/application_manager/include/application_manager/commands/hmi/vr_delete_command_request.h
index b843f498f8..91a5dc7d99 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vr_delete_command_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vr_delete_command_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vr_delete_command_response.h b/src/components/application_manager/include/application_manager/commands/hmi/vr_delete_command_response.h
index 11a681bd5e..ad8c82e38c 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vr_delete_command_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vr_delete_command_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vr_get_capabilities_request.h b/src/components/application_manager/include/application_manager/commands/hmi/vr_get_capabilities_request.h
index 7771bdd141..676967083f 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vr_get_capabilities_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vr_get_capabilities_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vr_get_capabilities_response.h b/src/components/application_manager/include/application_manager/commands/hmi/vr_get_capabilities_response.h
index ced60c9d65..8b88eb4e3b 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vr_get_capabilities_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vr_get_capabilities_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vr_get_language_request.h b/src/components/application_manager/include/application_manager/commands/hmi/vr_get_language_request.h
index 955355d06c..9dd9133ffd 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vr_get_language_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vr_get_language_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vr_get_language_response.h b/src/components/application_manager/include/application_manager/commands/hmi/vr_get_language_response.h
index 2bd59b8be2..d9c4fc2126 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vr_get_language_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vr_get_language_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vr_get_supported_languages_request.h b/src/components/application_manager/include/application_manager/commands/hmi/vr_get_supported_languages_request.h
index 79105978b0..0a010cdfec 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vr_get_supported_languages_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vr_get_supported_languages_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vr_get_supported_languages_response.h b/src/components/application_manager/include/application_manager/commands/hmi/vr_get_supported_languages_response.h
index 38f5056225..dbbe57ba36 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vr_get_supported_languages_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vr_get_supported_languages_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vr_is_ready_request.h b/src/components/application_manager/include/application_manager/commands/hmi/vr_is_ready_request.h
index ac734638b1..e66c9c36a5 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vr_is_ready_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vr_is_ready_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vr_is_ready_response.h b/src/components/application_manager/include/application_manager/commands/hmi/vr_is_ready_response.h
index 4f4f86d84c..a9b1a68455 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vr_is_ready_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vr_is_ready_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vr_perform_interaction_request.h b/src/components/application_manager/include/application_manager/commands/hmi/vr_perform_interaction_request.h
index b71b31baf5..b819fdb927 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vr_perform_interaction_request.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vr_perform_interaction_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/hmi/vr_perform_interaction_response.h b/src/components/application_manager/include/application_manager/commands/hmi/vr_perform_interaction_response.h
index fbf5b87cb6..ffbbd613e2 100644
--- a/src/components/application_manager/include/application_manager/commands/hmi/vr_perform_interaction_response.h
+++ b/src/components/application_manager/include/application_manager/commands/hmi/vr_perform_interaction_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/mobile/add_command_request.h b/src/components/application_manager/include/application_manager/commands/mobile/add_command_request.h
index fc683988bf..2c36d8425e 100644
--- a/src/components/application_manager/include/application_manager/commands/mobile/add_command_request.h
+++ b/src/components/application_manager/include/application_manager/commands/mobile/add_command_request.h
@@ -131,6 +131,8 @@ class AddCommandRequest : public CommandRequestImpl {
*/
bool IsWhiteSpaceExist();
+ inline bool BothSend() const;
+
bool send_ui_;
bool send_vr_;
diff --git a/src/components/application_manager/include/application_manager/commands/mobile/change_registration_request.h b/src/components/application_manager/include/application_manager/commands/mobile/change_registration_request.h
index 3de3e8fc2f..d36f16a976 100644
--- a/src/components/application_manager/include/application_manager/commands/mobile/change_registration_request.h
+++ b/src/components/application_manager/include/application_manager/commands/mobile/change_registration_request.h
@@ -105,9 +105,9 @@ class ChangeRegistrationRequest : public CommandRequestImpl {
/*
* @brief Checks result codes
*
- * @return true if one of result codes is success
+ * @return true if all of result codes is success
*/
- static bool WasAnySuccess(const hmi_apis::Common_Result::eType ui,
+ bool AllHmiResponsesSuccess(const hmi_apis::Common_Result::eType ui,
const hmi_apis::Common_Result::eType vr,
const hmi_apis::Common_Result::eType tts);
diff --git a/src/components/application_manager/include/application_manager/commands/mobile/generic_response.h b/src/components/application_manager/include/application_manager/commands/mobile/generic_response.h
index c3b39bf917..1fb931d508 100644
--- a/src/components/application_manager/include/application_manager/commands/mobile/generic_response.h
+++ b/src/components/application_manager/include/application_manager/commands/mobile/generic_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/mobile/on_hmi_status_notification.h b/src/components/application_manager/include/application_manager/commands/mobile/on_hmi_status_notification.h
index aefa7f9c24..11d82925ec 100644
--- a/src/components/application_manager/include/application_manager/commands/mobile/on_hmi_status_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/mobile/on_hmi_status_notification.h
@@ -63,7 +63,7 @@ class OnHMIStatusNotification : public CommandNotificationImpl {
**/
virtual void Run();
- private:
+private:
DISALLOW_COPY_AND_ASSIGN(OnHMIStatusNotification);
};
diff --git a/src/components/application_manager/include/application_manager/commands/mobile/on_hmi_status_notification_from_mobile.h b/src/components/application_manager/include/application_manager/commands/mobile/on_hmi_status_notification_from_mobile.h
new file mode 100644
index 0000000000..ed3cb9147d
--- /dev/null
+++ b/src/components/application_manager/include/application_manager/commands/mobile/on_hmi_status_notification_from_mobile.h
@@ -0,0 +1,75 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_HMI_STATUS_NOTIFICATION_FROM_MOBILE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_HMI_STATUS_NOTIFICATION_FROM_MOBILE_H_
+
+#include "application_manager/commands/command_notification_from_mobile_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnHMIStatusNotificationFromMobile class
+ **/
+class OnHMIStatusNotificationFromMobile :
+ public CommandNotificationFromMobileImpl {
+ public:
+ /**
+ * @brief OnHMIStatusNotificationFromMobile class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnHMIStatusNotificationFromMobile(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnHMIStatusNotificationFromMobile class destructor
+ **/
+ virtual ~OnHMIStatusNotificationFromMobile();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+private:
+ static bool is_apps_requested_;
+ DISALLOW_COPY_AND_ASSIGN(OnHMIStatusNotificationFromMobile);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_HMI_STATUS_NOTIFICATION_FROM_MOBILE_H_
diff --git a/src/components/application_manager/include/application_manager/commands/mobile/on_system_request_notification.h b/src/components/application_manager/include/application_manager/commands/mobile/on_system_request_notification.h
index 183b673afd..7eee611700 100644
--- a/src/components/application_manager/include/application_manager/commands/mobile/on_system_request_notification.h
+++ b/src/components/application_manager/include/application_manager/commands/mobile/on_system_request_notification.h
@@ -64,8 +64,7 @@ class OnSystemRequestNotification : public CommandNotificationImpl {
* @brief Execute command
**/
virtual void Run();
-
- private:
+ private:
DISALLOW_COPY_AND_ASSIGN(OnSystemRequestNotification);
};
diff --git a/src/components/application_manager/include/application_manager/commands/mobile/perform_interaction_request.h b/src/components/application_manager/include/application_manager/commands/mobile/perform_interaction_request.h
index ce85a70176..9109172833 100644
--- a/src/components/application_manager/include/application_manager/commands/mobile/perform_interaction_request.h
+++ b/src/components/application_manager/include/application_manager/commands/mobile/perform_interaction_request.h
@@ -80,12 +80,6 @@ class PerformInteractionRequest : public CommandRequestImpl {
*/
virtual void on_event(const event_engine::Event& event);
- /**
- * @brief Timer callback function
- *
- */
- void onTimer();
-
private:
/*
* @brief Function is called by RequestController when request execution time
@@ -204,14 +198,13 @@ class PerformInteractionRequest : public CommandRequestImpl {
bool CheckChoiceIDFromResponse(ApplicationSharedPtr app, int32_t choice_id);
// members
- timer::TimerThread<PerformInteractionRequest> timer_;
-
- DISALLOW_COPY_AND_ASSIGN(PerformInteractionRequest);
mobile_apis::Result::eType vr_perform_interaction_code_;
mobile_apis::InteractionMode::eType interaction_mode_;
- bool ui_response_recived;
- bool vr_response_recived;
+ bool ui_response_recived_;
+ bool vr_response_recived_;
+ bool app_pi_was_active_before_;
+ DISALLOW_COPY_AND_ASSIGN(PerformInteractionRequest);
};
} // namespace commands
diff --git a/src/components/application_manager/include/application_manager/commands/mobile/register_app_interface_request.h b/src/components/application_manager/include/application_manager/commands/mobile/register_app_interface_request.h
index 9c1d46368f..fcee810606 100644
--- a/src/components/application_manager/include/application_manager/commands/mobile/register_app_interface_request.h
+++ b/src/components/application_manager/include/application_manager/commands/mobile/register_app_interface_request.h
@@ -72,14 +72,6 @@ class RegisterAppInterfaceRequest : public CommandRequestImpl {
* @brief Execute command
**/
virtual void Run();
- // virtual void cleanUp() = 0;
-
- /**
- * @brief Interface method that is called whenever new event received
- *
- * @param event The received event
- */
- virtual void on_event(const event_engine::Event& event);
/**
* @brief Sends RegisterAppInterface response to mobile
@@ -99,23 +91,6 @@ class RegisterAppInterfaceRequest : public CommandRequestImpl {
bool IsApplicationWithSameAppIdRegistered();
/*
- * @brief Check for some request param. names restrictions, e.g. for
- * newline characters
- *
- * return SUCCESS if param name pass the check, otherwise - error code
- * will be returned
- */
- mobile_apis::Result::eType CheckRestrictions() const;
-
- /*
- * @brief Removes hidden symbols and spaces
- *
- * return cleared copy of param name
- */
- std::string ClearParamName(std::string param_name) const;
-
-
- /*
* @brief Check new application parameters (name, tts, vr) for
* coincidence with already known parameters of registered applications
*
@@ -163,6 +138,8 @@ class RegisterAppInterfaceRequest : public CommandRequestImpl {
bool IsWhiteSpaceExist();
std::string response_info_;
+ mobile_apis::Result::eType result_checking_app_hmi_type_;
+
DISALLOW_COPY_AND_ASSIGN(RegisterAppInterfaceRequest);
};
diff --git a/src/components/application_manager/include/application_manager/commands/mobile/scrollable_message_response.h b/src/components/application_manager/include/application_manager/commands/mobile/scrollable_message_response.h
index 36fd311ad6..f0c0ea8f7a 100644
--- a/src/components/application_manager/include/application_manager/commands/mobile/scrollable_message_response.h
+++ b/src/components/application_manager/include/application_manager/commands/mobile/scrollable_message_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/mobile/send_location_request.h b/src/components/application_manager/include/application_manager/commands/mobile/send_location_request.h
index e178e284d9..581c779aa5 100644
--- a/src/components/application_manager/include/application_manager/commands/mobile/send_location_request.h
+++ b/src/components/application_manager/include/application_manager/commands/mobile/send_location_request.h
@@ -67,6 +67,7 @@ class SendLocationRequest : public CommandRequestImpl {
*/
virtual void on_event(const event_engine::Event& event);
+
private:
/**
@@ -76,7 +77,7 @@ class SendLocationRequest : public CommandRequestImpl {
*/
bool IsWhiteSpaceExist();
-
+ bool CheckHMICapabilities(std::list<hmi_apis::Common_TextFieldName::eType>& fields_names);
DISALLOW_COPY_AND_ASSIGN(SendLocationRequest);
};
diff --git a/src/components/application_manager/include/application_manager/commands/mobile/send_location_response.h b/src/components/application_manager/include/application_manager/commands/mobile/send_location_response.h
index 6e18aa5f27..fe88a2af29 100644
--- a/src/components/application_manager/include/application_manager/commands/mobile/send_location_response.h
+++ b/src/components/application_manager/include/application_manager/commands/mobile/send_location_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/mobile/set_app_icon_request.h b/src/components/application_manager/include/application_manager/commands/mobile/set_app_icon_request.h
new file mode 100644
index 0000000000..fdc6d6f1b6
--- /dev/null
+++ b/src/components/application_manager/include/application_manager/commands/mobile/set_app_icon_request.h
@@ -0,0 +1,101 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_ICON_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_ICON_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief SetIconRequest command class
+ **/
+class SetAppIconRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief Contains information about the type of image
+ */
+ typedef enum {
+ STATIC = 0,
+ DYNAMIC
+ } ImageType;
+
+ /**
+ * @brief SetIconRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit SetAppIconRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief SetIconRequest class destructor
+ **/
+ virtual ~SetAppIconRequest();
+
+ /**
+ * @brief Interface method that is called whenever new event received
+ *
+ * @param event The received event
+ */
+ void on_event(const event_engine::Event& event);
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ /**
+ * @brief Copies file to icon storage
+ * @param path_to_file Path to icon
+ */
+ void CopyToIconStorage(const std::string& path_to_file) const;
+
+ /**
+ * @brief Remove oldest icons
+ * @param storage Path to icons storage
+ * @param icons_amount Amount of icons to be deleted
+ */
+ void RemoveOldestIcons(const std::string& storage,
+ const uint32_t icons_amount) const;
+ DISALLOW_COPY_AND_ASSIGN(SetAppIconRequest);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_ICON_REQUEST_H_
diff --git a/src/components/application_manager/include/application_manager/commands/mobile/set_app_icon_response.h b/src/components/application_manager/include/application_manager/commands/mobile/set_app_icon_response.h
new file mode 100644
index 0000000000..02be7fe37e
--- /dev/null
+++ b/src/components/application_manager/include/application_manager/commands/mobile/set_app_icon_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_ICON_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_ICON_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief SetIconResponse command class
+ **/
+class SetAppIconResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief SetIconResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit SetAppIconResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief SetIconResponse class destructor
+ **/
+ virtual ~SetAppIconResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(SetAppIconResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_ICON_RESPONSE_H_
diff --git a/src/components/application_manager/include/application_manager/commands/mobile/set_media_clock_timer_response.h b/src/components/application_manager/include/application_manager/commands/mobile/set_media_clock_timer_response.h
index e835c17c80..46844bd2f3 100644
--- a/src/components/application_manager/include/application_manager/commands/mobile/set_media_clock_timer_response.h
+++ b/src/components/application_manager/include/application_manager/commands/mobile/set_media_clock_timer_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/mobile/show_response.h b/src/components/application_manager/include/application_manager/commands/mobile/show_response.h
index 970b54747e..c327bc3b3a 100644
--- a/src/components/application_manager/include/application_manager/commands/mobile/show_response.h
+++ b/src/components/application_manager/include/application_manager/commands/mobile/show_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/mobile/slider_response.h b/src/components/application_manager/include/application_manager/commands/mobile/slider_response.h
index b7821adca2..1888388e7c 100644
--- a/src/components/application_manager/include/application_manager/commands/mobile/slider_response.h
+++ b/src/components/application_manager/include/application_manager/commands/mobile/slider_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/commands/mobile/speak_response.h b/src/components/application_manager/include/application_manager/commands/mobile/speak_response.h
index ef9b8f89d3..cbf1ec40de 100644
--- a/src/components/application_manager/include/application_manager/commands/mobile/speak_response.h
+++ b/src/components/application_manager/include/application_manager/commands/mobile/speak_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/event_engine/event.h b/src/components/application_manager/include/application_manager/event_engine/event.h
index e76b767f17..55f5cd1320 100644
--- a/src/components/application_manager/include/application_manager/event_engine/event.h
+++ b/src/components/application_manager/include/application_manager/event_engine/event.h
@@ -77,7 +77,7 @@ class Event {
*
* @param so The smart_object received in HMI response
*/
- void set_smart_object(smart_objects::SmartObject& so);
+ void set_smart_object(const smart_objects::SmartObject& so);
/*
* @brief Retrieves event smart object
diff --git a/src/components/application_manager/include/application_manager/event_engine/event_dispatcher.h b/src/components/application_manager/include/application_manager/event_engine/event_dispatcher.h
index 875add2828..ff21b01c58 100644
--- a/src/components/application_manager/include/application_manager/event_engine/event_dispatcher.h
+++ b/src/components/application_manager/include/application_manager/event_engine/event_dispatcher.h
@@ -97,6 +97,13 @@ class EventDispatcher : public utils::Singleton<EventDispatcher> {
*/
virtual ~EventDispatcher();
+ /*
+ * @brief removes observer
+ * when occurs unsubscribe from event
+ * @param observer to be removed
+ */
+ void remove_observer_from_list(EventObserver* const observer);
+
DISALLOW_COPY_AND_ASSIGN(EventDispatcher);
FRIEND_BASE_SINGLETON_CLASS(EventDispatcher);
@@ -108,7 +115,10 @@ class EventDispatcher : public utils::Singleton<EventDispatcher> {
// Members section
sync_primitives::Lock state_lock_;
+ sync_primitives::Lock observer_list_lock_;
EventObserverMap observers_;
+ ObserverList observers_list_;
+
};
}
diff --git a/src/components/application_manager/include/application_manager/hmi_capabilities.h b/src/components/application_manager/include/application_manager/hmi_capabilities.h
index 20a849baee..000242daf0 100644
--- a/src/components/application_manager/include/application_manager/hmi_capabilities.h
+++ b/src/components/application_manager/include/application_manager/hmi_capabilities.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/hmi_command_factory.h b/src/components/application_manager/include/application_manager/hmi_command_factory.h
index d6f85a480d..89936e4ca6 100644
--- a/src/components/application_manager/include/application_manager/hmi_command_factory.h
+++ b/src/components/application_manager/include/application_manager/hmi_command_factory.h
@@ -51,7 +51,7 @@ class HMICommandFactory {
* @param smartObject SmartObject shared pointer.
* @return Pointer to created command object.
**/
- static CommandSharedPtr CreateCommand(const MessageSharedPtr& message);
+ static CommandSharedPtr CreateCommand(const commands::MessageSharedPtr& message);
private:
HMICommandFactory();
diff --git a/src/components/application_manager/include/application_manager/message.h b/src/components/application_manager/include/application_manager/message.h
index d92c89adf1..5a2c8bdc18 100644
--- a/src/components/application_manager/include/application_manager/message.h
+++ b/src/components/application_manager/include/application_manager/message.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -64,7 +64,8 @@ enum ProtocolVersion {
kHMI = 0,
kV1 = 1,
kV2 = 2,
- kV3 = 3
+ kV3 = 3,
+ kV4 = 4
};
class Message {
diff --git a/src/components/application_manager/include/application_manager/message_helper.h b/src/components/application_manager/include/application_manager/message_helper.h
index 2fc69d8162..8ee8256001 100644
--- a/src/components/application_manager/include/application_manager/message_helper.h
+++ b/src/components/application_manager/include/application_manager/message_helper.h
@@ -1,4 +1,4 @@
-/*
+/*
Copyright (c) 2013, Ford Motor Company
All rights reserved.
@@ -67,9 +67,6 @@ typedef std::map<std::string, VehicleDataType> VehicleData;
**/
class MessageHelper {
public:
-
- typedef std::vector<smart_objects::SmartObject*> SmartObjectList;
-
/**
* @brief Creates request for different interfaces(JSON, DBUS)
* @param correlation_id unique ID
@@ -99,17 +96,7 @@ class MessageHelper {
/**
* @brief Create mobile HashUpdateNotification
*/
- static smart_objects::SmartObject* GetHashUpdateNotification(const uint32_t app_id);
-
- /**
- * @brief Create OnSystemRequest notification for lock screen icon url
- */
- static smart_objects::SmartObject* GetLockScreenIconUrlNotification(const uint32_t connection_key);
-
- /**
- * @brief Send the OnSystemRequest notification for lock screen icon url to the mobile device
- */
- static void SendLockScreenIconUrlNotification(const uint32_t connection_key);
+ static smart_objects::SmartObjectSPtr GetHashUpdateNotification(const uint32_t app_id);
/**
* @brief Sends to mobile HashUpdateNotification
@@ -159,7 +146,7 @@ class MessageHelper {
static std::string StringifiedFunctionID(
mobile_apis::FunctionID::eType function_id);
- static smart_objects::SmartObject* CreateBlockedByPoliciesResponse(
+ static smart_objects::SmartObjectSPtr CreateBlockedByPoliciesResponse(
mobile_apis::FunctionID::eType function_id,
mobile_apis::Result::eType result, uint32_t correlation_id,
uint32_t connection_key);
@@ -171,14 +158,14 @@ class MessageHelper {
* @param devices Devices list
*
*/
- static smart_objects::SmartObject* CreateDeviceListSO(
- const connection_handler::DeviceMap& devices);
+ static smart_objects::SmartObjectSPtr CreateDeviceListSO(
+ const connection_handler::DeviceMap& devices);
- static smart_objects::SmartObject* CreateModuleInfoSO(
- uint32_t function_id);
+ static smart_objects::SmartObjectSPtr CreateModuleInfoSO(
+ uint32_t function_id);
- static smart_objects::SmartObject* CreateSetAppIcon(
- const std::string& path_to_icon, uint32_t app_id);
+ static smart_objects::SmartObjectSPtr CreateSetAppIcon(
+ const std::string& path_to_icon, uint32_t app_id);
/**
* @brief Sends IVI subscriptions
@@ -188,28 +175,34 @@ class MessageHelper {
/**
* @brief Sends IVI subscriptions
*/
- static SmartObjectList GetIVISubscribtionRequests(const uint32_t app_id);
+ static smart_objects::SmartObjectList GetIVISubscriptionRequests(ApplicationSharedPtr app);
static void SendAppDataToHMI(ApplicationConstSharedPtr app);
static void SendGlobalPropertiesToHMI(ApplicationConstSharedPtr app);
- static SmartObjectList CreateGlobalPropertiesRequestsToHMI(ApplicationConstSharedPtr app);
+ static smart_objects::SmartObjectList CreateGlobalPropertiesRequestsToHMI(ApplicationConstSharedPtr app);
- static smart_objects::SmartObject* CreateAppVrHelp(ApplicationConstSharedPtr app);
+ static smart_objects::SmartObjectSPtr CreateAppVrHelp(
+ ApplicationConstSharedPtr app);
- static SmartObjectList CreateShowRequestToHMI(ApplicationConstSharedPtr app);
+ static smart_objects::SmartObjectList CreateShowRequestToHMI(ApplicationConstSharedPtr app);
static void SendShowRequestToHMI(ApplicationConstSharedPtr app);
static void SendShowConstantTBTRequestToHMI(ApplicationConstSharedPtr app);
static void SendAddCommandRequestToHMI(ApplicationConstSharedPtr app);
- static SmartObjectList CreateAddCommandRequestToHMI(ApplicationConstSharedPtr app);
+ static smart_objects::SmartObjectList CreateAddCommandRequestToHMI(ApplicationConstSharedPtr app);
+ /**
+ * @brief Sends UI_ChangeRegistration to HMI with list of AppHMIType
+ * @param app applicaton instace
+ */
+ static void SendUIChangeRegistrationRequestToHMI(ApplicationConstSharedPtr app);
static void SendChangeRegistrationRequestToHMI(ApplicationConstSharedPtr app);
static void SendAddVRCommandToHMI(
uint32_t cmd_id, const smart_objects::SmartObject& vr_commands,
uint32_t app_id);
- static smart_objects::SmartObject* CreateAddVRCommandToHMI(
- uint32_t cmd_id, const smart_objects::SmartObject& vr_commands,
- uint32_t app_id);
+ static smart_objects::SmartObjectSPtr CreateAddVRCommandToHMI(
+ uint32_t cmd_id, const smart_objects::SmartObject& vr_commands,
+ uint32_t app_id);
/*
* @brief Create Common.HMIApplication struct application instance
@@ -221,7 +214,7 @@ class MessageHelper {
smart_objects::SmartObject& output);
static void SendAddSubMenuRequestToHMI(ApplicationConstSharedPtr app);
- static SmartObjectList CreateAddSubMenuRequestToHMI(ApplicationConstSharedPtr app);
+ static smart_objects::SmartObjectList CreateAddSubMenuRequestToHMI(ApplicationConstSharedPtr app);
/*
* @brief Creates BasicCommunication.OnAppUnregistered notification
@@ -233,7 +226,8 @@ class MessageHelper {
bool is_unexpected_disconnect = false);
static void SendActivateAppToHMI(
uint32_t const app_id,
- hmi_apis::Common_HMILevel::eType level = hmi_apis::Common_HMILevel::FULL);
+ hmi_apis::Common_HMILevel::eType level = hmi_apis::Common_HMILevel::FULL,
+ bool send_policy_priority = true);
static void SendOnResumeAudioSourceToHMI(const uint32_t app_id);
@@ -315,6 +309,29 @@ class MessageHelper {
unsigned int connection_key, const std::vector<uint8_t>& policy_data,
const std::string& url = "", int timeout = -1);
+ static void SendSystemRequestNotification(
+ uint32_t connection_key,
+ NsSmartDeviceLink::NsSmartObjects::SmartObject& content);
+
+ /**
+ * @brief SendLaunchApp allows to send OnSystemRequest with LAUNCH_UP.
+ *
+ * @param connection_key application id.
+ *
+ * @param urlSchema application's url schema.
+ *
+ * @param packageName application's package name.
+ */
+ static void SendLaunchApp(uint32_t connection_key,
+ const std::string& urlSchema,
+ const std::string& packageName);
+
+ /**
+ * @brief Sends OnSystemRequest which queries remote apps list
+ * @param connection_key application id, which is used for sending out
+ */
+ static void SendQueryApps(uint32_t connection_key);
+
/*
* @brief Send notification to mobile on application permissions update
* @param connection_key Id of application to send message to
@@ -384,9 +401,9 @@ class MessageHelper {
*/
static bool SendStopAudioPathThru();
- static smart_objects::SmartObject* CreateNegativeResponse(
- uint32_t connection_key, int32_t function_id, uint32_t correlation_id,
- int32_t result_code);
+ static smart_objects::SmartObjectSPtr CreateNegativeResponse(
+ uint32_t connection_key, int32_t function_id, uint32_t correlation_id,
+ int32_t result_code);
/*
* @brief Verify image and add image file full path
@@ -431,6 +448,16 @@ class MessageHelper {
smart_objects::SmartObject& message_params,
ApplicationConstSharedPtr app);
+ /**
+ * @brief checkWithPolicy allows to check soft button's parameters
+ * according to the current policy
+ * @param system_action system action
+ * @param app_mobile_id policy application id
+ * @return
+ */
+ static bool CheckWithPolicy(mobile_apis::SystemAction::eType system_action,
+ const std::string& app_mobile_id);
+
/*
* @brief subscribe application to softbutton
*
@@ -481,7 +508,16 @@ class MessageHelper {
static void SendTTSGlobalProperties(
ApplicationSharedPtr app, bool default_help_prompt);
- private:
+ /**
+ * @brief SendSetAppIcon allows to send SetAppIcon request.
+ *
+ * @param app_id application for which icon request should be sent.
+ *
+ * @param icon_path path to the icon.
+ */
+ static void SendSetAppIcon(uint32_t app_id,
+ const std::string& icon_path);
+ private:
/**
* @brief Allows to fill SO according to the current permissions.
* @param permissions application permissions.
@@ -490,8 +526,9 @@ class MessageHelper {
static void FillAppRevokedPermissions(const policy::AppPermissions& permissions,
smart_objects::SmartObject& message);
- static smart_objects::SmartObject* CreateChangeRegistration(
- int32_t function_id, int32_t language, uint32_t app_id);
+ static smart_objects::SmartObjectSPtr CreateChangeRegistration(
+ int32_t function_id, int32_t language, uint32_t app_id,
+ const smart_objects::SmartObject* app_types = NULL);
MessageHelper();
diff --git a/src/components/application_manager/include/application_manager/mobile_command_factory.h b/src/components/application_manager/include/application_manager/mobile_command_factory.h
index 1bf60fb745..b28e0abb34 100644
--- a/src/components/application_manager/include/application_manager/mobile_command_factory.h
+++ b/src/components/application_manager/include/application_manager/mobile_command_factory.h
@@ -51,7 +51,9 @@ class MobileCommandFactory {
* @param smartObject SmartObject shared pointer.
* @return Pointer to created command object.
**/
- static commands::Command* CreateCommand(const MessageSharedPtr& message);
+ static commands::Command* CreateCommand(
+ const commands::MessageSharedPtr& message,
+ commands::Command::CommandOrigin origin);
private:
MobileCommandFactory();
diff --git a/src/components/application_manager/include/application_manager/mobile_message_handler.h b/src/components/application_manager/include/application_manager/mobile_message_handler.h
index 67d51c0dab..5e8d551aee 100644
--- a/src/components/application_manager/include/application_manager/mobile_message_handler.h
+++ b/src/components/application_manager/include/application_manager/mobile_message_handler.h
@@ -41,13 +41,20 @@ namespace application_manager {
typedef utils::SharedPtr<application_manager::Message> MobileMessage;
class MobileMessageHandler {
public:
+ static application_manager::Message* HandleIncomingMessageProtocol(
+ const protocol_handler::RawMessagePtr message);
+
+ static protocol_handler::RawMessage* HandleOutgoingMessageProtocol(
+ const MobileMessage& message);
+ //! -------------------------------------------------------------
+ private:
static application_manager::Message* HandleIncomingMessageProtocolV1(
const protocol_handler::RawMessagePtr message);
static application_manager::Message* HandleIncomingMessageProtocolV2(
const protocol_handler::RawMessagePtr message);
- //! -------------------------------------------------------------
+ //! -------------------------------------------------------------
static protocol_handler::RawMessage* HandleOutgoingMessageProtocolV1(
const MobileMessage& message);
@@ -55,8 +62,6 @@ class MobileMessageHandler {
static protocol_handler::RawMessage* HandleOutgoingMessageProtocolV2(
const MobileMessage& message);
- //! -------------------------------------------------------------
- private:
DISALLOW_COPY_AND_ASSIGN(MobileMessageHandler);
};
} // namespace application_manager
diff --git a/src/components/application_manager/include/application_manager/policies/policy_event_observer.h b/src/components/application_manager/include/application_manager/policies/policy_event_observer.h
index 7fdfb4e0ac..e251170fec 100644
--- a/src/components/application_manager/include/application_manager/policies/policy_event_observer.h
+++ b/src/components/application_manager/include/application_manager/policies/policy_event_observer.h
@@ -34,26 +34,26 @@
#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_POLICY_EVENT_OBSERVER_H_
#include "application_manager/event_engine/event_observer.h"
-#include "utils/shared_ptr.h"
namespace policy {
namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
-class PolicyManager;
+class PolicyHandler;
class PolicyEventObserver :
public application_manager::event_engine::EventObserver {
public:
- PolicyEventObserver(utils::SharedPtr<PolicyManager> policy_manager);
+ explicit PolicyEventObserver(policy::PolicyHandler* const policy_handler);
+ void set_policy_handler(policy::PolicyHandler* const policy_handler);
void on_event(const application_manager::event_engine::Event& event);
void subscribe_on_event(
const application_manager::event_engine::Event::EventID& event_id,
int32_t hmi_correlation_id = 0);
private:
- utils::SharedPtr<PolicyManager> policy_manager_;
+ sync_primitives::Lock policy_handler_lock_;
+ PolicyHandler* policy_handler_;
void ProcessOdometerEvent(const smart_objects::SmartObject& message);
};
} // namespace policy
-
#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_POLICY_EVENT_OBSERVER_H_
diff --git a/src/components/application_manager/include/application_manager/policies/policy_handler.h b/src/components/application_manager/include/application_manager/policies/policy_handler.h
index 1ded00f5f7..239ef8e55c 100644
--- a/src/components/application_manager/include/application_manager/policies/policy_handler.h
+++ b/src/components/application_manager/include/application_manager/policies/policy_handler.h
@@ -1,4 +1,4 @@
-/*
+/*
Copyright (c) 2013, Ford Motor Company
All rights reserved.
@@ -39,10 +39,17 @@
#include <vector>
#include "policy/policy_manager.h"
#include "application_manager/policies/policy_event_observer.h"
-#include "application_manager/policies/pt_exchange_handler.h"
+#include "application_manager/policies/delegates/statistics_delegate.h"
#include "utils/logger.h"
#include "utils/singleton.h"
+#include "utils/threads/thread.h"
+#include "utils/threads/thread_delegate.h"
+#include "utils/conditional_variable.h"
+#include "utils/rwlock.h"
#include "usage_statistics/statistics_manager.h"
+#include "policy_handler_observer.h"
+#include "utils/threads/async_runner.h"
+#include "application_manager/application_manager_impl.h"
namespace Json {
class Value;
@@ -54,7 +61,8 @@ typedef std::vector<uint32_t> DeviceHandles;
class PolicyHandler :
public utils::Singleton<PolicyHandler, utils::deleters::Deleter<PolicyHandler> >,
- public PolicyListener {
+ public PolicyListener,
+ public threads::AsyncRunner {
public:
virtual ~PolicyHandler();
bool LoadPolicyLibrary();
@@ -62,14 +70,20 @@ class PolicyHandler :
bool InitPolicyTable();
bool ResetPolicyTable();
bool ClearUserConsent();
- bool SendMessageToSDK(const BinaryMessage& pt_string);
+ bool SendMessageToSDK(const BinaryMessage& pt_string, const std::string& url);
bool ReceiveMessageFromSDK(const std::string& file,
const BinaryMessage& pt_string);
bool UnloadPolicyLibrary();
- void OnPTExchangeNeeded();
- void OnPermissionsUpdated(const std::string& policy_app_id,
- const Permissions& permissions,
- const HMILevel& default_hmi);
+ virtual void OnPermissionsUpdated(const std::string& policy_app_id,
+ const Permissions& permissions,
+ const HMILevel& default_hmi);
+
+ virtual void OnPermissionsUpdated(const std::string& policy_app_id,
+ const Permissions& permissions);
+
+ virtual void OnSnapshotCreated(const BinaryMessage& pt_string,
+ const std::vector<int>& retry_delay_seconds,
+ int timeout_exchange);
bool GetPriority(const std::string& policy_app_id, std::string* priority);
void CheckPermissions(const PTString& app_id,
@@ -85,34 +99,28 @@ class PolicyHandler :
bool GetInitialAppData(const std::string& application_id,
StringArray* nicknames = NULL,
StringArray* app_hmi_types = NULL);
- EndpointUrls GetUpdateUrls(int service_type);
- std::string GetLockScreenIconUrl() const;
+ void GetUpdateUrls(int service_type, EndpointUrls& end_points);
void ResetRetrySequence();
int NextRetryTimeout();
int TimeoutExchange();
void OnExceededTimeout();
- BinaryMessageSptr RequestPTUpdate();
- const std::vector<int> RetrySequenceDelaysSeconds();
+ void OnSystemReady();
+ void PTUpdatedAt(int kilometers, int days_after_epoch);
+ void add_listener(PolicyHandlerObserver* listener);
+ void remove_listener(PolicyHandlerObserver* listener);
utils::SharedPtr<usage_statistics::StatisticsManager> GetStatisticManager();
/**
- * Checks system action of application for permission of keep context
- * @param system_action system action (see mobile api)
- * @param policy_app_id unique application id
- * @return false if system_action is KEEP_CONTEXT and it isn't allowed by policy
- * otherwise true
- */
- bool CheckKeepContext(int system_action, const std::string& policy_app_id);
-
- /**
- * Checks system action of application for permission of steal focus
- * @param system_action system action (see mobile api)
- * @param policy_app_id unique application id
- * @return false if system_action is STEAL_FOCUS and it isn't allowed by policy
- * otherwise true
+ * @brief CheckSystemAction allows to check whether certain system
+ * action is enabled.
+ *
+ * @param system_action system action to check.
+ *
+ * @return true if specified system action is enabled, false otherwise.
*/
- bool CheckStealFocus(int system_action, const std::string& policy_app_id);
+ bool CheckSystemAction(mobile_apis::SystemAction::eType system_action,
+ const std::string& policy_app_id);
/**
* Lets client to notify PolicyHandler that more kilometers expired
@@ -139,20 +147,9 @@ class PolicyHandler :
*/
void OnIgnitionCycleOver();
- /**
- * @brief Send notification to HMI concerning revocation of application
- * @param policy_app_id Unique identifier of application
- */
- void OnAppRevoked(const std::string& policy_app_id);
-
void OnPendingPermissionChange(const std::string& policy_app_id);
/**
- * Initializes PT exchange at ignition if need
- */
- void PTExchangeAtRegistration(const std::string& app_id);
-
- /**
* Initializes PT exchange at user request
* @param correlation_id correlation id of request
*/
@@ -172,7 +169,7 @@ class PolicyHandler :
* @param permissions User-changed group permissions consent
*/
void OnAppPermissionConsent(const uint32_t connection_key,
- PermissionConsent& permissions);
+ const PermissionConsent &permissions);
/**
* @brief Get appropriate message parameters and send them with response
@@ -205,7 +202,7 @@ class PolicyHandler :
* @brief Send notification to HMI with changed policy update status
* @param status Current policy update state
*/
- void OnUpdateStatusChanged(policy::PolicyTableStatus status);
+ void OnUpdateStatusChanged(const std::string& status);
/**
* @brief Update currently used device id in policies manager for given
@@ -272,11 +269,19 @@ class PolicyHandler :
std::string GetAppName(const std::string& policy_app_id);
- virtual void OnUserRequestedUpdateCheckRequired();
+ virtual void OnUpdateHMIAppType(std::map<std::string, StringArray> app_hmi_types);
+
+ virtual void OnCertificateUpdated(const std::string& certificate_data);
+
+ virtual bool CanUpdate();
virtual void OnDeviceConsentChanged(const std::string& device_id,
bool is_allowed);
+ virtual void OnPTExchangeNeeded();
+
+ virtual void GetAvailableApps(std::queue<std::string>& apps);
+
/**
* @brief Allows to add new or update existed application during
* registration process
@@ -304,6 +309,21 @@ class PolicyHandler :
*/
uint16_t HeartBeatTimeout(const std::string& app_id) const;
+ /**
+ * @brief Returns URL for querying list of remote apps
+ */
+ const std::string RemoteAppsUrl() const;
+
+ /**
+ * @brief Handler on applications search started
+ */
+ virtual void OnAppsSearchStarted();
+
+ /**
+ * @brief Handler on applications search completed
+ */
+ virtual void OnAppsSearchCompleted();
+
//TODO(AKutsan) REMOVE THIS UGLY HOTFIX
virtual void Increment(usage_statistics::GlobalCounterId type);
virtual void Increment(const std::string& app_id,
@@ -315,7 +335,6 @@ class PolicyHandler :
usage_statistics::AppStopwatchId type,
int32_t timespan_seconds);
-
protected:
/**
@@ -323,72 +342,80 @@ protected:
*/
void StartNextRetry();
- /**
- * Initializes PT exchange at odometer if need
- * @param kilometers value from odometer in kilometers
- */
- void PTExchangeAtOdometer(int kilometers);
+ private:
/**
- * Starts proccess updating policy table
+ * Checks system action of application for permission of keep context
+ * @param system_action system action (see mobile api)
+ * @param policy_app_id unique application id
+ * @return false if system_action is KEEP_CONTEXT and it isn't allowed by policy
+ * otherwise true
*/
- void StartPTExchange(bool skip_device_selection = false);
+ bool CheckKeepContext(const std::string& policy_app_id);
- private:
/**
- * @brief Choose device according to app HMI status and user consent for
- * device
- * @param device_info Struct with selected device parameters
- * @return consent status for selected device
+ * Checks system action of application for permission of steal focus
+ * @param system_action system action (see mobile api)
+ * @param policy_app_id unique application id
+ * @return false if system_action is STEAL_FOCUS and it isn't allowed by policy
+ * otherwise true
*/
- DeviceConsent GetDeviceForSending(DeviceParams& device_params);
+ bool CheckStealFocus(const std::string& policy_app_id);
/**
- * @brief Convert internal policy update status to appropriate status for HMI
- * @param status Internal policy update status
- * @return Converted status for sending to HMI
+ * @brief OnAppPermissionConsentInternal reacts on permission changing
+ *
+ * @param connection_key connection key
+ *
+ * @param permissions new permissions.
*/
- const std::string ConvertUpdateStatus(policy::PolicyTableStatus status);
-
+ void OnAppPermissionConsentInternal(const uint32_t connection_key,
+ PermissionConsent& permissions);
private:
-
class StatisticManagerImpl: public usage_statistics::StatisticsManager {
//TODO(AKutsan) REMOVE THIS UGLY HOTFIX
virtual void Increment(usage_statistics::GlobalCounterId type) {
- return PolicyHandler::instance()->Increment(type);
+
+ PolicyHandler::instance()->AsyncRun(new StatisticsDelegate(type));
}
virtual void Increment(const std::string& app_id,
usage_statistics::AppCounterId type) {
- return PolicyHandler::instance()->Increment(app_id, type);
+
+ PolicyHandler::instance()->AsyncRun(new StatisticsDelegate(app_id,
+ type));
}
virtual void Set(const std::string& app_id,
usage_statistics::AppInfoId type,
const std::string& value) {
- return PolicyHandler::instance()->Set(app_id, type, value);
+
+ PolicyHandler::instance()->AsyncRun(new StatisticsDelegate(app_id,
+ type,
+ value));
}
virtual void Add(const std::string& app_id,
usage_statistics::AppStopwatchId type,
int32_t timespan_seconds) {
- return PolicyHandler::instance()->Add(app_id, type, timespan_seconds);
+
+ PolicyHandler::instance()->AsyncRun(new StatisticsDelegate(
+ app_id, type, timespan_seconds));
}
};
//TODO(AKutsan) REMOVE THIS UGLY HOTFIX
PolicyHandler();
+ bool SaveSnapshot(const BinaryMessage& pt_string, std::string& snap_path);
static PolicyHandler* instance_;
static const std::string kLibrary;
+ mutable sync_primitives::RWLock policy_manager_lock_;
utils::SharedPtr<PolicyManager> policy_manager_;
void* dl_handle_;
AppIds last_used_app_ids_;
- utils::SharedPtr<PTExchangeHandler> exchange_handler_;
utils::SharedPtr<PolicyEventObserver> event_observer_;
- bool on_ignition_check_done_;
uint32_t last_activated_app_id_;
- bool registration_in_progress;
/**
* @brief Contains device handles, which were sent for user consent to HMI
@@ -397,7 +424,9 @@ private:
inline bool CreateManager();
- bool is_user_requested_policy_table_update_;
+ typedef std::list <PolicyHandlerObserver*> HandlersCollection;
+ HandlersCollection listeners_;
+ sync_primitives::Lock listeners_lock_;
/**
* @brief Application-to-device map is used for getting/setting user consents
@@ -405,9 +434,12 @@ private:
*/
std::map<std::string, std::string> app_to_device_link_;
+ // Lock for app to device list
+ sync_primitives::Lock app_to_device_link_lock_;
utils::SharedPtr<StatisticManagerImpl> statistic_manager_impl_;
+ friend class AppPermissionDelegate;
DISALLOW_COPY_AND_ASSIGN(PolicyHandler);
FRIEND_BASE_SINGLETON_CLASS_WITH_DELETER(PolicyHandler,
diff --git a/src/components/application_manager/include/application_manager/policies/policy_handler_observer.h b/src/components/application_manager/include/application_manager/policies/policy_handler_observer.h
index 558b2a4b35..c9b32b7e17 100644
--- a/src/components/application_manager/include/application_manager/policies/policy_handler_observer.h
+++ b/src/components/application_manager/include/application_manager/policies/policy_handler_observer.h
@@ -38,6 +38,7 @@ namespace policy {
class PolicyHandlerObserver{
public:
virtual void OnUpdateHMIAppType(std::map<std::string, std::vector<std::string> > app_hmi_types) = 0;
+ virtual void OnCertificateUpdated(const std::string& certificate_data) {}
virtual ~PolicyHandlerObserver() {}
};
} // namespace policy
diff --git a/src/components/application_manager/include/application_manager/request_controller.h b/src/components/application_manager/include/application_manager/request_controller.h
index 2bc5f54666..8a307c7fc7 100644
--- a/src/components/application_manager/include/application_manager/request_controller.h
+++ b/src/components/application_manager/include/application_manager/request_controller.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2014, Ford Motor Company
* All rights reserved.
*
@@ -54,20 +54,16 @@ namespace application_manager {
namespace request_controller {
-using namespace threads;
-
/**
* @brief RequestController class is used to control currently active mobile
* requests.
*/
class RequestController {
public:
-
/**
* @brief Result code for addRequest
*/
- enum TResult
- {
+ enum TResult {
SUCCESS = 0,
TOO_MANY_REQUESTS,
TOO_MANY_PENDING_REQUESTS,
@@ -78,8 +74,7 @@ class RequestController {
/**
* @brief Thread pool state
*/
- enum TPoolState
- {
+ enum TPoolState {
UNDEFINED = 0,
STARTED,
STOPPED,
@@ -120,7 +115,7 @@ class RequestController {
* @return Result code
*
*/
- TResult addMobileRequest(const MobileRequestPtr& request,
+ TResult addMobileRequest(const RequestPtr request,
const mobile_apis::HMILevel::eType& hmi_level);
@@ -140,19 +135,31 @@ class RequestController {
*/
void addNotification(const RequestPtr ptr);
+
+ /**
+ * @brief Removes request from queue
+ *
+ * @param correlation_id Active request correlation ID,
+ * connection_key - Active request connection key (0 for HMI requersts)
+ *
+ */
+ void terminateRequest(const uint32_t& correlation_id,
+ const uint32_t& connection_key);
+
/**
* @brief Removes request from queue
*
- * @param mobile_corellation_id Active mobile request correlation ID
+ * @param mobile_correlation_id Active mobile request correlation ID
*
*/
- void terminateMobileRequest(const uint32_t& mobile_correlation_id);
+ void terminateMobileRequest(const uint32_t& mobile_correlation_id,
+ const uint32_t& connection_key);
/**
* @brief Removes request from queue
*
- * @param mobile_corellation_id Active mobile request correlation ID
+ * @param mobile_correlation_id Active mobile request correlation ID
*
*/
void terminateHMIRequest(const uint32_t& correlation_id);
@@ -177,6 +184,12 @@ class RequestController {
*/
void terminateAllHMIRequests();
+
+ /**
+ * @brief Terminates all requests from Mobile
+ */
+ void terminateAllMobileRequests();
+
/**
* @brief Updates request timeout
*
@@ -188,30 +201,23 @@ class RequestController {
const uint32_t& mobile_correlation_id,
const uint32_t& new_timeout);
- protected:
-
- /**
- * @brief Checs if this app as able to add new requests, or limits was exceeded
- * @param app_id - application id
- * @param app_time_scale - time scale (seconds)
- * @param max_request_per_time_scale - maximum count of request that should be allowed for app_time_scale secconds
+ /*
+ * @brief Function Should be called when Low Voltage is occured
*/
- bool checkTimeScaleMaxRequest(const uint32_t& app_id,
- const uint32_t& app_time_scale,
- const uint32_t& max_request_per_time_scale);
+ void OnLowVoltage();
- /**
- * @brief Checs if this app as able to add new requests in current hmi_level, or limits was exceeded
- * @param hmi_level - hmi level
- * @param app_id - application id
- * @param app_time_scale - time scale (seconds)
- * @param max_request_per_time_scale - maximum count of request that should be allowed for app_time_scale secconds
+ /*
+ * @brief Function Should be called when Low Voltage is occured
*/
- bool checkHMILevelTimeScaleMaxRequest(const mobile_apis::HMILevel::eType& hmi_level,
- const uint32_t& app_id,
- const uint32_t& app_time_scale,
- const uint32_t& max_request_per_time_scale);
+ void OnWakeUp();
+
+ bool IsLowVoltage();
+
+ protected:
+ /**
+ * @brief Timer Callback
+ */
void onTimer();
/**
@@ -220,16 +226,30 @@ class RequestController {
*/
void UpdateTimer();
- private:
+ void terminateWaitingForExecutionAppRequests(const uint32_t& app_id);
+ void terminateWaitingForResponseAppRequests(const uint32_t& app_id);
- // Data types
+ /**
+ * @brief Check Posibility to add new requests, or limits was exceeded
+ * @param request - request to check possipility to Add
+ * @return True if new request could be added, false otherwise
+ */
+ TResult CheckPosibilitytoAdd(const RequestPtr request);
+
+ /**
+ * @brief Check Posibility to add new requests, or limits was exceeded
+ * @param pending_requests_amount - maximum count of request that should be allowed for all applications
+ * @return True if new request could be added, false otherwise
+ */
+ bool CheckPendingRequestsAmount(const uint32_t& pending_requests_amount);
- class Worker : public ThreadDelegate {
+ private:
+ class Worker : public threads::ThreadDelegate {
public:
- Worker(RequestController* requestController);
+ explicit Worker(RequestController* requestController);
virtual ~Worker();
virtual void threadMain();
- virtual bool exitThreadMain();
+ virtual void exitThreadMain();
protected:
private:
RequestController* request_controller_;
@@ -237,25 +257,33 @@ class RequestController {
volatile bool stop_flag_;
};
- std::vector<Thread*> pool_;
+ std::vector<threads::Thread*> pool_;
volatile TPoolState pool_state_;
uint32_t pool_size_;
sync_primitives::ConditionalVariable cond_var_;
- std::list<MobileRequestPtr> mobile_request_list_;
+ std::list<RequestPtr> mobile_request_list_;
sync_primitives::Lock mobile_request_list_lock_;
- RequestInfoSet pending_request_set_;
- sync_primitives::Lock pending_request_set_lock_;
+ /*
+ * Requests, that are waiting for responses
+ * RequestInfoSet provides correct processing of requests with thre same
+ * app_id and corr_id
+ */
+ RequestInfoSet waiting_for_response_;
/**
* @brief Set of HMI notifications with timeout.
*/
std::list<RequestPtr> notification_list_;
- timer::TimerThread<RequestController> timer_;
+ /*
+ * timer for checking requests timeout
+ */
+ timer::TimerThread<RequestController> timer_;
static const uint32_t dafault_sleep_time_ = UINT_MAX;
+ bool is_low_voltage_;
DISALLOW_COPY_AND_ASSIGN(RequestController);
};
diff --git a/src/components/application_manager/include/application_manager/request_info.h b/src/components/application_manager/include/application_manager/request_info.h
index b1409488fd..b0d1f836d8 100644
--- a/src/components/application_manager/include/application_manager/request_info.h
+++ b/src/components/application_manager/include/application_manager/request_info.h
@@ -1,34 +1,34 @@
-/**
-* \file request_info.h
-* \brief request information structure header file.
-*
-* Copyright (c) 2014, Ford Motor Company
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*
-* Redistributions of source code must retain the above copyright notice, this
-* list of conditions and the following disclaimer.
-*
-* Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following
-* disclaimer in the documentation and/or other materials provided with the
-* distribution.
-*
-* Neither the name of the Ford Motor Company nor the names of its contributors
-* may be used to endorse or promote products derived from this software
-* without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+/*
+ * \file request_info.h
+ * \brief request information structure header file.
+ *
+ * Copyright (c) 2014, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
@@ -37,6 +37,7 @@
#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_REQUEST_INFO_H_
#include <stdint.h>
+#include <set>
#include "application_manager/commands/command_request_impl.h"
#include "commands/hmi/request_to_hmi.h"
@@ -52,47 +53,31 @@ namespace request_controller {
*
*/
typedef utils::SharedPtr<commands::Command> RequestPtr;
- typedef utils::SharedPtr<commands::CommandRequestImpl> MobileRequestPtr;
struct RequestInfo {
- RequestInfo(const uint64_t timeout_sec)
- : timeout_sec_(timeout_sec) {
- start_time_ = date_time::DateTime::getCurrentTime();
- updateEndTime();
- }
+ enum RequestType {MobileRequest, HMIRequest};
+
+ RequestInfo() {}
+ virtual ~RequestInfo() {}
- RequestInfo(const TimevalStruct& start_time,const uint64_t timeout_sec)
- : start_time_(start_time),
+ RequestInfo(RequestPtr request,
+ const RequestType requst_type,
+ const uint64_t timeout_sec)
+ : request_(request),
timeout_sec_(timeout_sec) {
+ start_time_ = date_time::DateTime::getCurrentTime();
updateEndTime();
- }
-
- virtual ~RequestInfo(){}
-
- virtual uint32_t requestId() = 0;
- virtual commands::Command* request() = 0;
+ requst_type_ = requst_type;
+ }
- void updateEndTime() {
- end_time_ = date_time::DateTime::getCurrentTime();
- end_time_.tv_sec += timeout_sec_;
+ RequestInfo(RequestPtr request, const RequestType requst_type,
+ const TimevalStruct& start_time, const uint64_t timeout_sec);
- // possible delay during IPC
- const uint32_t hmi_delay_sec = 1;
- end_time_.tv_sec += hmi_delay_sec;
- }
+ void updateEndTime();
- void updateTimeOut(const uint64_t& timeout_sec) {
- timeout_sec_ = timeout_sec;
- updateEndTime();
- }
+ void updateTimeOut(const uint64_t& timeout_sec);
- bool isExpired() {
- if ( date_time::GREATER ==
- date_time::DateTime::compareTime(end_time_, date_time::DateTime::getCurrentTime()) ) {
- return false;
- }
- return true;
- }
+ bool isExpired();
TimevalStruct start_time() {
return start_time_;
@@ -114,65 +99,190 @@ namespace request_controller {
return hmi_level_;
}
+ RequestType requst_type() const {
+ return requst_type_;
+ }
+
+ uint32_t requestId() {
+ return correlation_id_;
+ }
+
+ commands::Command* request() {
+ return request_.get();
+ }
+ uint64_t hash();
+ static uint64_t GenerateHash(uint32_t var1, uint32_t var2);
+ static uint32_t HmiConnectoinKey;
protected:
+ RequestPtr request_;
TimevalStruct start_time_;
uint64_t timeout_sec_;
TimevalStruct end_time_;
uint32_t app_id_;
mobile_apis::HMILevel::eType hmi_level_;
+ RequestType requst_type_;
+ uint32_t correlation_id_;
};
typedef utils::SharedPtr<RequestInfo> RequestInfoPtr;
- struct RequestInfoComparator {
- bool operator() (const RequestInfoPtr lhs,
- const RequestInfoPtr rhs) const {
- date_time::TimeCompare compare_result =
- date_time::DateTime::compareTime(lhs->end_time(), rhs->end_time());
-
- return compare_result == date_time::LESS;
- }
+ struct MobileRequestInfo: public RequestInfo {
+ MobileRequestInfo(RequestPtr request,
+ const uint64_t timeout_sec);
+ MobileRequestInfo(RequestPtr request,
+ const TimevalStruct& start_time,
+ const uint64_t timeout_sec);
};
- typedef std::set<RequestInfoPtr,RequestInfoComparator> RequestInfoSet;
-
struct HMIRequestInfo: public RequestInfo {
HMIRequestInfo(RequestPtr request, const uint64_t timeout_sec);
HMIRequestInfo(RequestPtr request, const TimevalStruct& start_time,
const uint64_t timeout_sec);
+ };
- RequestPtr request_;
- uint32_t correlation_id_;
-
- virtual uint32_t requestId() {
- return correlation_id_;
- }
-
- virtual commands::Command* request() {
- return request_.get();
- }
+ // Request info, for searching in request info set by log_n time
+ // Returns correct hash by app_id and corr_id
+ struct FakeRequestInfo :public RequestInfo {
+ FakeRequestInfo(uint32_t app_id, uint32_t correaltion_id);
};
- struct MobileRequestInfo: public RequestInfo {
- MobileRequestInfo(RequestPtr request,
- const uint64_t timeout_sec);
+ struct RequestInfoTimeComparator {
+ bool operator() (const RequestInfoPtr lhs,
+ const RequestInfoPtr rhs) const;
+ };
- MobileRequestInfo(RequestPtr request,
- const TimevalStruct& start_time,
- const uint64_t timeout_sec);
+ struct RequestInfoHashComparator {
+ bool operator() (const RequestInfoPtr lhs,
+ const RequestInfoPtr rhs) const;
+ };
- RequestPtr request_;
- uint32_t mobile_correlation_id_;
- virtual uint32_t requestId() {
- return mobile_correlation_id_;
- }
+ typedef std::set<RequestInfoPtr, RequestInfoTimeComparator> TimeSortedRequestInfoSet;
+ typedef std::set<RequestInfoPtr, RequestInfoHashComparator> HashSortedRequestInfoSet;
- virtual commands::Command* request() {
- return request_.get();
- }
+ /*
+ * @brief RequestInfoSet provides uniue requests bu corralation_id and app_id
+ *
+ */
+ class RequestInfoSet {
+ public:
+ /*
+ * @brief Add requests into colletion by log(n) time
+ * @param request_info - request to add
+ * @return false is request with the same app_id and correlation_id exist
+ */
+ bool Add(RequestInfoPtr request_info);
+
+ /*
+ * @brief Find requests int colletion by log(n) time
+ * @param connection_key - connection_key of request
+ * @param correlation_id - correlation_id of request
+ * @return founded request or shared_ptr with NULL
+ */
+ RequestInfoPtr Find(const uint32_t connection_key,
+ const uint32_t correlation_id);
+
+ /*
+ * @brief Get request with smalest end_time_
+ * @return founded request or shared_ptr with NULL
+ */
+ RequestInfoPtr Front();
+
+ /*
+ * @brief Get request with smalest end_time_ != 0
+ * @return founded request or shared_ptr with NULL
+ */
+ RequestInfoPtr FrontWithNotNullTimeout();
+
+ /*
+ * @brief Erase request from colletion by log(n) time
+ * @param request_info - request to erase
+ * @return true if Erase succes, otherwise return false
+ */
+ bool RemoveRequest(const RequestInfoPtr request_info);
+
+ /*
+ * @brief Erase request from colletion by connection_key
+ * @param connection_key - connection_key of requests to erase
+ * @return count of erased requests
+ */
+ uint32_t RemoveByConnectionKey(uint32_t connection_key);
+
+ /*
+ * @brief Erase all mobile requests from controller
+ * @return count of erased requests
+ */
+ uint32_t RemoveMobileRequests();
+
+ /*
+ * @return count of requestd in collections
+ */
+ const size_t Size();
+
+ /**
+ * @brief Check if this app is able to add new requests,
+ * or limits was exceeded
+ * @param app_id - application id
+ * @param app_time_scale - time scale (seconds)
+ * @param max_request_per_time_scale - maximum count of request
+ * that should be allowed for app_time_scale seconds
+ * @return True if new request could be added, false otherwise
+ */
+ bool CheckTimeScaleMaxRequest(uint32_t app_id,
+ uint32_t app_time_scale,
+ uint32_t max_request_per_time_scale);
+
+ /**
+ * @brief Check if this app is able to add new requests
+ * in current hmi_level, or limits was exceeded
+ * @param hmi_level - hmi level
+ * @param app_id - application id
+ * @param app_time_scale - time scale (seconds)
+ * @param max_request_per_time_scale - maximum count of request
+ * that should be allowed for app_time_scale seconds
+ * @return True if new request could be added, false otherwise
+ */
+ bool CheckHMILevelTimeScaleMaxRequest(mobile_apis::HMILevel::eType hmi_level,
+ uint32_t app_id,
+ uint32_t app_time_scale,
+ uint32_t max_request_per_time_scale);
+ private:
+ /*
+ * @brief Comparator of connection key for std::find_if function
+ */
+ struct AppIdCompararator {
+ enum CompareType {Equal, NotEqual};
+ AppIdCompararator(CompareType compare_type, uint32_t app_id):
+ app_id_(app_id),
+ compare_type_(compare_type) {}
+ bool operator()(const RequestInfoPtr value_compare) const;
+
+ private:
+ uint32_t app_id_;
+ CompareType compare_type_;
+ };
+
+ bool Erase(const RequestInfoPtr request_info);
+
+ /*
+ * @brief Erase requests from collection if filter allows
+ * @param filter - filtering predicate
+ * @return count of erased requests
+ */
+ uint32_t RemoveRequests(const RequestInfoSet::AppIdCompararator& filter);
+
+ /*
+ * @brief Debug function, will raise assert if set sizes are noit equal
+ */
+ inline void CheckSetSizes();
+ TimeSortedRequestInfoSet time_sorted_pending_requests_;
+ HashSortedRequestInfoSet hash_sorted_pending_requests_;
+
+ // the lock caled this_lock_, since the class represent collection by itself.
+ sync_primitives::Lock this_lock_;
};
+
/**
* @brief Structure used in std algorithms to determine amount of request
* during time scale
@@ -186,7 +296,6 @@ namespace request_controller {
app_id_(app_id) {}
bool operator()(RequestInfoPtr setEntry) {
-
if (!setEntry.valid()) {
return false;
}
@@ -247,6 +356,7 @@ namespace request_controller {
return true;
}
+
private:
TimevalStruct start_;
TimevalStruct end_;
@@ -254,9 +364,7 @@ namespace request_controller {
mobile_apis::HMILevel::eType hmi_level_;
};
-
-
} // namespace request_controller
-} // namespace application_manager
+} // namespace application_manager
#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_REQUEST_INFO_H_
diff --git a/src/components/application_manager/include/application_manager/resume_ctrl.h b/src/components/application_manager/include/application_manager/resume_ctrl.h
index 463df0b867..c30df0a7b9 100644
--- a/src/components/application_manager/include/application_manager/resume_ctrl.h
+++ b/src/components/application_manager/include/application_manager/resume_ctrl.h
@@ -1,5 +1,5 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
+/*
+ * Copyright (c) 2015, Ford Motor Company
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -88,7 +88,7 @@ class ResumeCtrl: public event_engine::EventObserver {
* @param application is application witch HMI Level is need to restore
* @return true if success, otherwise return false
*/
- bool RestoreApplicationHMILevel(ApplicationSharedPtr application);
+ bool RestoreAppHMIState(ApplicationSharedPtr application);
/**
* @brief Set application HMI Level as stored in policy
@@ -106,9 +106,8 @@ class ResumeCtrl: public event_engine::EventObserver {
* @param check_policy indicate if policy data consent must be verified
* @return true if success, otherwise return false
*/
- bool SetupHMILevel(ApplicationSharedPtr application,
- mobile_apis::HMILevel::eType hmi_level,
- mobile_apis::AudioStreamingState::eType audio_streaming_state,
+ bool SetAppHMIState(ApplicationSharedPtr application,
+ const mobile_apis::HMILevel::eType hmi_level,
bool check_policy = true);
/**
@@ -127,15 +126,33 @@ class ResumeCtrl: public event_engine::EventObserver {
/**
* @brief Remove application from list of saved applications
- * @param application is application witch need to be removed
+ * @param mobile_app_id application witch need to be removed
* @return return true, if success, otherwise return false
*/
- bool RemoveApplicationFromSaved(ApplicationConstSharedPtr application);
+ bool RemoveApplicationFromSaved(const std::string& mobile_app_id);
/**
* @brief Increments ignition counter for all registered applications
+ * and remember ign_off time stamp
*/
- void IgnitionOff();
+ void Suspend();
+
+ /**
+ * @brief Increments ignition counter for all registered applications
+ * and remember ign_off time stamp
+ */
+ void OnAwake();
+
+ /**
+ * @brief Method starts timer "RsmCtrlPercist" when SDL receives onAwakeSDL notification
+ */
+ void StartSavePersistentDataTimer();
+
+ /**
+ * @brief Method stops timer "RsmCtrlPercist" when SDL receives OnExitAllApplication notification
+ * with reason "SUSPEND"
+ */
+ void StopSavePersistentDataTimer();
/**
* @brief Start timer for resumption applications
@@ -143,7 +160,7 @@ class ResumeCtrl: public event_engine::EventObserver {
* @param application that is need to be restored
* @return true if it was saved, otherwise return false
*/
- bool StartResumption(ApplicationSharedPtr application, uint32_t hash);
+ bool StartResumption(ApplicationSharedPtr application, const std::string& hash);
/**
* @brief Start timer for resumption applications
@@ -165,7 +182,7 @@ class ResumeCtrl: public event_engine::EventObserver {
* @param application that is need to be restored
* @return true if it was saved, otherwise return false
*/
- bool CheckApplicationHash(ApplicationSharedPtr application, uint32_t hash);
+ bool CheckApplicationHash(ApplicationSharedPtr application, const std::string& hash);
/**
* @brief Check if Resume controller have saved application with hmi app id
@@ -192,17 +209,36 @@ class ResumeCtrl: public event_engine::EventObserver {
uint32_t GetHMIApplicationID(const std::string& mobile_app_id);
/**
- * @brief Timer callback function
- *
+ * @brief SaveDataOnTimer :
+ * Timer callback for persisting ResumptionData each N seconds
+ * N gets from property
*/
- void onTimer();
+ void SaveDataOnTimer();
void ClearResumptionInfo();
+ void ApplicationsDataUpdated() {
+ is_data_saved = false;
+ }
+
+ /**
+ * @brief Resume HMI Level and audio streaming state if needed
+ * @param application - application to restore hmi level
+ * and audio streaming state
+ */
+ void StartAppHmiStateResumption(ApplicationSharedPtr application);
+ /**
+ * @brief Update launch_time_ to current
+ */
+ void ResetLaunchTime();
+
private:
+
typedef std::pair<uint32_t, uint32_t> application_timestamp;
+ std::set<ApplicationSharedPtr> retrieve_application();
+
/**
* @brief This struct need to map
* timestamp and application from correlationID
@@ -220,6 +256,12 @@ class ResumeCtrl: public event_engine::EventObserver {
};
/**
+ * @brief geter for launch_time_
+ * @return value of launch_time_
+ */
+ time_t launch_time() const;
+
+ /**
* @brief Check device MAC address
*
* @param application that is need to be restored
@@ -229,9 +271,34 @@ class ResumeCtrl: public event_engine::EventObserver {
*/
bool IsDeviceMacAddressEqual(ApplicationSharedPtr application,
const std::string& saved_device_mac);
+ /**
+ * @brief Get Resumption section of LastState
+ * @return Resumption section of LastState in Json
+ */
+ Json::Value& GetResumptionData();
+ /**
+ * @brief Get applications for resumption of LastState
+ * @return applications for resumption of LastState
+ */
Json::Value& GetSavedApplications();
+ /**
+ * @brief Get the last ignition off time from LastState
+ * @return the last ignition off time from LastState
+ */
+ time_t GetIgnOffTime();
+
+ /**
+ * @brief Setup IgnOff time to LastState
+ * @param ign_off_time - igition off time
+ */
+ void SetLastIgnOffTime(time_t ign_off_time);
+
+ /**
+ * @brief Set applications for resumption to LastState
+ * @parems apps_json applications to write in LastState
+ */
void SetSavedApplication(Json::Value& apps_json);
Json::Value GetApplicationCommands(
@@ -249,21 +316,184 @@ class ResumeCtrl: public event_engine::EventObserver {
Json::Value GetApplicationShow(
ApplicationConstSharedPtr application);
- Json::Value JsonFromSO(
- const NsSmartDeviceLink::NsSmartObjects::SmartObject *so);
+ Json::Value JsonFromSO(const smart_objects::SmartObject *so);
void SendHMIRequest(const hmi_apis::FunctionID::eType& function_id,
const smart_objects::SmartObject* msg_params = NULL,
bool use_events = false);
bool ProcessHMIRequest(
- NsSmartDeviceLink::NsSmartObjects::SmartObject* request = NULL,
+ smart_objects::SmartObjectSPtr request = NULL,
bool use_events = false);
+ void InsertToTimerQueue(uint32_t app_id, uint32_t time_stamp);
+
+ /**
+ * @brief AddFiles allows to add files for the application
+ * which should be resumed
+ *
+ * @param application application which will be resumed
+ *
+ * @param saved_app application specific section from backup file
+ */
+ void AddFiles(ApplicationSharedPtr application, const Json::Value& saved_app);
+
/**
- * @brief Time step to check resumption TIME_OUT
+ * @brief AddSubmenues allows to add sub menues for the application
+ * which should be resumed
+ *
+ * @param application application which will be resumed
+ *
+ * @param saved_app application specific section from backup file
+ */
+ void AddSubmenues(ApplicationSharedPtr application, const Json::Value& saved_app);
+
+ /**
+ * @brief AddCommands allows to add commands for the application
+ * which should be resumed
+ *
+ * @param application application which will be resumed
+ *
+ * @param saved_app application specific section from backup file
+ */
+ void AddCommands(ApplicationSharedPtr application, const Json::Value& saved_app);
+
+ /**
+ * @brief AddChoicesets allows to add choice sets for the application
+ * which should be resumed
+ *
+ * @param application application which will be resumed
+ *
+ * @param saved_app application specific section from backup file
+ */
+ void AddChoicesets(ApplicationSharedPtr application, const Json::Value& saved_app);
+
+ /**
+ * @brief SetGlobalProperties allows to restore global properties.
+ *
+ * @param application application which will be resumed
+ *
+ * @param saved_app application specific section from backup file
+ */
+ void SetGlobalProperties(ApplicationSharedPtr application, const Json::Value& saved_app);
+
+ /**
+ * @brief AddSubscriptions allows to restore subscriptions
+ *
+ * @param application application which will be resumed
+ *
+ * @param saved_app application specific section from backup file
+ */
+ void AddSubscriptions(ApplicationSharedPtr application, const Json::Value& saved_app);
+
+ /**
+ * @brief ProcessHMIRequests allows to process obtained requests.
+ *
+ * @param requests request that should be processed.
+ */
+ void ProcessHMIRequests(const smart_objects::SmartObjectList& requests);
+
+ /**
+ * @brief CheckIcons allows to check application icons
+ *
+ * @param application application under resumtion application
+ *
+ * @param json_object
+ *
+ * @return true in case icons exists, false otherwise
+ */
+ bool CheckIcons(ApplicationSharedPtr application, const Json::Value& json_object);
+
+ /**
+ * @brief GetFromSavedOrAppend allows to get existed record about application
+ * or adds the new one.
+ *
+ * @param mobile_app_id application id.
+ *
+ * @return the reference to the record in applications array.
+ */
+ Json::Value& GetFromSavedOrAppend(const std::string& mobile_app_id);
+
+ /**
+ * @brief CheckIgnCycleRestrictions checks if is needed to resume HMI state
+ * by ign cycle restrictions
+ * @param json_app - saved application
+ * @return true if resumptions allowed, otherwise return false
+ */
+ bool CheckIgnCycleRestrictions(const Json::Value& json_app);
+
+ /**
+ * @brief DisconnectedInLastIgnCycle should check if was connected in prev ign cycle
+ * @param json_app - saved applicationa
+ * @return true if app connected in frep ign_cycle otherwise return false
+ */
+ bool DisconnectedInLastIgnCycle(const Json::Value& json_app);
+
+ /**
+ * @brief DisconnectedJustBeforeIgnOff should check if application
+ * was dissconnected in N secconds delay before ign off.
+ * N will be readed from profile
+ * @param json_app - saved applicationa
+ * @return was dissconnected in N secconds delay before ign off
+ * otherwise return false
+ */
+ bool DisconnectedJustBeforeIgnOff(const Json::Value& json_app);
+
+ /**
+ * @brief CheckDelayAfterIgnOn should check if SDL was started less
+ * then N secconds ago. N will be readed from profile.
+ * @return true if SDL started N secconds ago, otherwise return false
+ */
+ bool CheckDelayAfterIgnOn();
+
+ /**
+ * @brief CheckAppRestrictions checks if is needed to resume HMI state
+ * by application type and saved app_level
+ * @param json_app - saved application
+ * @return true if resumptions allowed, otherwise return false
+ */
+ bool CheckAppRestrictions(ApplicationSharedPtr application,
+ const Json::Value& json_app);
+ /**
+ * @brief GetObjectIndex allows to obtain specified obbject index from
+ * applications arrays.
+ *
+ * @param mobile_app_id application id that should be found.
+ *
+ * @return application's index of or -1 if it doesn't exists
+ */
+ int GetObjectIndex(const std::string& mobile_app_id);
+
+ /**
+ * @brief Timer callback for restoring HMI Level
+ *
+ */
+ void ApplicationResumptiOnTimer();
+
+ /*
+ * @brief Loads data on start up
+ */
+ void LoadResumeData();
+
+ /*
+ * @brief Return true if application resumption data is valid,
+ * otherwise false
+ *
+ * @param index application index in the resumption list
*/
- static const uint32_t kTimeStep = 3;
+ bool IsResumptionDataValid(uint32_t index);
+
+ template<typename Iterator>
+ Json::Value Append(Iterator first,
+ Iterator last,
+ const std::string& key,
+ Json::Value& result) {
+ while (first != last) {
+ result[key].append(*first);
+ ++first;
+ }
+ return result;
+ }
/**
* @brief times of IGN_OFF that zombie application have to be saved.
@@ -275,10 +505,15 @@ class ResumeCtrl: public event_engine::EventObserver {
* wait for timer to resume HMI Level
*
*/
- std::multiset<application_timestamp, TimeStampComparator> waiting_for_timer_;
mutable sync_primitives::Lock queue_lock_;
+ sync_primitives::Lock resumtion_lock_;
ApplicationManagerImpl* app_mngr_;
- timer::TimerThread<ResumeCtrl> timer_;
+ timer::TimerThread<ResumeCtrl> save_persistent_data_timer_;
+ timer::TimerThread<ResumeCtrl> restore_hmi_level_timer_;
+ std::vector<uint32_t> waiting_for_timer_;
+ bool is_resumption_active_;
+ bool is_data_saved;
+ time_t launch_time_;
};
} // namespace application_manager
diff --git a/src/components/application_manager/include/application_manager/smart_object_keys.h b/src/components/application_manager/include/application_manager/smart_object_keys.h
index 3d03989874..5d280e622e 100644
--- a/src/components/application_manager/include/application_manager/smart_object_keys.h
+++ b/src/components/application_manager/include/application_manager/smart_object_keys.h
@@ -50,11 +50,14 @@ const char default_app_id[] = "default";
const char msg_params[] = "msg_params";
+const char method_name[] = "methodName";
const char info[] = "info";
const char app_id[] = "appID";
const char hmi_app_id[] = "hmiAppID";
const char device_mac[] = "deviceMAC";
const char url[] = "url";
+const char urlSchema[] = "urlSchema";
+const char packageName[] = "packageName";
const char cmd_icon[] = "cmdIcon";
const char result_code[] = "resultCode";
const char success[] = "success";
@@ -252,9 +255,14 @@ const char application_subscribtions[] = "subscribtions";
const char application_files[] = "applicationFiles";
const char application_show[] = "applicationShow";
const char resumption[] = "resumption";
+const char resume_app_list[] = "resume_app_list";
+const char last_ign_off_time[] = "last_ign_off_time";
+
const char resume_vr_grammars[] = "resumeVrGrammars";
const char ign_off_count[] = "ign_off_count";
+const char suspend_count[] = "suspend_count";
+
const char connection_info[] = "connection_info";
const char is_download_complete[] = "is_download_complete";
diff --git a/src/components/application_manager/include/application_manager/time_metric_observer.h b/src/components/application_manager/include/application_manager/time_metric_observer.h
index 780401f6f3..de3deb8372 100644
--- a/src/components/application_manager/include/application_manager/time_metric_observer.h
+++ b/src/components/application_manager/include/application_manager/time_metric_observer.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2014, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/include/application_manager/usage_statistics.h b/src/components/application_manager/include/application_manager/usage_statistics.h
index dcd57aee34..d6ff1f2c49 100644
--- a/src/components/application_manager/include/application_manager/usage_statistics.h
+++ b/src/components/application_manager/include/application_manager/usage_statistics.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2014, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/src/application_data_impl.cc b/src/components/application_manager/src/application_data_impl.cc
index 56fc88ffe3..ce143fab5c 100644
--- a/src/components/application_manager/src/application_data_impl.cc
+++ b/src/components/application_manager/src/application_data_impl.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -30,15 +30,18 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
+#include <algorithm>
+
#include "application_manager/application_data_impl.h"
#include "application_manager/smart_object_keys.h"
+#include "utils/logger.h"
namespace application_manager {
+CREATE_LOGGERPTR_GLOBAL(logger_, "ApplicationDataImpl")
InitialApplicationDataImpl::InitialApplicationDataImpl()
: app_types_(NULL),
vr_synonyms_(NULL),
- mobile_app_id_(NULL),
tts_name_(NULL),
ngn_media_screen_name_(NULL),
language_(mobile_api::Language::INVALID_ENUM),
@@ -56,11 +59,6 @@ InitialApplicationDataImpl::~InitialApplicationDataImpl() {
vr_synonyms_ = NULL;
}
- if (mobile_app_id_) {
- delete mobile_app_id_;
- mobile_app_id_ = NULL;
- }
-
if (tts_name_) {
delete tts_name_;
tts_name_ = NULL;
@@ -82,8 +80,7 @@ InitialApplicationDataImpl::vr_synonyms() const {
return vr_synonyms_;
}
-const smart_objects::SmartObject*
-InitialApplicationDataImpl::mobile_app_id() const {
+std::string InitialApplicationDataImpl::mobile_app_id() const {
return mobile_app_id_;
}
@@ -124,11 +121,8 @@ void InitialApplicationDataImpl::set_vr_synonyms(
}
void InitialApplicationDataImpl::set_mobile_app_id(
- const smart_objects::SmartObject& mobile_app_id) {
- if (mobile_app_id_) {
- delete mobile_app_id_;
- }
- mobile_app_id_ = new smart_objects::SmartObject(mobile_app_id);
+ const std::string& mobile_app_id) {
+ mobile_app_id_ = mobile_app_id;
}
void InitialApplicationDataImpl::set_tts_name(
@@ -171,6 +165,7 @@ DynamicApplicationDataImpl::DynamicApplicationDataImpl()
menu_icon_(NULL),
tbt_show_command_(NULL),
commands_(),
+ commands_lock_(true),
sub_menu_(),
choice_set_map_(),
performinteraction_choice_set_map_(),
@@ -265,18 +260,42 @@ DynamicApplicationDataImpl::tbt_show_command() const {
return tbt_show_command_;
}
-const NsSmartDeviceLink::NsSmartObjects::SmartObject *DynamicApplicationDataImpl::keyboard_props() const {
+const smart_objects::SmartObject* DynamicApplicationDataImpl::keyboard_props() const {
return keyboard_props_;
}
-const NsSmartDeviceLink::NsSmartObjects::SmartObject *DynamicApplicationDataImpl::menu_title() const {
+const smart_objects::SmartObject* DynamicApplicationDataImpl::menu_title() const {
return menu_title_;
}
-const NsSmartDeviceLink::NsSmartObjects::SmartObject* DynamicApplicationDataImpl::menu_icon() const {
+const smart_objects::SmartObject* DynamicApplicationDataImpl::menu_icon() const {
return menu_icon_;
}
+void DynamicApplicationDataImpl::load_global_properties(
+ const smart_objects::SmartObject& properties_so) {
+ SetGlobalProperties(properties_so.getElement(strings::vr_help_title),
+ &DynamicApplicationData::set_vr_help_title);
+
+ SetGlobalProperties(properties_so.getElement(strings::vr_help),
+ &DynamicApplicationData::set_vr_help);
+
+ SetGlobalProperties(properties_so.getElement(strings::timeout_prompt),
+ &DynamicApplicationData::set_timeout_prompt);
+
+ SetGlobalProperties(properties_so.getElement(strings::help_prompt),
+ &DynamicApplicationData::set_help_prompt);
+
+ SetGlobalProperties(properties_so.getElement(strings::keyboard_properties),
+ &DynamicApplicationData::set_keyboard_props);
+
+ SetGlobalProperties(properties_so.getElement(strings::menu_title),
+ &DynamicApplicationData::set_menu_title);
+
+ SetGlobalProperties(properties_so.getElement(strings::menu_icon),
+ &DynamicApplicationData::set_menu_icon);
+}
+
void DynamicApplicationDataImpl::set_help_prompt(
const smart_objects::SmartObject& help_prompt) {
if (help_prompt_) {
@@ -368,15 +387,31 @@ void DynamicApplicationDataImpl::set_menu_icon(
menu_icon_= new smart_objects::SmartObject(menu_icon);
}
+void DynamicApplicationDataImpl::SetGlobalProperties(
+ const smart_objects::SmartObject& param,
+ void (DynamicApplicationData::*callback)(
+ const NsSmartDeviceLink::NsSmartObjects::SmartObject&)) {
+
+ smart_objects::SmartType so_type = param.getType();
+ if (so_type != smart_objects::SmartType::SmartType_Invalid &&
+ so_type != smart_objects::SmartType::SmartType_Null) {
+ if (callback) {
+ (this->*callback)(param);
+ }
+ } else {
+ LOG4CXX_WARN(logger_, "Invalid or Null smart object");
+ }
+}
void DynamicApplicationDataImpl::AddCommand(
uint32_t cmd_id, const smart_objects::SmartObject& command) {
+ sync_primitives::AutoLock lock(commands_lock_);
commands_[cmd_id] = new smart_objects::SmartObject(command);
}
void DynamicApplicationDataImpl::RemoveCommand(uint32_t cmd_id) {
+ sync_primitives::AutoLock lock(commands_lock_);
CommandsMap::iterator it = commands_.find(cmd_id);
-
if (commands_.end() != it) {
delete it->second;
commands_.erase(it);
@@ -385,6 +420,7 @@ void DynamicApplicationDataImpl::RemoveCommand(uint32_t cmd_id) {
smart_objects::SmartObject* DynamicApplicationDataImpl::FindCommand(
uint32_t cmd_id) {
+ sync_primitives::AutoLock lock(commands_lock_);
CommandsMap::const_iterator it = commands_.find(cmd_id);
if (it != commands_.end()) {
return it->second;
@@ -396,10 +432,12 @@ smart_objects::SmartObject* DynamicApplicationDataImpl::FindCommand(
// TODO(VS): Create common functions for processing collections
void DynamicApplicationDataImpl::AddSubMenu(
uint32_t menu_id, const smart_objects::SmartObject& menu) {
+ sync_primitives::AutoLock lock(sub_menu_lock_);
sub_menu_[menu_id] = new smart_objects::SmartObject(menu);
}
void DynamicApplicationDataImpl::RemoveSubMenu(uint32_t menu_id) {
+ sync_primitives::AutoLock lock(sub_menu_lock_);
SubMenuMap::iterator it = sub_menu_.find(menu_id);
if (sub_menu_.end() != it) {
@@ -410,6 +448,7 @@ void DynamicApplicationDataImpl::RemoveSubMenu(uint32_t menu_id) {
smart_objects::SmartObject* DynamicApplicationDataImpl::FindSubMenu(
uint32_t menu_id) const {
+ sync_primitives::AutoLock lock(sub_menu_lock_);
SubMenuMap::const_iterator it = sub_menu_.find(menu_id);
if (it != sub_menu_.end()) {
return it->second;
@@ -420,6 +459,7 @@ smart_objects::SmartObject* DynamicApplicationDataImpl::FindSubMenu(
bool DynamicApplicationDataImpl::IsSubMenuNameAlreadyExist(
const std::string& name) {
+ sync_primitives::AutoLock lock(sub_menu_lock_);
for (SubMenuMap::iterator it = sub_menu_.begin();
sub_menu_.end() != it;
++it) {
@@ -433,10 +473,12 @@ bool DynamicApplicationDataImpl::IsSubMenuNameAlreadyExist(
void DynamicApplicationDataImpl::AddChoiceSet(
uint32_t choice_set_id, const smart_objects::SmartObject& choice_set) {
+ sync_primitives::AutoLock lock(choice_set_map_lock_);
choice_set_map_[choice_set_id] = new smart_objects::SmartObject(choice_set);
}
void DynamicApplicationDataImpl::RemoveChoiceSet(uint32_t choice_set_id) {
+ sync_primitives::AutoLock lock(choice_set_map_lock_);
ChoiceSetMap::iterator it = choice_set_map_.find(choice_set_id);
if (choice_set_map_.end() != it) {
@@ -447,6 +489,7 @@ void DynamicApplicationDataImpl::RemoveChoiceSet(uint32_t choice_set_id) {
smart_objects::SmartObject* DynamicApplicationDataImpl::FindChoiceSet(
uint32_t choice_set_id) {
+ sync_primitives::AutoLock lock(choice_set_map_lock_);
ChoiceSetMap::const_iterator it = choice_set_map_.find(choice_set_id);
if (it != choice_set_map_.end()) {
return it->second;
@@ -457,11 +500,13 @@ smart_objects::SmartObject* DynamicApplicationDataImpl::FindChoiceSet(
void DynamicApplicationDataImpl::AddPerformInteractionChoiceSet(
uint32_t choice_set_id, const smart_objects::SmartObject& vr_commands) {
+ sync_primitives::AutoLock lock(performinteraction_choice_set_lock_);
performinteraction_choice_set_map_[choice_set_id] =
new smart_objects::SmartObject(vr_commands);
}
void DynamicApplicationDataImpl::DeletePerformInteractionChoiceSetMap() {
+ sync_primitives::AutoLock lock(performinteraction_choice_set_lock_);
PerformChoiceSetMap::iterator it = performinteraction_choice_set_map_.begin();
for (; performinteraction_choice_set_map_.end() != it; ++it) {
delete it->second;
@@ -472,6 +517,7 @@ void DynamicApplicationDataImpl::DeletePerformInteractionChoiceSetMap() {
smart_objects::SmartObject*
DynamicApplicationDataImpl::FindPerformInteractionChoiceSet(
uint32_t choice_set_id) const {
+ sync_primitives::AutoLock lock(performinteraction_choice_set_lock_);
PerformChoiceSetMap::const_iterator it = performinteraction_choice_set_map_
.find(choice_set_id);
diff --git a/src/components/application_manager/src/application_impl.cc b/src/components/application_manager/src/application_impl.cc
index f52467f751..aba0563ad1 100644
--- a/src/components/application_manager/src/application_impl.cc
+++ b/src/components/application_manager/src/application_impl.cc
@@ -1,5 +1,5 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
+/*
+ * Copyright (c) 2015, Ford Motor Company
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -32,13 +32,14 @@
#include <string>
#include <strings.h>
-#include <stdlib.h>
#include "application_manager/application_impl.h"
#include "application_manager/message_helper.h"
+#include "application_manager/application_manager_impl.h"
#include "config_profile/profile.h"
#include "interfaces/MOBILE_API.h"
#include "utils/file_system.h"
#include "utils/logger.h"
+#include "utils/gen_hash.h"
namespace {
@@ -82,7 +83,7 @@ ApplicationImpl::ApplicationImpl(uint32_t application_id,
app_id_(application_id),
active_message_(NULL),
is_media_(false),
- allowed_support_navigation_(false),
+ is_navi_(false),
hmi_supports_navi_video_streaming_(false),
hmi_supports_navi_audio_streaming_(false),
is_app_allowed_(true),
@@ -111,9 +112,10 @@ ApplicationImpl::ApplicationImpl(uint32_t application_id,
{date_time::DateTime::getCurrentTime(), 0};
- set_mobile_app_id(smart_objects::SmartObject(mobile_app_id));
+ set_mobile_app_id(mobile_app_id);
set_name(app_name);
+ MarkUnregistered();
// subscribe application to custom button by default
SubscribeToButton(mobile_apis::ButtonName::CUSTOM_BUTTON);
@@ -147,16 +149,24 @@ bool ApplicationImpl::IsFullscreen() const {
return mobile_api::HMILevel::HMI_FULL == hmi_level_;
}
-bool ApplicationImpl::MakeFullscreen() {
- hmi_level_ = mobile_api::HMILevel::HMI_FULL;
- if (is_media_ && !tts_speak_state_) {
- audio_streaming_state_ = mobile_api::AudioStreamingState::AUDIBLE;
- }
- system_context_ = mobile_api::SystemContext::SYSCTXT_MAIN;
- if (!has_been_activated_) {
- has_been_activated_ = true;
+void ApplicationImpl::ChangeSupportingAppHMIType() {
+ is_navi_ = false;
+ is_voice_communication_application_ = false;
+ const smart_objects::SmartObject& array_app_types = *app_types_;
+ uint32_t lenght_app_types = array_app_types.length();
+
+ for (uint32_t i = 0; i < lenght_app_types; ++i) {
+ if (mobile_apis::AppHMIType::NAVIGATION ==
+ static_cast<mobile_apis::AppHMIType::eType>(
+ array_app_types[i].asUInt())) {
+ is_navi_ = true;
+ }
+ if (mobile_apis::AppHMIType::COMMUNICATION ==
+ static_cast<mobile_apis::AppHMIType::eType>(
+ array_app_types[i].asUInt())) {
+ is_voice_communication_application_ = true;
+ }
}
- return true;
}
bool ApplicationImpl::IsAudible() const {
@@ -164,17 +174,8 @@ bool ApplicationImpl::IsAudible() const {
|| mobile_api::HMILevel::HMI_LIMITED == hmi_level_;
}
-void ApplicationImpl::MakeNotAudible() {
- hmi_level_ = mobile_api::HMILevel::HMI_BACKGROUND;
- audio_streaming_state_ = mobile_api::AudioStreamingState::NOT_AUDIBLE;
-}
-
-bool ApplicationImpl::allowed_support_navigation() const {
- return allowed_support_navigation_;
-}
-
-void ApplicationImpl::set_allowed_support_navigation(bool allow) {
- allowed_support_navigation_ = allow;
+void ApplicationImpl::set_is_navi(bool allow) {
+ is_navi_ = allow;
}
bool ApplicationImpl::is_voice_communication_supported() const {
@@ -189,7 +190,7 @@ void ApplicationImpl::set_voice_communication_supported(
bool ApplicationImpl::IsAudioApplication() const {
return is_media_ ||
is_voice_communication_application_ ||
- allowed_support_navigation_;
+ is_navi_;
}
const smart_objects::SmartObject* ApplicationImpl::active_message() const {
@@ -209,7 +210,7 @@ const std::string& ApplicationImpl::name() const {
}
const std::string ApplicationImpl::folder_name() const {
- return name() + mobile_app_id()->asString();
+ return name() + mobile_app_id();
}
bool ApplicationImpl::is_media_application() const {
@@ -295,7 +296,7 @@ void ApplicationImpl::set_hmi_level(
delete_file_in_none_count_ = 0;
list_files_in_none_count_ = 0;
}
-
+ LOG4CXX_INFO(logger_, "hmi_level = " << hmi_level);
hmi_level_ = hmi_level;
usage_report_.RecordHmiStateChanged(hmi_level);
}
@@ -372,7 +373,7 @@ void ApplicationImpl::OnVideoStreamRetry() {
video_stream_retry_timer_->updateTimeOut(time_out);
} else {
LOG4CXX_INFO(logger_, "Stop video streaming retry");
- video_stream_retry_timer_.release();
+ video_stream_retry_timer_->stop();
set_video_stream_retry_active(false);
}
}
@@ -391,7 +392,7 @@ void ApplicationImpl::OnAudioStreamRetry() {
audio_stream_retry_timer_->updateTimeOut(time_out);
} else {
LOG4CXX_INFO(logger_, "Stop audio streaming retry");
- audio_stream_retry_timer_.release();
+ audio_stream_retry_timer_->stop();
set_audio_stream_retry_active(false);
}
}
@@ -415,7 +416,7 @@ void ApplicationImpl::set_system_context(
void ApplicationImpl::set_audio_streaming_state(
const mobile_api::AudioStreamingState::eType& state) {
- if (!is_media_application()
+ if (!(is_media_application() || is_navi())
&& state != mobile_api::AudioStreamingState::NOT_AUDIBLE) {
LOG4CXX_WARN(logger_, "Trying to set audio streaming state"
" for non-media application to different from NOT_AUDIBLE");
@@ -452,6 +453,11 @@ bool ApplicationImpl::has_been_activated() const {
return has_been_activated_;
}
+bool ApplicationImpl::set_activated(bool is_active) {
+ has_been_activated_ = is_active;
+ return true;
+}
+
void ApplicationImpl::set_protocol_version(
const ProtocolVersion& protocol_version) {
protocol_version_ = protocol_version;
@@ -599,7 +605,7 @@ bool ApplicationImpl::IsCommandLimitsExceeded(
// commands per minute, e.g. 10 command per minute i.e. 1 command per 6 sec
case POLICY_TABLE: {
uint32_t cmd_limit = application_manager::MessageHelper::GetAppCommandLimit(
- mobile_app_id_->asString());
+ mobile_app_id_);
if (0 == cmd_limit) {
return true;
@@ -646,19 +652,14 @@ const std::set<uint32_t>& ApplicationImpl::SubscribesIVI() const {
return subscribed_vehicle_info_;
}
-uint32_t ApplicationImpl::nextHash() {
- hash_val_ = rand();
- return hash_val_;
-}
-
-uint32_t ApplicationImpl::curHash() const {
+const std::string& ApplicationImpl::curHash() const {
return hash_val_;
}
-uint32_t ApplicationImpl::UpdateHash() {
- uint32_t new_hash= nextHash();
+void ApplicationImpl::UpdateHash() {
+ LOG4CXX_AUTO_TRACE(logger_);
+ hash_val_ = utils::gen_hash(profile::Profile::instance()->hash_string_size());
MessageHelper::SendHashUpdateNotification(app_id());
- return new_hash;
}
void ApplicationImpl::CleanupFiles() {
diff --git a/src/components/application_manager/src/application_manager_impl.cc b/src/components/application_manager/src/application_manager_impl.cc
index 6d7fdeec61..1c4a924c06 100644
--- a/src/components/application_manager/src/application_manager_impl.cc
+++ b/src/components/application_manager/src/application_manager_impl.cc
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright (c) 2014, Ford Motor Company
* All rights reserved.
*
@@ -35,6 +35,7 @@
#include <climits>
#include <string>
#include <fstream>
+#include <utility>
#include "application_manager/application_manager_impl.h"
#include "application_manager/mobile_command_factory.h"
@@ -51,10 +52,19 @@
#include "config_profile/profile.h"
#include "utils/threads/thread.h"
#include "utils/file_system.h"
+#include "utils/helpers.h"
+#include "smart_objects/enum_schema_item.h"
+#include "interfaces/HMI_API_schema.h"
#include "application_manager/application_impl.h"
#include "usage_statistics/counter.h"
#include <time.h>
+namespace {
+ int get_rand_from_range(uint32_t from = 0, int to = RAND_MAX) {
+ return std::rand() % to + from;
+ }
+}
+
namespace application_manager {
CREATE_LOGGERPTR_GLOBAL(logger_, "ApplicationManager")
@@ -65,6 +75,8 @@ const uint32_t ApplicationManagerImpl::max_corelation_id_ = UINT_MAX;
namespace formatters = NsSmartDeviceLink::NsJSONHandler::Formatters;
namespace jhs = NsSmartDeviceLink::NsJSONHandler::strings;
+using namespace NsSmartDeviceLink::NsSmartObjects;
+
ApplicationManagerImpl::ApplicationManagerImpl()
: applications_list_lock_(true),
audio_pass_thru_active_(false),
@@ -83,9 +95,12 @@ ApplicationManagerImpl::ApplicationManagerImpl()
messages_to_mobile_("AM ToMobile", this),
messages_from_hmi_("AM FromHMI", this),
messages_to_hmi_("AM ToHMI", this),
+ audio_pass_thru_messages_("AudioPassThru", this),
hmi_capabilities_(this),
- unregister_reason_(mobile_api::AppInterfaceUnregisteredReason::IGNITION_OFF),
+ unregister_reason_(mobile_api::AppInterfaceUnregisteredReason::INVALID_ENUM),
resume_ctrl_(this),
+ end_services_timer("EndServiceTimer", this, &ApplicationManagerImpl::EndNaviServices),
+ wait_end_service_timeout_(profile::Profile::instance()->stop_streaming_timeout()),
#ifdef TIME_TESTER
metric_observer_(NULL),
#endif // TIME_TESTER
@@ -93,8 +108,10 @@ ApplicationManagerImpl::ApplicationManagerImpl()
tts_global_properties_timer_("TTSGLPRTimer",
this,
&ApplicationManagerImpl::OnTimerSendTTSGlobalProperties,
- true) {
+ true),
+ is_low_voltage_(false) {
std::srand(std::time(0));
+ AddPolicyObserver(this);
}
ApplicationManagerImpl::~ApplicationManagerImpl() {
@@ -104,17 +121,18 @@ ApplicationManagerImpl::~ApplicationManagerImpl() {
media_manager_ = NULL;
hmi_handler_ = NULL;
connection_handler_ = NULL;
- if (hmi_so_factory_) {
+ if(hmi_so_factory_) {
delete hmi_so_factory_;
+ hmi_so_factory_ = NULL;
}
- hmi_so_factory_ = NULL;
- if (mobile_so_factory_) {
+ if(mobile_so_factory_) {
delete mobile_so_factory_;
+ mobile_so_factory_ = NULL;
}
- mobile_so_factory_ = NULL;
protocol_handler_ = NULL;
media_manager_ = NULL;
LOG4CXX_INFO(logger_, "Destroying Policy Handler");
+ RemovePolicyObserver(this);
policy::PolicyHandler::destroy();
}
@@ -129,7 +147,7 @@ bool ApplicationManagerImpl::Stop() {
}
- // for PASA customer policy backup should happen OnExitAllApp(SUSPEND)
+ // for PASA customer policy backup should happen :AllApp(SUSPEND)
LOG4CXX_INFO(logger_, "Unloading policy library.");
policy::PolicyHandler::instance()->UnloadPolicyLibrary();
@@ -137,103 +155,123 @@ bool ApplicationManagerImpl::Stop() {
}
ApplicationSharedPtr ApplicationManagerImpl::application(uint32_t app_id) const {
- sync_primitives::AutoLock lock(applications_list_lock_);
-
- std::set<ApplicationSharedPtr>::const_iterator it =
- application_list_.begin();
- for (; it != application_list_.end(); ++it) {
- if ((*it)->app_id() == app_id) {
- return (*it);
- }
- }
- return ApplicationSharedPtr();
+ AppIdPredicate finder(app_id);
+ ApplicationListAccessor accessor;
+ ApplicationSharedPtr app = accessor.Find(finder);
+ LOG4CXX_DEBUG(logger_, " app_id << " << app_id << "Found = " << app);
+ return app;
}
ApplicationSharedPtr ApplicationManagerImpl::application_by_hmi_app(
uint32_t hmi_app_id) const {
- sync_primitives::AutoLock lock(applications_list_lock_);
-
- std::set<ApplicationSharedPtr>::const_iterator it =
- application_list_.begin();
- for (; it != application_list_.end(); ++it) {
- if ((*it)->hmi_app_id() == hmi_app_id) {
- return (*it);
- }
- }
- return ApplicationSharedPtr();
+ HmiAppIdPredicate finder(hmi_app_id);
+ ApplicationListAccessor accessor;
+ ApplicationSharedPtr app = accessor.Find(finder);
+ LOG4CXX_DEBUG(logger_, " hmi_app_id << " << hmi_app_id << "Found = " << app);
+ return app;
}
ApplicationSharedPtr ApplicationManagerImpl::application_by_policy_id(
const std::string& policy_app_id) const {
- sync_primitives::AutoLock lock(applications_list_lock_);
+ MobileAppIdPredicate finder(policy_app_id);
+ ApplicationListAccessor accessor;
+ ApplicationSharedPtr app = accessor.Find(finder);
+ LOG4CXX_DEBUG(logger_, " policy_app_id << " << policy_app_id << "Found = " << app);
+ return app;
+}
- std::vector<ApplicationSharedPtr> result;
- for (std::set<ApplicationSharedPtr>::iterator it = application_list_.begin();
- application_list_.end() != it;
- ++it) {
- if (policy_app_id.compare((*it)->mobile_app_id()->asString()) == 0) {
- return *it;
- }
- }
- return ApplicationSharedPtr();
+bool ActiveAppPredicate (const ApplicationSharedPtr app) {
+ return app ? app->IsFullscreen() : false;
}
ApplicationSharedPtr ApplicationManagerImpl::active_application() const {
// TODO(DK) : check driver distraction
- for (std::set<ApplicationSharedPtr>::iterator it = application_list_.begin();
- application_list_.end() != it;
- ++it) {
- if ((*it)->IsFullscreen()) {
- return *it;
- }
- }
- return ApplicationSharedPtr();
+ ApplicationListAccessor accessor;
+ ApplicationSharedPtr app = accessor.Find(ActiveAppPredicate);
+ LOG4CXX_DEBUG(logger_, " Found = " << app);
+ return app;
}
+bool LimitedAppPredicate (const ApplicationSharedPtr app) {
+ return app ? app->hmi_level() == mobile_api::HMILevel::HMI_LIMITED :
+ false;
+}
ApplicationSharedPtr
ApplicationManagerImpl::get_limited_media_application() const {
- sync_primitives::AutoLock lock(applications_list_lock_);
-
- for (TAppListIt it = application_list_.begin();
- application_list_.end() != it; ++it) {
- if ((*it)->is_media_application() &&
- (mobile_api::HMILevel::HMI_LIMITED == (*it)->hmi_level())) {
- return *it;
- }
- }
+ ApplicationListAccessor accessor;
+ ApplicationSharedPtr app = accessor.Find(LimitedAppPredicate);
+ LOG4CXX_DEBUG(logger_, " Found = " << app);
+ return app;
+}
- return ApplicationSharedPtr();
+bool LimitedNaviAppPredicate (const ApplicationSharedPtr app) {
+ return app ? (app->is_navi() &&
+ app->hmi_level() == mobile_api::HMILevel::HMI_LIMITED) :
+ false;
}
ApplicationSharedPtr
ApplicationManagerImpl::get_limited_navi_application() const {
- sync_primitives::AutoLock lock(applications_list_lock_);
-
- for (TAppListIt it = application_list_.begin();
- application_list_.end() != it; ++it) {
- if ((*it)->allowed_support_navigation() &&
- (mobile_api::HMILevel::HMI_LIMITED == (*it)->hmi_level())) {
- return *it;
- }
- }
+ ApplicationListAccessor accessor;
+ ApplicationSharedPtr app = accessor.Find(LimitedNaviAppPredicate);
+ LOG4CXX_DEBUG(logger_, " Found = " << app);
+ return app;
+}
- return ApplicationSharedPtr();
+bool LimitedVoiceAppPredicate (const ApplicationSharedPtr app) {
+ return app ? (app->is_voice_communication_supported() &&
+ app->hmi_level() == mobile_api::HMILevel::HMI_LIMITED) :
+ false;
}
ApplicationSharedPtr
ApplicationManagerImpl::get_limited_voice_application() const {
- sync_primitives::AutoLock lock(applications_list_lock_);
+ ApplicationListAccessor accessor;
+ ApplicationSharedPtr app = accessor.Find(LimitedVoiceAppPredicate);
+ LOG4CXX_DEBUG(logger_, " Found = " << app);
+ return app;
+}
- for (TAppListIt it = application_list_.begin();
- application_list_.end() != it; ++it) {
- if ((*it)->is_voice_communication_supported() &&
- (mobile_api::HMILevel::HMI_LIMITED == (*it)->hmi_level())) {
- return *it;
- }
+bool NaviAppPredicate (const ApplicationSharedPtr app) {
+ return app ? app->is_navi() : false;
+}
+
+std::vector<ApplicationSharedPtr> ApplicationManagerImpl::applications_with_navi() {
+ ApplicationListAccessor accessor;
+ std::vector<ApplicationSharedPtr> apps = accessor.FindAll(NaviAppPredicate);
+ LOG4CXX_DEBUG(logger_, " Found count: " << apps.size());
+ return apps;
+}
+std::vector<ApplicationSharedPtr> ApplicationManagerImpl::applications_by_button(
+ uint32_t button) {
+ SubscribedToButtonPredicate finder(
+ static_cast<mobile_apis::ButtonName::eType>(button));
+ ApplicationListAccessor accessor;
+ std::vector<ApplicationSharedPtr> apps = accessor.FindAll(finder);
+ LOG4CXX_DEBUG(logger_, " Found count: " << apps.size());
+ return apps;
+}
+
+std::vector<ApplicationSharedPtr> ApplicationManagerImpl::IviInfoUpdated(
+ VehicleDataType vehicle_info, int value) {
+
+ // Notify Policy Manager if available about info it's interested in,
+ // i.e. odometer etc
+ switch (vehicle_info) {
+ case ODOMETER:
+ policy::PolicyHandler::instance()->KmsChanged(value);
+ break;
+ default:
+ break;
}
- return ApplicationSharedPtr();
+ SubscribedToIVIPredicate finder(
+ static_cast<int32_t>(vehicle_info));
+ ApplicationListAccessor accessor;
+ std::vector<ApplicationSharedPtr> apps = accessor.FindAll(NaviAppPredicate);
+ LOG4CXX_DEBUG(logger_, " vehicle_info << " << vehicle_info << "Found count: " << apps.size());
+ return apps;
}
bool ApplicationManagerImpl::DoesAudioAppWithSameHMITypeExistInFullOrLimited(
@@ -288,58 +326,13 @@ bool ApplicationManagerImpl::DoesAudioAppWithSameHMITypeExistInFullOrLimited(
return false;
}
-std::vector<ApplicationSharedPtr> ApplicationManagerImpl::applications_by_button(
- uint32_t button) {
- std::vector<ApplicationSharedPtr> result;
- for (std::set<ApplicationSharedPtr>::iterator it = application_list_.begin();
- application_list_.end() != it; ++it) {
- if ((*it)->IsSubscribedToButton(
- static_cast<mobile_apis::ButtonName::eType>(button))) {
- result.push_back(*it);
- }
- }
- return result;
-}
-
-std::vector<utils::SharedPtr<Application>> ApplicationManagerImpl::IviInfoUpdated(
-VehicleDataType vehicle_info, int value) {
- // Notify Policy Manager if available about info it's interested in,
- // i.e. odometer etc
- switch (vehicle_info) {
- case ODOMETER:
- policy::PolicyHandler::instance()->KmsChanged(value);
- break;
- default:
- break;
- }
-
- std::vector<utils::SharedPtr<application_manager::Application>> result;
- for (std::set<utils::SharedPtr<application_manager::Application>>::iterator it = application_list_.begin();
- application_list_.end() != it; ++it) {
- if ((*it)->IsSubscribedToIVI(static_cast<uint32_t>(vehicle_info))) {
- result.push_back(*it);
- }
- }
- return result;
-}
-
-std::vector<ApplicationSharedPtr> ApplicationManagerImpl::applications_with_navi() {
- std::vector<ApplicationSharedPtr> result;
- for (std::set<ApplicationSharedPtr>::iterator it = application_list_.begin();
- application_list_.end() != it;
- ++it) {
- if ((*it)->allowed_support_navigation()) {
- result.push_back(*it);
- }
- }
- return result;
-}
ApplicationSharedPtr ApplicationManagerImpl::RegisterApplication(
const utils::SharedPtr<smart_objects::SmartObject>&
request_for_registration) {
LOG4CXX_DEBUG(logger_, "Restarting application list update timer");
+ policy::PolicyHandler::instance()->OnAppsSearchStarted();
uint32_t timeout = profile::Profile::instance()->application_list_update_timeout();
application_list_update_timer_->start(timeout);
@@ -409,6 +402,7 @@ ApplicationSharedPtr ApplicationManagerImpl::RegisterApplication(
ManageMobileCommand(response);
return ApplicationSharedPtr();
}
+
application->set_device(device_id);
application->set_grammar_id(GenerateGrammarID());
mobile_api::Language::eType launguage_desired =
@@ -429,35 +423,11 @@ ApplicationSharedPtr ApplicationManagerImpl::RegisterApplication(
int32_t min_version =
message[strings::msg_params][strings::sync_msg_version]
[strings::minor_version].asInt();
-
- /*if (min_version < APIVersion::kAPIV2) {
- LOG4CXX_ERROR(logger_, "UNSUPPORTED_VERSION");
- utils::SharedPtr<smart_objects::SmartObject> response(
- MessageHelper::CreateNegativeResponse(
- connection_key, mobile_apis::FunctionID::RegisterAppInterfaceID,
- message[strings::params][strings::correlation_id],
- mobile_apis::Result::UNSUPPORTED_VERSION));
- ManageMobileCommand(response);
- delete application;
- return NULL;
- }*/
version.min_supported_api_version = static_cast<APIVersion>(min_version);
int32_t max_version =
message[strings::msg_params][strings::sync_msg_version]
[strings::major_version].asInt();
-
- /*if (max_version > APIVersion::kAPIV2) {
- LOG4CXX_ERROR(logger_, "UNSUPPORTED_VERSION");
- utils::SharedPtr<smart_objects::SmartObject> response(
- MessageHelper::CreateNegativeResponse(
- connection_key, mobile_apis::FunctionID::RegisterAppInterfaceID,
- message[strings::params][strings::correlation_id],
- mobile_apis::Result::UNSUPPORTED_VERSION));
- ManageMobileCommand(response);
- delete application;
- return NULL;
- }*/
version.max_supported_api_version = static_cast<APIVersion>(max_version);
application->set_version(version);
@@ -470,14 +440,18 @@ ApplicationSharedPtr ApplicationManagerImpl::RegisterApplication(
connection_handler_->BindProtocolVersionWithSession(
connection_key, static_cast<uint8_t>(protocol_version));
}
- if (ProtocolVersion::kV3 == protocol_version) {
+ if (protocol_version >= ProtocolVersion::kV3 &&
+ profile::Profile::instance()->heart_beat_timeout() > 0) {
connection_handler_->StartSessionHeartBeat(connection_key);
}
}
- sync_primitives::AutoLock lock(applications_list_lock_);
-
- application_list_.insert(application);
+ apps_to_register_list_lock_.Acquire();
+ apps_to_register_.erase(application);
+ apps_to_register_list_lock_.Release();
+ ApplicationListAccessor app_list_accesor;
+ application->MarkRegistered();
+ app_list_accesor.Insert(application);
return application;
}
@@ -491,6 +465,7 @@ bool ApplicationManagerImpl::LoadAppDataToHMI(ApplicationSharedPtr app) {
}
bool ApplicationManagerImpl::ActivateApplication(ApplicationSharedPtr app) {
+ LOG4CXX_AUTO_TRACE(logger_);
if (!app) {
LOG4CXX_ERROR(logger_, "Null-pointer application received.");
NOTREACHED();
@@ -502,57 +477,52 @@ bool ApplicationManagerImpl::ActivateApplication(ApplicationSharedPtr app) {
return false;
}
+ using namespace mobile_api::HMILevel;
+
bool is_new_app_media = app->is_media_application();
ApplicationSharedPtr current_active_app = active_application();
- if (mobile_api::HMILevel::eType::HMI_LIMITED != app->hmi_level()) {
+ if (HMI_LIMITED != app->hmi_level()) {
if (app->has_been_activated()) {
MessageHelper::SendAppDataToHMI(app);
}
}
- if (current_active_app.valid()) {
+ if (current_active_app) {
if (is_new_app_media && current_active_app->is_media_application()) {
- current_active_app->MakeNotAudible();
- } else if (!(current_active_app->IsAudioApplication())) {
- current_active_app->set_hmi_level(mobile_api::HMILevel::HMI_BACKGROUND);
+ MakeAppNotAudible(current_active_app->app_id());
} else {
- current_active_app->set_hmi_level(mobile_api::HMILevel::HMI_LIMITED);
+ ChangeAppsHMILevel(current_active_app->app_id(),
+ current_active_app->IsAudioApplication() ? HMI_LIMITED :
+ HMI_BACKGROUND);
}
MessageHelper::SendHMIStatusNotification(*current_active_app);
}
- app->MakeFullscreen();
+ MakeAppFullScreen(app->app_id());
if (is_new_app_media) {
ApplicationSharedPtr limited_app = get_limited_media_application();
- if (limited_app.valid()) {
- limited_app->MakeNotAudible();
- MessageHelper::SendHMIStatusNotification(*limited_app);
- }
- }
-
- if (app->is_voice_communication_supported()) {
- ApplicationSharedPtr limited_app = get_limited_voice_application();
- if (limited_app.valid()) {
- if (limited_app->is_media_application()) {
- limited_app->set_audio_streaming_state(
- mobile_api::AudioStreamingState::NOT_AUDIBLE);
+ if (limited_app ) {
+ if (!limited_app->is_navi()) {
+ MakeAppNotAudible(limited_app->app_id());
+ MessageHelper::SendHMIStatusNotification(*limited_app);
+ } else {
+ app->set_audio_streaming_state(mobile_apis::AudioStreamingState::ATTENUATED);
+ MessageHelper::SendHMIStatusNotification(*app);
}
- limited_app->set_hmi_level(mobile_api::HMILevel::HMI_BACKGROUND);
- MessageHelper::SendHMIStatusNotification(*limited_app);
}
}
- if (app->allowed_support_navigation()) {
- ApplicationSharedPtr limited_app = get_limited_navi_application();
+ if (app->is_voice_communication_supported() || app->is_navi()) {
+ ApplicationSharedPtr limited_app = get_limited_voice_application();
if (limited_app.valid()) {
if (limited_app->is_media_application()) {
limited_app->set_audio_streaming_state(
mobile_api::AudioStreamingState::NOT_AUDIBLE);
}
- limited_app->set_hmi_level(mobile_api::HMILevel::HMI_BACKGROUND);
+ ChangeAppsHMILevel(app->app_id(), HMI_BACKGROUND);
MessageHelper::SendHMIStatusNotification(*limited_app);
}
}
@@ -560,30 +530,33 @@ bool ApplicationManagerImpl::ActivateApplication(ApplicationSharedPtr app) {
return true;
}
-mobile_api::HMILevel::eType ApplicationManagerImpl::PutApplicationInFull(
+mobile_api::HMILevel::eType ApplicationManagerImpl::IsHmiLevelFullAllowed(
ApplicationSharedPtr app) {
- DCHECK(app.get())
-
+ LOG4CXX_AUTO_TRACE(logger_);
+ if (!app) {
+ LOG4CXX_ERROR(logger_, "Application pointer invalid");
+ NOTREACHED();
+ return mobile_api::HMILevel::INVALID_ENUM;
+ }
bool is_audio_app = app->IsAudioApplication();
bool does_audio_app_with_same_type_exist =
DoesAudioAppWithSameHMITypeExistInFullOrLimited(app);
+ bool is_active_app_exist = active_application().valid();
- mobile_api::HMILevel::eType result = mobile_api::HMILevel::HMI_FULL;
- bool is_active_app_exist = active_application().valid();
+ mobile_api::HMILevel::eType result = mobile_api::HMILevel::HMI_FULL;
if (is_audio_app && does_audio_app_with_same_type_exist) {
- result = mobile_apis::HMILevel::HMI_BACKGROUND;
+ result = GetDefaultHmiLevel(app);
} else if (is_active_app_exist && is_audio_app) {
result = mobile_apis::HMILevel::HMI_LIMITED;
} else if (is_active_app_exist && (!is_audio_app)) {
- result = mobile_apis::HMILevel::HMI_BACKGROUND;
- }
-
- if (mobile_api::HMILevel::HMI_FULL == result) {
- app->set_hmi_level(result);
- MessageHelper::SendActivateAppToHMI(app->app_id());
+ result = GetDefaultHmiLevel(app);
}
+ LOG4CXX_ERROR(logger_, "is_audio_app : " << is_audio_app
+ << "; does_audio_app_with_same_type_exist : " << does_audio_app_with_same_type_exist
+ << "; is_active_app_exist : " << is_active_app_exist
+ << "; result : " << result);
return result;
}
@@ -633,6 +606,7 @@ void ApplicationManagerImpl::OnHMIStartedCooperation() {
MessageHelper::CreateModuleInfoSO(
hmi_apis::FunctionID::BasicCommunication_MixingAudioSupported));
ManageHMICommand(mixing_audio_supported_request);
+ resume_controller().ResetLaunchTime();
}
uint32_t ApplicationManagerImpl::GetNextHMICorrelationID() {
@@ -691,50 +665,23 @@ void ApplicationManagerImpl::StartAudioPassThruThread(int32_t session_key,
void ApplicationManagerImpl::SendAudioPassThroughNotification(
uint32_t session_key,
- std::vector<uint8_t> binaryData) {
- LOG4CXX_TRACE_ENTER(logger_);
+ std::vector<uint8_t>& binary_data) {
+ LOG4CXX_AUTO_TRACE(logger_);
if (!audio_pass_thru_active_) {
LOG4CXX_ERROR(logger_, "Trying to send PassThroughNotification"
" when PassThrough is not active");
return;
}
- smart_objects::SmartObject* on_audio_pass = NULL;
- on_audio_pass = new smart_objects::SmartObject();
- if (NULL == on_audio_pass) {
- LOG4CXX_ERROR_EXT(logger_, "OnAudioPassThru NULL pointer");
-
- return;
- }
-
- LOG4CXX_INFO_EXT(logger_, "Fill smart object");
-
- (*on_audio_pass)[strings::params][strings::message_type] =
- application_manager::MessageType::kNotification;
-
- (*on_audio_pass)[strings::params][strings::connection_key] =
- static_cast<int32_t>(session_key);
- (*on_audio_pass)[strings::params][strings::function_id] =
- mobile_apis::FunctionID::OnAudioPassThruID;
-
- LOG4CXX_INFO_EXT(logger_, "Fill binary data");
- // binary data
- (*on_audio_pass)[strings::params][strings::binary_data] =
- smart_objects::SmartObject(binaryData);
-
- LOG4CXX_INFO_EXT(logger_, "After fill binary data");
-
- LOG4CXX_INFO_EXT(logger_, "Send data");
- CommandSharedPtr command (
- MobileCommandFactory::CreateCommand(&(*on_audio_pass)));
- command->Init();
- command->Run();
- command->CleanUp();
+ impl::AudioData data;
+ data.session_key = session_key;
+ data.binary_data = binary_data;
+ audio_pass_thru_messages_.PostMessage(data);
}
void ApplicationManagerImpl::StopAudioPassThru(int32_t application_key) {
- LOG4CXX_TRACE_ENTER(logger_);
+ LOG4CXX_AUTO_TRACE(logger_);
sync_primitives::AutoLock lock(audio_pass_thru_lock_);
if (NULL != media_manager_) {
media_manager_->StopMicrophoneRecording(application_key);
@@ -761,7 +708,7 @@ std::string ApplicationManagerImpl::GetDeviceName(
void ApplicationManagerImpl::OnMessageReceived(
const ::protocol_handler::RawMessagePtr message) {
- LOG4CXX_INFO(logger_, "ApplicationManagerImpl::OnMessageReceived");
+ LOG4CXX_AUTO_TRACE(logger_);
if (!message) {
LOG4CXX_ERROR(logger_, "Null-pointer message received.");
@@ -779,12 +726,12 @@ void ApplicationManagerImpl::OnMessageReceived(
void ApplicationManagerImpl::OnMobileMessageSent(
const ::protocol_handler::RawMessagePtr message) {
- LOG4CXX_INFO(logger_, "ApplicationManagerImpl::OnMobileMessageSent");
+ LOG4CXX_AUTO_TRACE(logger_);
}
void ApplicationManagerImpl::OnMessageReceived(
hmi_message_handler::MessageSharedPointer message) {
- LOG4CXX_INFO(logger_, "ApplicationManagerImpl::OnMessageReceived");
+ LOG4CXX_AUTO_TRACE(logger_);
if (!message) {
LOG4CXX_ERROR(logger_, "Null-pointer message received.");
@@ -802,9 +749,15 @@ void ApplicationManagerImpl::OnErrorSending(
void ApplicationManagerImpl::OnDeviceListUpdated(
const connection_handler::DeviceMap& device_list) {
- LOG4CXX_INFO(logger_, "ApplicationManagerImpl::OnDeviceListUpdated");
+ LOG4CXX_AUTO_TRACE(logger_);
+ smart_objects::SmartObjectSPtr msg_params = MessageHelper::CreateDeviceListSO(
+ device_list);
+ if (!msg_params) {
+ LOG4CXX_WARN(logger_, "Failed to create sub-smart object.");
+ return;
+ }
- smart_objects::SmartObject* update_list = new smart_objects::SmartObject;
+ smart_objects::SmartObjectSPtr update_list = new smart_objects::SmartObject;
smart_objects::SmartObject& so_to_send = *update_list;
so_to_send[jhs::S_PARAMS][jhs::S_FUNCTION_ID] =
hmi_apis::FunctionID::BasicCommunication_UpdateDeviceList;
@@ -813,13 +766,6 @@ void ApplicationManagerImpl::OnDeviceListUpdated(
so_to_send[jhs::S_PARAMS][jhs::S_PROTOCOL_VERSION] = 3;
so_to_send[jhs::S_PARAMS][jhs::S_PROTOCOL_TYPE] = 1;
so_to_send[jhs::S_PARAMS][jhs::S_CORRELATION_ID] = GetNextHMICorrelationID();
- smart_objects::SmartObject* msg_params = MessageHelper::CreateDeviceListSO(
- device_list);
- if (!msg_params) {
- LOG4CXX_WARN(logger_, "Failed to create sub-smart object.");
- delete update_list;
- return;
- }
so_to_send[jhs::S_MSG_PARAMS] = *msg_params;
ManageHMICommand(update_list);
}
@@ -829,41 +775,25 @@ void ApplicationManagerImpl::OnFindNewApplicationsRequest() {
LOG4CXX_DEBUG(logger_, "Starting application list update timer");
uint32_t timeout = profile::Profile::instance()->application_list_update_timeout();
application_list_update_timer_->start(timeout);
+ policy::PolicyHandler::instance()->OnAppsSearchStarted();
}
-void ApplicationManagerImpl::SendUpdateAppList(const std::list<uint32_t>& applications_ids) {
- LOG4CXX_TRACE(logger_, "SendUpdateAppList");
+void ApplicationManagerImpl::SendUpdateAppList() {
+ LOG4CXX_AUTO_TRACE(logger_);
- LOG4CXX_DEBUG(logger_, applications_ids.size() << " applications.");
+ using namespace smart_objects;
+ using namespace hmi_apis;
- smart_objects::SmartObject* request = MessageHelper::CreateModuleInfoSO(
- hmi_apis::FunctionID::BasicCommunication_UpdateAppList);
- (*request)[strings::msg_params][strings::applications] =
- smart_objects::SmartObject(smart_objects::SmartType_Array);
+ SmartObjectSPtr request = MessageHelper::CreateModuleInfoSO(
+ FunctionID::BasicCommunication_UpdateAppList);
- smart_objects::SmartObject& applications =
- (*request)[strings::msg_params][strings::applications];
+ (*request)[strings::msg_params][strings::applications] = SmartObject(SmartType_Array);
- uint32_t app_count = 0;
- for (std::list<uint32_t>::const_iterator it = applications_ids.begin();
- it != applications_ids.end(); ++it) {
- ApplicationSharedPtr app = application(*it);
+ SmartObject& applications = (*request)[strings::msg_params][strings::applications];
- if (!app.valid()) {
- LOG4CXX_ERROR(logger_, "Application not found , id = " << *it);
- continue;
- }
+ PrepareApplicationListSO(applications_, applications);
+ PrepareApplicationListSO(apps_to_register_, applications);
- smart_objects::SmartObject hmi_application(smart_objects::SmartType_Map);;
- if (!MessageHelper::CreateHMIApplicationStruct(app, hmi_application)) {
- LOG4CXX_ERROR(logger_, "Can't CreateHMIApplicationStruct ', id = " << *it);
- continue;
- }
- applications[app_count++] = hmi_application;
- }
- if (app_count <= 0) {
- LOG4CXX_WARN(logger_, "Empty applications list");
- }
ManageHMICommand(request);
}
@@ -875,37 +805,59 @@ void ApplicationManagerImpl::RemoveDevice(
bool ApplicationManagerImpl::IsAudioStreamingAllowed(uint32_t application_key) const {
ApplicationSharedPtr app = application(application_key);
+ using namespace mobile_apis::HMILevel;
+ using namespace helpers;
if (!app) {
LOG4CXX_WARN(logger_, "An application is not registered.");
return false;
}
- const mobile_api::HMILevel::eType& hmi_level = app->hmi_level();
-
- if (mobile_api::HMILevel::HMI_FULL == hmi_level ||
- mobile_api::HMILevel::HMI_LIMITED == hmi_level) {
- return true;
- }
-
- return false;
+ return Compare<eType, EQ, ONE>(
+ app->hmi_level(), HMI_FULL, HMI_LIMITED);
}
bool ApplicationManagerImpl::IsVideoStreamingAllowed(uint32_t application_key) const {
ApplicationSharedPtr app = application(application_key);
+ using namespace mobile_apis::HMILevel;
+ using namespace helpers;
if (!app) {
LOG4CXX_WARN(logger_, "An application is not registered.");
return false;
}
- const mobile_api::HMILevel::eType& hmi_level = app->hmi_level();
+ LOG4CXX_DEBUG(logger_, "HMILevel: " << app->hmi_level());
+ return Compare<eType, EQ, ONE>(app->hmi_level(), HMI_FULL, HMI_LIMITED);
+}
- if (mobile_api::HMILevel::HMI_FULL == hmi_level &&
- app->hmi_supports_navi_video_streaming()) {
- return true;
- }
+mobile_apis::HMILevel::eType ApplicationManagerImpl::GetDefaultHmiLevel(
+ ApplicationSharedPtr application) const {
+ using namespace mobile_apis;
+ LOG4CXX_AUTO_TRACE(logger_);
+ HMILevel::eType default_hmi = HMILevel::HMI_NONE;
- return false;
+ if (policy::PolicyHandler::instance()->PolicyEnabled()) {
+ const std::string policy_app_id = application->mobile_app_id();
+ std::string default_hmi_string = "";
+ if (policy::PolicyHandler::instance()->GetDefaultHmi(
+ policy_app_id, &default_hmi_string)) {
+ if ("BACKGROUND" == default_hmi_string) {
+ default_hmi = HMILevel::HMI_BACKGROUND;
+ } else if ("FULL" == default_hmi_string) {
+ default_hmi = HMILevel::HMI_FULL;
+ } else if ("LIMITED" == default_hmi_string) {
+ default_hmi = HMILevel::HMI_LIMITED;
+ } else if ("NONE" == default_hmi_string) {
+ default_hmi = HMILevel::HMI_NONE;
+ } else {
+ LOG4CXX_ERROR(logger_, "Unable to convert " + default_hmi_string + " to HMILevel");
+ }
+ } else {
+ LOG4CXX_ERROR(logger_, "Unable to get default hmi_level for "
+ << policy_app_id);
+ }
+ }
+ return default_hmi;
}
uint32_t ApplicationManagerImpl::GenerateGrammarID() {
@@ -913,19 +865,23 @@ uint32_t ApplicationManagerImpl::GenerateGrammarID() {
}
uint32_t ApplicationManagerImpl::GenerateNewHMIAppID() {
- uint32_t hmi_app_id = rand();
+ LOG4CXX_TRACE(logger_, "ENTER");
+ uint32_t hmi_app_id = get_rand_from_range(1);
+ LOG4CXX_DEBUG(logger_, "GenerateNewHMIAppID value is: " << hmi_app_id);
while (resume_ctrl_.IsHMIApplicationIdExist(hmi_app_id)) {
- hmi_app_id = rand();
+ LOG4CXX_DEBUG(logger_, "HMI appID " << hmi_app_id << " is exists.");
+ hmi_app_id = get_rand_from_range(1);
+ LOG4CXX_DEBUG(logger_, "Trying new value: " << hmi_app_id);
}
+ LOG4CXX_TRACE(logger_, "EXIT");
return hmi_app_id;
}
void ApplicationManagerImpl::ReplaceMobileByHMIAppId(
smart_objects::SmartObject& message) {
MessageHelper::PrintSmartObject(message);
- flush(std::cout);
if (message.keyExists(strings::app_id)) {
ApplicationSharedPtr application =
ApplicationManagerImpl::instance()->application(
@@ -998,96 +954,133 @@ void ApplicationManagerImpl::ReplaceHMIByMobileAppId(
}
}
-bool ApplicationManagerImpl::OnServiceStartedCallback(
- const connection_handler::DeviceHandle& device_handle,
- const int32_t& session_key,
- const protocol_handler::ServiceType& type) {
- LOG4CXX_INFO(logger_,
- "OnServiceStartedCallback " << type << " in session " << session_key);
- ApplicationSharedPtr app = application(session_key);
+bool ApplicationManagerImpl::ProcessNaviService(protocol_handler::ServiceType type,
+ uint32_t connection_key) {
+ LOG4CXX_AUTO_TRACE(logger_);
+
+ if (!media_manager_) {
+ LOG4CXX_DEBUG(logger_, "The media manager is not initialized.");
+ return false;
+ }
+ bool result = false;
switch (type) {
- case protocol_handler::kRpc: {
- LOG4CXX_INFO(logger_, "RPC service is about to be started.");
- break;
- }
- case protocol_handler::kMobileNav: {
- LOG4CXX_INFO(logger_, "Video service is about to be started.");
- if (media_manager_) {
- if (!app) {
- LOG4CXX_ERROR_EXT(logger_, "An application is not registered.");
- return false;
- }
- if (app->allowed_support_navigation()) {
- media_manager_->StartVideoStreaming(session_key);
- } else {
- return false;
- }
+ case protocol_handler::kMobileNav:
+ LOG4CXX_DEBUG(logger_, "Video service is about to be started.");
+ if (IsVideoStreamingAllowed(connection_key)) {
+ media_manager_->StartVideoStreaming(connection_key);
+ result = true;
}
break;
- }
- case protocol_handler::kAudio: {
- LOG4CXX_INFO(logger_, "Audio service is about to be started.");
- if (media_manager_) {
- if (!app) {
- LOG4CXX_ERROR_EXT(logger_, "An application is not registered.");
- return false;
- }
- if (app->allowed_support_navigation()) {
- media_manager_->StartAudioStreaming(session_key);
- } else {
- return false;
- }
+ case protocol_handler::kAudio:
+ LOG4CXX_DEBUG(logger_, "Audio service is about to be started.");
+ if (IsAudioStreamingAllowed(connection_key)) {
+ media_manager_->StartAudioStreaming(connection_key);
+ result = true;
}
break;
- }
- default: {
- LOG4CXX_WARN(logger_, "Unknown type of service to be started.");
+ default:
+ LOG4CXX_DEBUG(logger_, "Unknown type of service to be started.");
break;
- }
}
- return true;
+ service_status_[type] = std::make_pair(result, false);
+ return result;
+}
+
+bool ApplicationManagerImpl::OnServiceStartedCallback(
+ const connection_handler::DeviceHandle& device_handle,
+ const int32_t& session_key,
+ const protocol_handler::ServiceType& type) {
+ using namespace protocol_handler;
+ using namespace helpers;
+
+ LOG4CXX_INFO(logger_,
+ "OnServiceStartedCallback " << type << " in session " << session_key);
+ if (type == kRpc) {
+ LOG4CXX_INFO(logger_, "RPC service is about to be started.");
+ return true;
+ }
+ ApplicationSharedPtr app = application(session_key);
+ if (!app) {
+ LOG4CXX_DEBUG(logger_, "The application with id:" << session_key <<
+ " doesn't exists.");
+ return false;
+ }
+ bool result = false;
+ if (Compare<ServiceType, EQ, ONE>(type, kMobileNav, kAudio)) {
+ if (app->is_navi()) {
+ result = ProcessNaviService(type, session_key);
+ app->set_streaming_allowed(result);
+ }
+ }
+ return result;
}
void ApplicationManagerImpl::OnServiceEndedCallback(const int32_t& session_key,
const protocol_handler::ServiceType& type) {
+ using namespace protocol_handler;
LOG4CXX_INFO_EXT(
logger_,
"OnServiceEndedCallback " << type << " in session " << session_key);
- switch (type) {
- case protocol_handler::kRpc: {
- LOG4CXX_INFO(logger_, "Remove application.");
- /* in case it was unexpected disconnect application will be removed
- and we will notify HMI that it was unexpected disconnect,
- but in case it was closed by mobile we will be unable to find it in the list
- */
- UnregisterApplication(session_key, mobile_apis::Result::INVALID_ENUM,
- true, true);
- break;
- }
- case protocol_handler::kMobileNav: {
- LOG4CXX_INFO(logger_, "Stop video streaming.");
- if (media_manager_) {
+ if (type == kRpc) {
+ LOG4CXX_INFO(logger_, "Remove application.");
+ /* in case it was unexpected disconnect application will be removed
+ and we will notify HMI that it was unexpected disconnect,
+ but in case it was closed by mobile we will be unable to find it in the list
+ */
+ UnregisterApplication(session_key, mobile_apis::Result::INVALID_ENUM,
+ true, true);
+ return;
+ }
+
+ if (media_manager_) {
+ switch (type) {
+ case protocol_handler::kMobileNav: {
+ LOG4CXX_INFO(logger_, "Stop video streaming.");
media_manager_->StopVideoStreaming(session_key);
+ break;
}
- break;
- }
- case protocol_handler::kAudio: {
- LOG4CXX_INFO(logger_, "Stop audio service.");
- if (media_manager_) {
+ case protocol_handler::kAudio: {
+ LOG4CXX_INFO(logger_, "Stop audio service.");
media_manager_->StopAudioStreaming(session_key);
+ break;
}
- break;
+ default:
+ LOG4CXX_WARN(logger_, "Unknown type of service to be ended." << type);
+ break;
}
- default:
- LOG4CXX_WARN(logger_, "Unknown type of service to be ended." <<
- type);
- break;
+ service_status_[type].second = true;
+ LOG4CXX_DEBUG(logger_, "Ack status: " << service_status_[type].first <<" : "
+ << service_status_[type].second);
}
}
+void ApplicationManagerImpl::OnApplicationFloodCallBack(const uint32_t &connection_key) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ LOG4CXX_DEBUG(logger_, "Unregister flooding application " << connection_key);
+
+ MessageHelper::SendOnAppInterfaceUnregisteredNotificationToMobile(
+ connection_key,
+ mobile_apis::AppInterfaceUnregisteredReason::TOO_MANY_REQUESTS);
+
+ const bool resuming = true;
+ const bool unexpected_disconnect = false;
+ UnregisterApplication(connection_key, mobile_apis::Result::TOO_MANY_PENDING_REQUESTS,
+ resuming, unexpected_disconnect);
+ // TODO(EZamakhov): increment "removals_for_bad_behaviour" field in policy table
+}
+
+void ApplicationManagerImpl::OnMalformedMessageCallback(const uint32_t &connection_key) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ LOG4CXX_DEBUG(logger_, "Unregister malformed messaging application " << connection_key);
+
+ MessageHelper::SendOnAppInterfaceUnregisteredNotificationToMobile(
+ connection_key,
+ mobile_apis::AppInterfaceUnregisteredReason::PROTOCOL_VIOLATION);
+}
+
void ApplicationManagerImpl::set_hmi_message_handler(
hmi_message_handler::HMIMessageHandler* handler) {
hmi_handler_ = handler;
@@ -1113,9 +1106,8 @@ void ApplicationManagerImpl::StartDevicesDiscovery() {
}
void ApplicationManagerImpl::SendMessageToMobile(
- const utils::SharedPtr<smart_objects::SmartObject> message,
- bool final_message) {
- LOG4CXX_INFO(logger_, "ApplicationManagerImpl::SendMessageToMobile");
+ const commands::MessageSharedPtr message, bool final_message) {
+ LOG4CXX_AUTO_TRACE(logger_);
if (!message) {
LOG4CXX_ERROR(logger_, "Null-pointer message received.");
@@ -1141,7 +1133,7 @@ void ApplicationManagerImpl::SendMessageToMobile(
ProtocolVersion::kV1;
} else {
(*message)[strings::params][strings::protocol_version] =
- ProtocolVersion::kV3;
+ SupportedSDLVersion();
}
} else {
(*message)[strings::params][strings::protocol_version] =
@@ -1166,7 +1158,8 @@ void ApplicationManagerImpl::SendMessageToMobile(
// checked against policy permissions
if (msg_to_mobile[strings::params].keyExists(strings::correlation_id)) {
request_ctrl_.terminateMobileRequest(
- msg_to_mobile[strings::params][strings::correlation_id].asInt());
+ msg_to_mobile[strings::params][strings::correlation_id].asInt(),
+ msg_to_mobile[strings::params][strings::connection_key].asInt());
} else if (app) {
mobile_apis::FunctionID::eType function_id =
static_cast<mobile_apis::FunctionID::eType>(
@@ -1179,11 +1172,14 @@ void ApplicationManagerImpl::SendMessageToMobile(
smart_objects::SmartMap::iterator iter_end = s_map.map_end();
for (; iter != iter_end; ++iter) {
- params.push_back(iter->first);
+ if (true == iter->second.asBool()) {
+ LOG4CXX_INFO(logger_, "Request's param: " << iter->first);
+ params.push_back(iter->first);
+ }
}
}
const mobile_apis::Result::eType check_result =
- CheckPolicyPermissions( app->mobile_app_id()->asString(),
+ CheckPolicyPermissions( app->mobile_app_id(),
app->hmi_level(), function_id, params);
if (mobile_apis::Result::SUCCESS != check_result) {
const std::string string_functionID =
@@ -1194,7 +1190,13 @@ void ApplicationManagerImpl::SendMessageToMobile(
}
if (function_id == mobile_apis::FunctionID::OnSystemRequestID) {
- policy::PolicyHandler::instance()->OnUpdateRequestSentToMobile();
+ mobile_apis::RequestType::eType request_type =
+ static_cast<mobile_apis::RequestType::eType>(
+ (*message)[strings::msg_params][strings::request_type].asUInt());
+ if (mobile_apis::RequestType::PROPRIETARY == request_type ||
+ mobile_apis::RequestType::HTTP == request_type) {
+ policy::PolicyHandler::instance()->OnUpdateRequestSentToMobile();
+ }
}
}
@@ -1203,21 +1205,26 @@ void ApplicationManagerImpl::SendMessageToMobile(
}
bool ApplicationManagerImpl::ManageMobileCommand(
- const utils::SharedPtr<smart_objects::SmartObject> message) {
- LOG4CXX_INFO(logger_, "ApplicationManagerImpl::ManageMobileCommand");
+ const commands::MessageSharedPtr message,
+ commands::Command::CommandOrigin origin) {
+ LOG4CXX_AUTO_TRACE(logger_);
if (!message) {
LOG4CXX_WARN(logger_, "RET Null-pointer message received.");
- NOTREACHED()
return false;
}
+ if (IsLowVoltage()) {
+ LOG4CXX_WARN(logger_, "Low Voltage is active");
+ return false;
+ }
#ifdef DEBUG
MessageHelper::PrintSmartObject(*message);
#endif
LOG4CXX_INFO(logger_, "Trying to create message in mobile factory.");
- commands::Command* command = MobileCommandFactory::CreateCommand(message);
+ utils::SharedPtr<commands::Command> command(
+ MobileCommandFactory::CreateCommand(message, origin));
if (!command) {
LOG4CXX_WARN(logger_, "RET Failed to create mobile command from smart object");
@@ -1249,12 +1256,11 @@ bool ApplicationManagerImpl::ManageMobileCommand(
app = ApplicationManagerImpl::instance()->application(connection_key);
if (!app) {
LOG4CXX_ERROR_EXT(logger_, "RET APPLICATION_NOT_REGISTERED");
- smart_objects::SmartObject* response =
- MessageHelper::CreateNegativeResponse(
- connection_key,
- static_cast<int32_t>(function_id),
- correlation_id,
- static_cast<int32_t>(mobile_apis::Result::APPLICATION_NOT_REGISTERED));
+ smart_objects::SmartObjectSPtr response =
+ MessageHelper::CreateNegativeResponse(connection_key,
+ static_cast<int32_t>(function_id),
+ correlation_id,
+ static_cast<int32_t>(mobile_apis::Result::APPLICATION_NOT_REGISTERED));
SendMessageToMobile(response);
return false;
@@ -1270,18 +1276,15 @@ bool ApplicationManagerImpl::ManageMobileCommand(
command->Run();
command->CleanUp();
}
- delete command;
return true;
}
if (message_type ==
mobile_apis::messageType::notification) {
- commands::CommandNotificationImpl* command_notify =
- static_cast<commands::CommandNotificationImpl*>(command);
- request_ctrl_.addNotification(command_notify);
- if (command_notify->Init()) {
- command_notify->Run();
- if (command_notify->CleanUp()) {
- request_ctrl_.removeNotification(command_notify);
+ request_ctrl_.addNotification(command);
+ if (command->Init()) {
+ command->Run();
+ if (command->CleanUp()) {
+ request_ctrl_.removeNotification(command.get());
}
// If CleanUp returned false notification should remove it self.
}
@@ -1291,8 +1294,6 @@ bool ApplicationManagerImpl::ManageMobileCommand(
if (message_type ==
mobile_apis::messageType::request) {
- commands::CommandRequestImpl* command_request =
- static_cast<commands::CommandRequestImpl*>(command);
// commands will be launched from requesr_ctrl
mobile_apis::HMILevel::eType app_hmi_level = mobile_apis::HMILevel::INVALID_ENUM;
if (app) {
@@ -1301,8 +1302,8 @@ bool ApplicationManagerImpl::ManageMobileCommand(
// commands will be launched from request_ctrl
- request_controller::RequestController::TResult result =
- request_ctrl_.addMobileRequest(command_request, app_hmi_level);
+ const request_controller::RequestController::TResult result =
+ request_ctrl_.addMobileRequest(command, app_hmi_level);
if (result == request_controller::RequestController::SUCCESS) {
LOG4CXX_INFO(logger_, "Perform request");
@@ -1312,12 +1313,11 @@ bool ApplicationManagerImpl::ManageMobileCommand(
LOG4CXX_ERROR_EXT(logger_, "RET Unable top perform request: " <<
"TOO_MANY_PENDING_REQUESTS");
- smart_objects::SmartObject* response =
- MessageHelper::CreateNegativeResponse(
- connection_key,
- static_cast<int32_t>(function_id),
- correlation_id,
- static_cast<int32_t>(mobile_apis::Result::TOO_MANY_PENDING_REQUESTS));
+ smart_objects::SmartObjectSPtr response =
+ MessageHelper::CreateNegativeResponse(connection_key,
+ static_cast<int32_t>(function_id),
+ correlation_id,
+ static_cast<int32_t>(mobile_apis::Result::TOO_MANY_PENDING_REQUESTS));
SendMessageToMobile(response);
return false;
@@ -1344,7 +1344,10 @@ bool ApplicationManagerImpl::ManageMobileCommand(
connection_key, mobile_api::AppInterfaceUnregisteredReason::
REQUEST_WHILE_IN_NONE_HMI_LEVEL);
- application(connection_key)->usage_report().RecordRemovalsForBadBehavior();
+ ApplicationSharedPtr app_ptr = application(connection_key);
+ if(app_ptr) {
+ app_ptr->usage_report().RecordRemovalsForBadBehavior();
+ }
UnregisterApplication(connection_key, mobile_apis::Result::INVALID_ENUM,
false);
return false;
@@ -1360,8 +1363,8 @@ bool ApplicationManagerImpl::ManageMobileCommand(
}
void ApplicationManagerImpl::SendMessageToHMI(
- const utils::SharedPtr<smart_objects::SmartObject> message) {
- LOG4CXX_INFO(logger_, "ApplicationManagerImpl::SendMessageToHMI");
+ const commands::MessageSharedPtr message) {
+ LOG4CXX_AUTO_TRACE(logger_);
if (!message) {
LOG4CXX_WARN(logger_, "Null-pointer message received.");
@@ -1387,7 +1390,6 @@ void ApplicationManagerImpl::SendMessageToHMI(
logger_,
"Attached schema to message, result if valid: " << message->isValid());
-
#ifdef HMI_DBUS_API
message_to_send->set_smart_object(*message);
#else
@@ -1402,15 +1404,18 @@ void ApplicationManagerImpl::SendMessageToHMI(
}
bool ApplicationManagerImpl::ManageHMICommand(
- const utils::SharedPtr<smart_objects::SmartObject> message) {
- LOG4CXX_INFO(logger_, "ApplicationManagerImpl::ManageHMICommand");
+ const commands::MessageSharedPtr message) {
+ LOG4CXX_AUTO_TRACE(logger_);
if (!message) {
LOG4CXX_WARN(logger_, "Null-pointer message received.");
- NOTREACHED();
return false;
}
+ if (IsLowVoltage()) {
+ LOG4CXX_WARN(logger_, "Low Voltage is active");
+ return false;
+ }
MessageHelper::PrintSmartObject(*message);
@@ -1440,19 +1445,6 @@ bool ApplicationManagerImpl::ManageHMICommand(
bool ApplicationManagerImpl::Init() {
LOG4CXX_TRACE(logger_, "Init application manager");
- if (policy::PolicyHandler::instance()->PolicyEnabled()) {
- if(!policy::PolicyHandler::instance()->LoadPolicyLibrary()) {
- LOG4CXX_ERROR(logger_, "Policy library is not loaded. Check LD_LIBRARY_PATH");
- return false;
- }
- LOG4CXX_INFO(logger_, "Policy library is loaded, now initing PT");
- if (!policy::PolicyHandler::instance()->InitPolicyTable()) {
- LOG4CXX_ERROR(logger_, "Policy table is not initialized.");
- return false;
- }
- } else {
- LOG4CXX_WARN(logger_, "System is configured to work without policy functionality.");
- }
const std::string app_storage_folder =
profile::Profile::instance()->app_storage_folder();
if (!file_system::DirectoryExists(app_storage_folder)) {
@@ -1488,6 +1480,19 @@ bool ApplicationManagerImpl::Init() {
"System directory doesn't have read/write permissions");
return false;
}
+ if (policy::PolicyHandler::instance()->PolicyEnabled()) {
+ if(!policy::PolicyHandler::instance()->LoadPolicyLibrary()) {
+ LOG4CXX_ERROR(logger_, "Policy library is not loaded. Check LD_LIBRARY_PATH");
+ return false;
+ }
+ LOG4CXX_INFO(logger_, "Policy library is loaded, now initing PT");
+ if (!policy::PolicyHandler::instance()->InitPolicyTable()) {
+ LOG4CXX_ERROR(logger_, "Policy table is not initialized.");
+ return false;
+ }
+ } else {
+ LOG4CXX_WARN(logger_, "System is configured to work without policy functionality.");
+ }
media_manager_ = media_manager::MediaManagerImpl::instance();
return true;
}
@@ -1500,6 +1505,7 @@ bool ApplicationManagerImpl::ConvertMessageToSO(
<< "; json " << message.json_message());
switch (message.protocol_version()) {
+ case ProtocolVersion::kV4:
case ProtocolVersion::kV3:
case ProtocolVersion::kV2: {
const bool conversion_result =
@@ -1559,7 +1565,20 @@ bool ApplicationManagerImpl::ConvertMessageToSO(
return false;
}
if (output.validate() != smart_objects::Errors::OK) {
- LOG4CXX_WARN(logger_, "Incorrect parameter from HMI");
+ LOG4CXX_ERROR(logger_, "Incorrect parameter from HMI");
+
+ if (application_manager::MessageType::kNotification ==
+ output[strings::params][strings::message_type].asInt()) {
+ LOG4CXX_ERROR(logger_, "Ignore wrong HMI notification");
+ return false;
+ }
+
+ if (application_manager::MessageType::kRequest ==
+ output[strings::params][strings::message_type].asInt()) {
+ LOG4CXX_ERROR(logger_, "Ignore wrong HMI request");
+ return false;
+ }
+
output.erase(strings::msg_params);
output[strings::params][hmi_response::code] =
hmi_apis::Common_Result::INVALID_DATA;
@@ -1595,7 +1614,7 @@ bool ApplicationManagerImpl::ConvertMessageToSO(
output[strings::msg_params][strings::result_code] =
NsSmartDeviceLinkRPC::V1::Result::UNSUPPORTED_VERSION;
- smart_objects::SmartObject* msg_to_send = new smart_objects::SmartObject(output);
+ smart_objects::SmartObjectSPtr msg_to_send = new smart_objects::SmartObject(output);
v1_shema.attachSchema(*msg_to_send);
SendMessageToMobile(msg_to_send);
return false;
@@ -1728,18 +1747,7 @@ utils::SharedPtr<Message> ApplicationManagerImpl::ConvertRawMsgToMessage(
return outgoing_message;
}
- Message* convertion_result = NULL;
- if (message->protocol_version() == 1) {
- convertion_result =
- MobileMessageHandler::HandleIncomingMessageProtocolV1(message);
- } else if ((message->protocol_version() == 2) ||
- (message->protocol_version() == 3)) {
- convertion_result =
- MobileMessageHandler::HandleIncomingMessageProtocolV2(message);
- } else {
- LOG4CXX_WARN(logger_, "Unknown protocol version.");
- return outgoing_message;
- }
+ Message* convertion_result = MobileMessageHandler::HandleIncomingMessageProtocol(message);
if (convertion_result) {
outgoing_message = convertion_result;
@@ -1756,8 +1764,7 @@ void ApplicationManagerImpl::ProcessMessageFromMobile(
AMMetricObserver::MessageMetricSharedPtr metric(new AMMetricObserver::MessageMetric());
metric->begin = date_time::DateTime::getCurrentTime();
#endif // TIME_TESTER
- utils::SharedPtr<smart_objects::SmartObject> so_from_mobile(
- new smart_objects::SmartObject);
+ smart_objects::SmartObjectSPtr so_from_mobile(new smart_objects::SmartObject);
if (!so_from_mobile) {
LOG4CXX_ERROR(logger_, "Null pointer");
@@ -1772,7 +1779,8 @@ void ApplicationManagerImpl::ProcessMessageFromMobile(
metric->message = so_from_mobile;
#endif // TIME_TESTER
- if (!ManageMobileCommand(so_from_mobile)) {
+ if (!ManageMobileCommand(so_from_mobile,
+ commands::Command::ORIGIN_MOBILE)) {
LOG4CXX_ERROR(logger_, "Received command didn't run successfully");
}
#ifdef TIME_TESTER
@@ -1786,8 +1794,7 @@ void ApplicationManagerImpl::ProcessMessageFromMobile(
void ApplicationManagerImpl::ProcessMessageFromHMI(
const utils::SharedPtr<Message> message) {
LOG4CXX_INFO(logger_, "ApplicationManagerImpl::ProcessMessageFromHMI()");
- utils::SharedPtr<smart_objects::SmartObject> smart_object(
- new smart_objects::SmartObject);
+ smart_objects::SmartObjectSPtr smart_object(new smart_objects::SmartObject);
if (!smart_object) {
LOG4CXX_ERROR(logger_, "Null pointer");
@@ -1835,6 +1842,63 @@ HMICapabilities& ApplicationManagerImpl::hmi_capabilities() {
return hmi_capabilities_;
}
+void ApplicationManagerImpl::CreateApplications(SmartArray& obj_array) {
+
+ using namespace policy;
+
+ const std::size_t arr_size(obj_array.size());
+ for (std::size_t idx = 0; idx < arr_size; ++idx) {
+
+ const SmartObject& app_data = obj_array[idx];
+ if (app_data.isValid()) {
+ const std::string url_schema(app_data[strings::urlSchema].asString());
+ const std::string package_name(app_data[strings::packageName].asString());
+ const std::string mobile_app_id(app_data[strings::app_id].asString());
+ const std::string appName(app_data[strings::app_name].asString());
+
+ const uint32_t hmi_app_id(GenerateNewHMIAppID());
+
+ ApplicationSharedPtr app(
+ new ApplicationImpl(0,
+ mobile_app_id,
+ appName,
+ PolicyHandler::instance()->GetStatisticManager()));
+ if (app) {
+ app->SetShemaUrl(url_schema);
+ app->SetPackageName(package_name);
+ app->set_hmi_application_id(hmi_app_id);
+
+ sync_primitives::AutoLock lock(apps_to_register_list_lock_);
+ apps_to_register_.insert(app);
+ }
+ }
+ }
+}
+
+void ApplicationManagerImpl::ProcessQueryApp(
+ const smart_objects::SmartObject& sm_object) {
+ using namespace policy;
+ using namespace profile;
+
+ if (sm_object.keyExists(strings::application)) {
+ SmartArray* obj_array = sm_object[strings::application].asArray();
+ if (NULL != obj_array) {
+ const std::string app_icon_dir(Profile::instance()->app_icons_folder());
+ CreateApplications(*obj_array);
+ SendUpdateAppList();
+
+ AppsWaitRegistrationSet::const_iterator it = apps_to_register_.begin();
+ for (; it != apps_to_register_.end(); ++it) {
+
+ const std::string full_icon_path(app_icon_dir + "/" + (*it)->mobile_app_id());
+ if (file_system::FileExists(full_icon_path)) {
+ MessageHelper::SendSetAppIcon((*it)->hmi_app_id(), full_icon_path);
+ }
+ }
+ }
+ }
+}
+
#ifdef TIME_TESTER
void ApplicationManagerImpl::SetTimeMetricObserver(AMMetricObserver* observer) {
metric_observer_ = observer;
@@ -1852,6 +1916,7 @@ void ApplicationManagerImpl::removeNotification(const commands::Command* notific
void ApplicationManagerImpl::updateRequestTimeout(uint32_t connection_key,
uint32_t mobile_correlation_id,
uint32_t new_timeout_value) {
+ LOG4CXX_AUTO_TRACE(logger_);
request_ctrl_.updateRequestTimeout(connection_key, mobile_correlation_id,
new_timeout_value);
}
@@ -1876,8 +1941,17 @@ void ApplicationManagerImpl::set_application_id(const int32_t correlation_id,
(correlation_id, app_id));
}
+void ApplicationManagerImpl::AddPolicyObserver( policy::PolicyHandlerObserver* listener) {
+ policy::PolicyHandler::instance()->add_listener(listener);
+}
+
+void ApplicationManagerImpl::RemovePolicyObserver(policy::PolicyHandlerObserver* listener) {
+ policy::PolicyHandler::instance()->remove_listener(listener);
+}
+
void ApplicationManagerImpl::SetUnregisterAllApplicationsReason(
mobile_api::AppInterfaceUnregisteredReason::eType reason) {
+ LOG4CXX_TRACE(logger_, "reason = " << reason);
unregister_reason_ = reason;
}
@@ -1885,9 +1959,12 @@ void ApplicationManagerImpl::HeadUnitReset(
mobile_api::AppInterfaceUnregisteredReason::eType reason) {
switch (reason) {
case mobile_api::AppInterfaceUnregisteredReason::MASTER_RESET: {
- file_system::remove_directory_content(profile::Profile::instance()->app_storage_folder());
- resume_controller().ClearResumptionInfo();
+ UnregisterAllApplications();
policy::PolicyHandler::instance()->ResetPolicyTable();
+ policy::PolicyHandler::instance()->UnloadPolicyLibrary();
+
+ resume_controller().StopSavePersistentDataTimer();
+ file_system::remove_directory_content(profile::Profile::instance()->app_storage_folder());
break;
}
case mobile_api::AppInterfaceUnregisteredReason::FACTORY_DEFAULTS: {
@@ -1901,15 +1978,12 @@ void ApplicationManagerImpl::HeadUnitReset(
}
}
-void ApplicationManagerImpl::HeadUnitSuspend() {
- LOG4CXX_INFO(logger_, "ApplicationManagerImpl::HeadUnitSuspend");
-}
void ApplicationManagerImpl::SendOnSDLClose() {
- LOG4CXX_INFO(logger_, "ApplicationManagerImpl::SendOnSDLClose");
+ LOG4CXX_AUTO_TRACE(logger_);
// must be sent to PASA HMI on shutdown synchronously
- smart_objects::SmartObject* msg = new smart_objects::SmartObject(
+ smart_objects::SmartObjectSPtr msg = new smart_objects::SmartObject(
smart_objects::SmartType_Map);
(*msg)[strings::params][strings::function_id] =
@@ -1952,39 +2026,38 @@ void ApplicationManagerImpl::SendOnSDLClose() {
return;
}
- delete msg;
hmi_handler_->SendMessageToHMI(message_to_send);
}
-void ApplicationManagerImpl::UnregisterAllApplications(bool generated_by_hmi) {
- LOG4CXX_INFO(logger_, "ApplicationManagerImpl::UnregisterAllApplications " <<
- unregister_reason_);
- hmi_cooperating_ = false;
-
- bool is_ignition_off =
- unregister_reason_ ==
- mobile_api::AppInterfaceUnregisteredReason::IGNITION_OFF ? true : false;
-
- bool is_unexpected_disconnect = (generated_by_hmi != true);
-
- sync_primitives::AutoLock lock(applications_list_lock_);
+void ApplicationManagerImpl::UnregisterAllApplications() {
+ LOG4CXX_DEBUG(logger_, "Unregister reason " << unregister_reason_);
- std::set<ApplicationSharedPtr>::iterator it = application_list_.begin();
- while (it != application_list_.end()) {
+ hmi_cooperating_ = false;
+ bool is_ignition_off = false;
+ using namespace mobile_api::AppInterfaceUnregisteredReason;
+ using namespace helpers;
+
+ is_ignition_off =
+ Compare<eType, EQ, ONE>(unregister_reason_, IGNITION_OFF, INVALID_ENUM);
+
+ bool is_unexpected_disconnect =
+ Compare<eType, NEQ, ALL>(unregister_reason_,
+ IGNITION_OFF, MASTER_RESET, FACTORY_DEFAULTS);
+ ApplicationListAccessor accessor;
+ ApplictionSetConstIt it = accessor.begin();
+ while (it != accessor.end()) {
ApplicationSharedPtr app_to_remove = *it;
- MessageHelper::SendOnAppInterfaceUnregisteredNotificationToMobile(
- app_to_remove->app_id(), unregister_reason_);
+
UnregisterApplication(app_to_remove->app_id(),
mobile_apis::Result::INVALID_ENUM, is_ignition_off,
is_unexpected_disconnect);
-
- connection_handler_->CloseSession(app_to_remove->app_id());
- it = application_list_.begin();
+ connection_handler_->CloseSession(app_to_remove->app_id(),
+ connection_handler::kCommon);
+ it = accessor.begin();
}
-
if (is_ignition_off) {
- resume_controller().IgnitionOff();
+ resume_controller().Suspend();
}
request_ctrl_.terminateAllHMIRequests();
}
@@ -1992,12 +2065,15 @@ void ApplicationManagerImpl::UnregisterAllApplications(bool generated_by_hmi) {
void ApplicationManagerImpl::UnregisterApplication(
const uint32_t& app_id, mobile_apis::Result::eType reason,
bool is_resuming, bool is_unexpected_disconnect) {
- LOG4CXX_INFO(logger_,
- "ApplicationManagerImpl::UnregisterApplication " << app_id);
+ LOG4CXX_INFO(logger_, "app_id = " << app_id
+ << "; reason = " << reason
+ << "; is_resuming = " << is_resuming
+ << "; is_unexpected_disconnect = " << is_unexpected_disconnect);
//remove appID from tts_global_properties_app_list_
- RemoveAppFromTTSGlobalPropertiesList(app_id);
+ MessageHelper::SendOnAppInterfaceUnregisteredNotificationToMobile(
+ app_id, unregister_reason_);
- sync_primitives::AutoLock lock(applications_list_lock_);
+ RemoveAppFromTTSGlobalPropertiesList(app_id);
switch (reason) {
case mobile_apis::Result::SUCCESS:break;
@@ -2006,7 +2082,10 @@ void ApplicationManagerImpl::UnregisterApplication(
case mobile_apis::Result::INVALID_CERT: break;
case mobile_apis::Result::EXPIRED_CERT: break;
case mobile_apis::Result::TOO_MANY_PENDING_REQUESTS: {
- application(app_id)->usage_report().RecordRemovalsForBadBehavior();
+ ApplicationSharedPtr app_ptr = application(app_id);
+ if(app_ptr) {
+ app_ptr->usage_report().RecordRemovalsForBadBehavior();
+ }
break;
}
default: {
@@ -2016,21 +2095,25 @@ void ApplicationManagerImpl::UnregisterApplication(
}
ApplicationSharedPtr app_to_remove;
- std::set<ApplicationSharedPtr>::const_iterator it = application_list_.begin();
- for (; it != application_list_.end(); ++it) {
- if ((*it)->app_id() == app_id) {
- app_to_remove = *it;
- break;
+ {
+ ApplicationListAccessor accessor;
+ ApplictionSetConstIt it = accessor.begin();
+ for (; it != accessor.end(); ++it) {
+ if ((*it)->app_id() == app_id) {
+ app_to_remove = *it;
+ break;
+ }
}
+ if (!app_to_remove) {
+ LOG4CXX_ERROR(logger_, "Cant find application with app_id = " << app_id);
+ return;
+ }
+ accessor.Erase(app_to_remove);
}
- if (!app_to_remove) {
- LOG4CXX_ERROR(logger_, "Cant find application with app_id = " << app_id);
- return;
- }
- application_list_.erase(app_to_remove);
-
if (is_resuming) {
- resume_ctrl_.SaveApplication(app_to_remove);
+ resume_ctrl_.SaveApplication(app_to_remove);
+ } else {
+ resume_ctrl_.RemoveApplicationFromSaved(app_to_remove->mobile_app_id());
}
if (audio_pass_thru_active_) {
@@ -2047,15 +2130,8 @@ void ApplicationManagerImpl::UnregisterApplication(
}
-void ApplicationManagerImpl::UnregisterRevokedApplication(
- const uint32_t& app_id, mobile_apis::Result::eType reason) {
- UnregisterApplication(app_id, reason);
-
- connection_handler_->CloseSession(app_id);
-
- if (application_list_.empty()) {
- connection_handler_->CloseRevokedConnection(app_id);
- }
+void ApplicationManagerImpl::OnAppUnauthorized(const uint32_t& app_id) {
+ connection_handler_->CloseSession(app_id, connection_handler::kCommon);
}
void ApplicationManagerImpl::Handle(const impl::MessageFromMobile message) {
@@ -2069,26 +2145,19 @@ void ApplicationManagerImpl::Handle(const impl::MessageFromMobile message) {
}
void ApplicationManagerImpl::Handle(const impl::MessageToMobile message) {
- protocol_handler::RawMessage* rawMessage = 0;
- if (message->protocol_version() == application_manager::kV1) {
- rawMessage = MobileMessageHandler::HandleOutgoingMessageProtocolV1(message);
- } else if ((message->protocol_version() == application_manager::kV2) ||
- (message->protocol_version() == application_manager::kV3)) {
- rawMessage = MobileMessageHandler::HandleOutgoingMessageProtocolV2(message);
- } else {
- return;
- }
- if (!rawMessage) {
- LOG4CXX_ERROR(logger_, "Failed to create raw message.");
- return;
- }
-
if (!protocol_handler_) {
LOG4CXX_WARN(logger_,
"Protocol Handler is not set; cannot send message to mobile.");
return;
}
+ utils::SharedPtr<protocol_handler::RawMessage> rawMessage =
+ MobileMessageHandler::HandleOutgoingMessageProtocol(message);
+
+ if (!rawMessage) {
+ LOG4CXX_ERROR(logger_, "Failed to create raw message.");
+ return;
+ }
bool is_final = message.is_final;
bool close_session = false;
@@ -2103,7 +2172,8 @@ void ApplicationManagerImpl::Handle(const impl::MessageToMobile message) {
LOG4CXX_INFO(logger_, "Message for mobile given away");
if (close_session) {
- connection_handler_->CloseSession(message->connection_key());
+ connection_handler_->CloseSession(message->connection_key(),
+ connection_handler::kCommon);
}
}
@@ -2129,6 +2199,41 @@ void ApplicationManagerImpl::Handle(const impl::MessageToHmi message) {
LOG4CXX_INFO(logger_, "Message to hmi given away.");
}
+void ApplicationManagerImpl::Handle(const impl::AudioData message) {
+ LOG4CXX_INFO(logger_, "Send AudioPassThru notification");
+ smart_objects::SmartObjectSPtr on_audio_pass = new smart_objects::SmartObject();
+
+ if (!on_audio_pass) {
+ LOG4CXX_ERROR_EXT(logger_, "OnAudioPassThru NULL pointer");
+ return;
+ }
+
+ LOG4CXX_INFO_EXT(logger_, "Fill smart object");
+
+ (*on_audio_pass)[strings::params][strings::message_type] =
+ application_manager::MessageType::kNotification;
+
+ (*on_audio_pass)[strings::params][strings::connection_key] =
+ static_cast<int32_t>(message.session_key);
+ (*on_audio_pass)[strings::params][strings::function_id] =
+ mobile_apis::FunctionID::OnAudioPassThruID;
+
+ LOG4CXX_INFO_EXT(logger_, "Fill binary data");
+ // binary data
+ (*on_audio_pass)[strings::params][strings::binary_data] =
+ smart_objects::SmartObject(message.binary_data);
+
+ LOG4CXX_INFO_EXT(logger_, "After fill binary data");
+
+ LOG4CXX_INFO_EXT(logger_, "Send data");
+ CommandSharedPtr command (
+ MobileCommandFactory::CreateCommand(on_audio_pass,
+ commands::Command::ORIGIN_SDL));
+ command->Init();
+ command->Run();
+ command->CleanUp();
+}
+
mobile_apis::Result::eType ApplicationManagerImpl::CheckPolicyPermissions(
const std::string& policy_app_id,
mobile_apis::HMILevel::eType hmi_level,
@@ -2200,16 +2305,185 @@ mobile_apis::Result::eType ApplicationManagerImpl::CheckPolicyPermissions(
return mobile_api::Result::SUCCESS;
}
+
+void ApplicationManagerImpl::OnLowVoltage() {
+ LOG4CXX_AUTO_TRACE(logger_);
+ is_low_voltage_ = true;
+ request_ctrl_.OnLowVoltage();
+}
+
+bool ApplicationManagerImpl::IsLowVoltage() {
+ LOG4CXX_TRACE(logger_, "result: " << is_low_voltage_);
+ return is_low_voltage_;
+}
+
+void ApplicationManagerImpl::NaviAppStreamStatus(bool stream_active) {
+ ApplicationSharedPtr active_app = active_application();
+ using namespace mobile_apis;
+ if(active_app && active_app->is_media_application()) {
+ LOG4CXX_DEBUG(logger_, "Stream status: " << active_app->app_id());
+
+ active_app->set_audio_streaming_state(stream_active ?
+ AudioStreamingState::ATTENUATED :
+ AudioStreamingState::AUDIBLE);
+ MessageHelper::SendHMIStatusNotification(*active_app);
+ }
+}
+
+void ApplicationManagerImpl::ForbidStreaming(uint32_t app_id) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ using namespace protocol_handler;
+ ApplicationSharedPtr app = application(app_id);
+ if (!(app && app->is_navi())) {
+ LOG4CXX_DEBUG(logger_, " There is no application with id: " << app_id);
+ return;
+ }
+
+ if (connection_handler_) {
+ const bool send_end_service = true;
+ const bool ack_received = false;
+ if (app->hmi_supports_navi_video_streaming()) {
+ LOG4CXX_DEBUG(logger_, "Going to end video service");
+ connection_handler_->SendEndService(navi_app_to_stop_, kMobileNav);
+ service_status_[kMobileNav] = std::make_pair(send_end_service, ack_received);
+ }
+ if (app->hmi_supports_navi_audio_streaming()) {
+ LOG4CXX_DEBUG(logger_, "Going to end audio service");
+ connection_handler_->SendEndService(navi_app_to_stop_, kAudio);
+ service_status_[kAudio] = std::make_pair(send_end_service, ack_received);
+ }
+ }
+ // this timer will check if appropriate acks from mobile were received.
+ // in case no acks, the application will be unregistered.
+ end_services_timer.start(wait_end_service_timeout_, this, &ApplicationManagerImpl::CloseNaviApp);
+ bool const allow_streaming = false;
+ ChangeStreamStatus(app_id, allow_streaming);
+}
+
+bool ApplicationManagerImpl::CanAppStream(uint32_t app_id) const {
+ LOG4CXX_AUTO_TRACE(logger_);
+
+ ApplicationSharedPtr app = application(app_id);
+ if (!(app && app->is_navi())) {
+ LOG4CXX_DEBUG(logger_, " There is no application with id: " << app_id);
+ return false;
+ }
+
+ return app->is_streaming_allowed();
+}
+
+void ApplicationManagerImpl::ChangeStreamStatus(uint32_t app_id, bool can_stream) {
+ ApplicationSharedPtr app = application(app_id);
+ if (!app) {
+ LOG4CXX_DEBUG(logger_, " There is no application with id: " << app_id);
+ return;
+ }
+
+ // Change streaming status only in case incoming value is different.
+ if (can_stream != app->streaming()) {
+ NaviAppStreamStatus(can_stream);
+ app->set_streaming(can_stream);
+ }
+}
+
+void ApplicationManagerImpl::StreamingEnded(uint32_t app_id) {
+ LOG4CXX_DEBUG(logger_, "Streaming has been stoped.");
+ ChangeStreamStatus(app_id, false);
+}
+
+void ApplicationManagerImpl::OnHMILevelChanged(uint32_t app_id,
+ mobile_apis::HMILevel::eType from,
+ mobile_apis::HMILevel::eType to) {
+ using namespace mobile_apis::HMILevel;
+ using namespace helpers;
+
+ ApplicationSharedPtr app = application(app_id);
+ if (!(app && app->is_navi())) {
+ return;
+ }
+
+ if (Compare<eType, EQ, ONE>(from, HMI_FULL, HMI_LIMITED)) {
+ navi_app_to_stop_ = app_id;
+ NaviAppChangeLevel(to);
+ } else if (Compare<eType, EQ, ONE>(to, HMI_FULL, HMI_LIMITED)) {
+ LOG4CXX_DEBUG(logger_, "Restore streaming ability");
+ app->set_streaming_allowed(true);
+ }
+}
+
+void ApplicationManagerImpl::EndNaviServices() {
+ LOG4CXX_AUTO_TRACE(logger_);
+ ApplicationSharedPtr app = application(navi_app_to_stop_);
+ if (!app) {
+ LOG4CXX_DEBUG(logger_, "The application doesn't exists anymore.");
+ return;
+ }
+ app->set_streaming_allowed(false);
+}
+
+void ApplicationManagerImpl::CloseNaviApp() {
+ LOG4CXX_AUTO_TRACE(logger_);
+ using namespace mobile_apis::AppInterfaceUnregisteredReason;
+ using namespace mobile_apis::Result;
+ using namespace protocol_handler;
+ const bool is_ack_received = AckReceived(kAudio) && AckReceived(kMobileNav);
+ if (!is_ack_received) {
+ SetUnregisterAllApplicationsReason(PROTOCOL_VIOLATION);
+ UnregisterApplication(navi_app_to_stop_, ABORTED);
+ }
+}
+
+bool ApplicationManagerImpl::AckReceived(protocol_handler::ServiceType type) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ using namespace protocol_handler;
+
+ const bool sent = service_status_[type].first;
+ const bool received = service_status_[type].second;
+
+ LOG4CXX_DEBUG(logger_, "Ack for services type " << type
+ << " is send: " << sent
+ << " is received: " << received);
+
+ return sent == received;
+}
+
+void ApplicationManagerImpl::NaviAppChangeLevel(mobile_apis::HMILevel::eType new_level) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ using namespace mobile_apis;
+ if (new_level == HMILevel::HMI_BACKGROUND) {
+ end_services_timer.start(wait_end_service_timeout_, this, &ApplicationManagerImpl::EndNaviServices);
+ } else if (new_level == HMILevel::HMI_NONE) {
+ EndNaviServices();
+ LOG4CXX_DEBUG(logger_, "Send end services start close app timer");
+ end_services_timer.start(wait_end_service_timeout_, this, &ApplicationManagerImpl::CloseNaviApp);
+ } else {
+ LOG4CXX_DEBUG(logger_, "There is no defined behavior for hmi " <<
+ "levels that are differen from NONE or BACKGROUND");
+ }
+}
+
+void ApplicationManagerImpl::OnWakeUp() {
+ LOG4CXX_AUTO_TRACE(logger_);
+ is_low_voltage_ = false;
+ request_ctrl_.OnWakeUp();
+}
+
void ApplicationManagerImpl::Mute(VRTTSSessionChanging changing_state) {
mobile_apis::AudioStreamingState::eType state =
- hmi_capabilities_.attenuated_supported()
- ? mobile_apis::AudioStreamingState::ATTENUATED
- : mobile_apis::AudioStreamingState::NOT_AUDIBLE;
+ mobile_apis::AudioStreamingState::NOT_AUDIBLE;
+
+ // ATTENUATED state applicable only for TTS
+ if ((kTTSSessionChanging == changing_state) &&
+ hmi_capabilities_.attenuated_supported()) {
+ state = mobile_apis::AudioStreamingState::ATTENUATED;
+ }
+
ApplicationManagerImpl::ApplicationListAccessor accessor;
- ApplicationManagerImpl::TAppList local_app_list = accessor.applications();
- ApplicationManagerImpl::TAppListConstIt it = local_app_list.begin();
- ApplicationManagerImpl::TAppListConstIt itEnd = local_app_list.end();
+ ApplicationManagerImpl::ApplictionSetConstIt it =
+ accessor.begin();
+ ApplicationManagerImpl::ApplictionSetConstIt
+ itEnd = accessor.end();
for (; it != itEnd; ++it) {
if ((*it).valid()) {
if ((*it)->is_media_application()) {
@@ -2230,9 +2504,8 @@ void ApplicationManagerImpl::Mute(VRTTSSessionChanging changing_state) {
void ApplicationManagerImpl::Unmute(VRTTSSessionChanging changing_state) {
ApplicationManagerImpl::ApplicationListAccessor accessor;
- ApplicationManagerImpl::TAppList local_app_list = application_list_;
- ApplicationManagerImpl::TAppListConstIt it = local_app_list.begin();
- ApplicationManagerImpl::TAppListConstIt itEnd = local_app_list.end();
+ ApplicationManagerImpl::ApplictionSetConstIt it = accessor.begin();
+ ApplicationManagerImpl::ApplictionSetConstIt itEnd = accessor.end();
for (; it != itEnd; ++it) {
if ((*it).valid()) {
@@ -2332,19 +2605,8 @@ bool ApplicationManagerImpl::IsHMICooperating() const {
void ApplicationManagerImpl::OnApplicationListUpdateTimer() {
LOG4CXX_DEBUG(logger_, "Application list update timer finished");
-
- std::list <uint32_t> applications_ids;
-
- applications_list_lock_.Acquire();
- for (std::set<ApplicationSharedPtr>::const_iterator i = application_list_.begin();
- i != application_list_.end(); ++i) {
- ApplicationSharedPtr application = *i;
- uint32_t app_id = application->app_id();
- applications_ids.push_back(app_id);
- }
- applications_list_lock_.Release();
-
- SendUpdateAppList(applications_ids);
+ SendUpdateAppList();
+ policy::PolicyHandler::instance()->OnAppsSearchCompleted();
}
void ApplicationManagerImpl::OnTimerSendTTSGlobalProperties() {
@@ -2375,11 +2637,12 @@ void ApplicationManagerImpl::OnTimerSendTTSGlobalProperties() {
void ApplicationManagerImpl::AddAppToTTSGlobalPropertiesList(
const uint32_t app_id) {
- LOG4CXX_INFO(logger_, "ApplicationManagerImpl::AddAppToTTSGlobalPropertiesList");
+ LOG4CXX_AUTO_TRACE(logger_);
uint16_t timeout = profile::Profile::instance()->tts_global_properties_timeout();
TimevalStruct current_time = date_time::DateTime::getCurrentTime();
current_time.tv_sec += timeout;
- sync_primitives::AutoLock lock(tts_global_properties_app_list_lock_);
+ // please avoid AutoLock usage to avoid deadlock
+ tts_global_properties_app_list_lock_.Acquire();
if (tts_global_properties_app_list_.end() ==
tts_global_properties_app_list_.find(app_id)) {
tts_global_properties_app_list_[app_id] = current_time;
@@ -2387,38 +2650,45 @@ void ApplicationManagerImpl::AddAppToTTSGlobalPropertiesList(
//if add first item need to start timer on one second
if (1 == tts_global_properties_app_list_.size()) {
LOG4CXX_INFO(logger_, "Start tts_global_properties_timer_");
+ tts_global_properties_app_list_lock_.Release();
tts_global_properties_timer_.start(1);
+ return;
}
+ tts_global_properties_app_list_lock_.Release();
}
void ApplicationManagerImpl::RemoveAppFromTTSGlobalPropertiesList(
const uint32_t app_id) {
- LOG4CXX_INFO(logger_, "ApplicationManagerImpl::RemoveAppFromTTSGlobalPropertiesList");
- sync_primitives::AutoLock lock(tts_global_properties_app_list_lock_);
+ LOG4CXX_AUTO_TRACE(logger_);
+ // please avoid AutoLock usage to avoid deadlock
+ tts_global_properties_app_list_lock_.Acquire();
std::map<uint32_t, TimevalStruct>::iterator it =
tts_global_properties_app_list_.find(app_id);
if (tts_global_properties_app_list_.end() != it) {
tts_global_properties_app_list_.erase(it);
- if (!(tts_global_properties_app_list_.size())) {
+ if (tts_global_properties_app_list_.empty()) {
LOG4CXX_INFO(logger_, "Stop tts_global_properties_timer_");
- //if container is empty need to stop timer
- tts_global_properties_timer_.stop();
+ // if container is empty need to stop timer
+ tts_global_properties_app_list_lock_.Release();
+ tts_global_properties_timer_.pause();
+ return;
}
}
+ tts_global_properties_app_list_lock_.Release();
}
void ApplicationManagerImpl::CreatePhoneCallAppList() {
- LOG4CXX_TRACE_ENTER(logger_);
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::ApplicationListAccessor accessor;
- ApplicationManagerImpl::TAppList local_app_list = accessor.applications();
- ApplicationManagerImpl::TAppListIt it = local_app_list.begin();
- ApplicationManagerImpl::TAppListIt itEnd = local_app_list.end();
+ ApplicationManagerImpl::ApplictionSetIt it = accessor.begin();
+ ApplicationManagerImpl::ApplictionSetIt itEnd = accessor.end();
+ using namespace mobile_apis::HMILevel;
+ using namespace helpers;
for (; it != itEnd; ++it) {
- if (mobile_api::HMILevel::HMI_FULL == (*it)->hmi_level() ||
- mobile_api::HMILevel::HMI_LIMITED == (*it)->hmi_level()) {
+ if (Compare<eType, EQ, ONE>((*it)->hmi_level(), HMI_FULL, HMI_LIMITED)) {
// back up app state
on_phone_call_app_list_.insert(std::pair<uint32_t, AppState>(
@@ -2426,8 +2696,9 @@ void ApplicationManagerImpl::CreatePhoneCallAppList() {
(*it)->audio_streaming_state(),
(*it)->system_context())));
+ ChangeAppsHMILevel((*it)->app_id() , (*it)->is_navi() ? HMI_LIMITED : HMI_BACKGROUND);
+
// app state during phone call
- (*it)->set_hmi_level(mobile_api::HMILevel::HMI_BACKGROUND);
(*it)->set_audio_streaming_state(mobile_api::AudioStreamingState::NOT_AUDIBLE);
(*it)->set_system_context(mobile_api::SystemContext::SYSCTXT_MAIN);
MessageHelper::SendHMIStatusNotification(*(*it));
@@ -2436,10 +2707,7 @@ void ApplicationManagerImpl::CreatePhoneCallAppList() {
}
void ApplicationManagerImpl::ResetPhoneCallAppList() {
- LOG4CXX_TRACE_ENTER(logger_);
-
- ApplicationManagerImpl::ApplicationListAccessor accessor;
- ApplicationManagerImpl::TAppList local_app_list = accessor.applications();
+ LOG4CXX_AUTO_TRACE(logger_);
std::map<uint32_t, AppState>::iterator it =
on_phone_call_app_list_.begin();
@@ -2448,7 +2716,8 @@ void ApplicationManagerImpl::ResetPhoneCallAppList() {
for (; it != it_end; ++it) {
ApplicationSharedPtr app = application(it->first);
if (app) {
- app->set_hmi_level(it->second.hmi_level);
+ ChangeAppsHMILevel(app->app_id(), it->second.hmi_level);
+
app->set_audio_streaming_state(it->second.audio_streaming_state);
app->set_system_context(it->second.system_context);
MessageHelper::SendHMIStatusNotification(*app);
@@ -2458,4 +2727,191 @@ void ApplicationManagerImpl::ResetPhoneCallAppList() {
on_phone_call_app_list_.clear();
}
+void ApplicationManagerImpl::ChangeAppsHMILevel(uint32_t app_id,
+ mobile_apis::HMILevel::eType level) {
+ using namespace mobile_apis::HMILevel;
+ LOG4CXX_AUTO_TRACE(logger_);
+ LOG4CXX_DEBUG(logger_, "AppID to change: " << app_id << " -> "
+ << level);
+ ApplicationSharedPtr app = application(app_id);
+ if (!app) {
+ LOG4CXX_DEBUG(logger_, "There is no app with id: " << app_id);
+ return;
+ }
+ eType old_level = app->hmi_level();
+ if (old_level != level) {
+ app->set_hmi_level(level);
+ OnHMILevelChanged(app_id, old_level, level);
+ } else {
+ LOG4CXX_WARN(logger_, "Redudant changing HMI level : " << level);
+ }
+
+}
+
+void ApplicationManagerImpl::MakeAppNotAudible(uint32_t app_id) {
+ using namespace mobile_apis;
+ ApplicationSharedPtr app = application(app_id);
+ if (!app) {
+ LOG4CXX_DEBUG(logger_, "There is no app with id: " << app_id);
+ return;
+ }
+ ChangeAppsHMILevel(app_id, HMILevel::HMI_BACKGROUND);
+ app->set_audio_streaming_state(AudioStreamingState::NOT_AUDIBLE);
+}
+
+bool ApplicationManagerImpl::MakeAppFullScreen(uint32_t app_id) {
+ using namespace mobile_apis;
+ ApplicationSharedPtr app = application(app_id);
+ if (!app) {
+ LOG4CXX_DEBUG(logger_, "There is no app with id: " << app_id);
+ return false;
+ }
+
+ ChangeAppsHMILevel(app_id, HMILevel::HMI_FULL);
+ if (app->is_media_application() || app->is_navi()) {
+ app->set_audio_streaming_state(AudioStreamingState::AUDIBLE);
+ }
+ app->set_system_context(SystemContext::SYSCTXT_MAIN);
+
+ if(!app->has_been_activated()) {
+ app->set_activated(true);
+ }
+
+ return true;
+}
+
+
+mobile_apis::AppHMIType::eType ApplicationManagerImpl::StringToAppHMIType(std::string str) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ if ("DEFAULT" == str) {
+ return mobile_apis::AppHMIType::DEFAULT;
+ } else if ("COMMUNICATION" == str) {
+ return mobile_apis::AppHMIType::COMMUNICATION;
+ } else if ("MEDIA" == str) {
+ return mobile_apis::AppHMIType::MEDIA;
+ } else if ("MESSAGING" == str) {
+ return mobile_apis::AppHMIType::MESSAGING;
+ } else if ("NAVIGATION" == str) {
+ return mobile_apis::AppHMIType::NAVIGATION;
+ } else if ("INFORMATION" == str) {
+ return mobile_apis::AppHMIType::INFORMATION;
+ } else if ("SOCIAL" == str) {
+ return mobile_apis::AppHMIType::SOCIAL;
+ } else if ("BACKGROUND_PROCESS" == str) {
+ return mobile_apis::AppHMIType::BACKGROUND_PROCESS;
+ } else if ("TESTING" == str) {
+ return mobile_apis::AppHMIType::TESTING;
+ } else if ("SYSTEM" == str) {
+ return mobile_apis::AppHMIType::SYSTEM;
+ } else {
+ return mobile_apis::AppHMIType::INVALID_ENUM;
+ }
+}
+
+bool ApplicationManagerImpl::CompareAppHMIType (const smart_objects::SmartObject& from_policy,
+ const smart_objects::SmartObject& from_application) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ bool equal = false;
+ uint32_t lenght_policy_app_types = from_policy.length();
+ uint32_t lenght_application_app_types = from_application.length();
+
+ for(uint32_t i = 0; i < lenght_application_app_types; ++i) {
+ for(uint32_t k = 0; k < lenght_policy_app_types; ++k) {
+ if (from_application[i] == from_policy[k]) {
+ equal = true;
+ break;
+ }
+ }
+ if(!equal) {
+ return false;
+ }
+ equal = false;
+ }
+ return true;
+}
+
+void ApplicationManagerImpl::OnUpdateHMIAppType(
+ std::map<std::string, std::vector<std::string> > app_hmi_types) {
+ LOG4CXX_AUTO_TRACE(logger_);
+
+ std::map<std::string, std::vector<std::string> >::iterator it_app_hmi_types_from_policy;
+ std::vector<std::string> hmi_types_from_policy;
+ smart_objects::SmartObject transform_app_hmi_types(smart_objects::SmartType_Array);
+ bool flag_diffirence_app_hmi_type = false;
+ ApplicationListAccessor accessor;
+ for (ApplictionSetIt it = accessor.begin();
+ it != accessor.end(); ++it) {
+
+ it_app_hmi_types_from_policy =
+ app_hmi_types.find(((*it)->mobile_app_id()));
+
+ if (it_app_hmi_types_from_policy != app_hmi_types.end() &&
+ ((it_app_hmi_types_from_policy->second).size())) {
+ flag_diffirence_app_hmi_type = false;
+ hmi_types_from_policy = (it_app_hmi_types_from_policy->second);
+
+ if(transform_app_hmi_types.length()) {
+ transform_app_hmi_types =
+ smart_objects::SmartObject(smart_objects::SmartType_Array);
+ }
+
+ for(uint32_t i = 0; i < hmi_types_from_policy.size(); ++i) {
+ transform_app_hmi_types[i] = StringToAppHMIType(hmi_types_from_policy[i]);
+ }
+
+ ApplicationConstSharedPtr app = *it;
+ const smart_objects::SmartObject* save_application_hmi_type = app->app_types();
+
+ if (save_application_hmi_type == NULL ||
+ ((*save_application_hmi_type).length() != transform_app_hmi_types.length())) {
+ flag_diffirence_app_hmi_type = true;
+ } else {
+ flag_diffirence_app_hmi_type = !(CompareAppHMIType(transform_app_hmi_types,
+ *save_application_hmi_type));
+ }
+
+ if (flag_diffirence_app_hmi_type) {
+ (*it)->set_app_types(transform_app_hmi_types);
+ (*it)->ChangeSupportingAppHMIType();
+ if ((*it)->hmi_level() == mobile_api::HMILevel::HMI_BACKGROUND) {
+
+ MessageHelper::SendUIChangeRegistrationRequestToHMI(*it);
+ } else if (((*it)->hmi_level() == mobile_api::HMILevel::HMI_FULL) ||
+ ((*it)->hmi_level() == mobile_api::HMILevel::HMI_LIMITED)) {
+
+ MessageHelper::SendActivateAppToHMI((*it)->app_id(),
+ hmi_apis::Common_HMILevel::BACKGROUND,
+ false);
+ MessageHelper::SendUIChangeRegistrationRequestToHMI(*it);
+ ChangeAppsHMILevel((*it)->app_id(), mobile_api::HMILevel::HMI_BACKGROUND);
+ MessageHelper::SendHMIStatusNotification(*(*it));
+ }
+ }
+ }
+ }
+}
+
+ProtocolVersion ApplicationManagerImpl::SupportedSDLVersion() const {
+ LOG4CXX_AUTO_TRACE(logger_);
+ bool heart_beat_support =
+ profile::Profile::instance()->heart_beat_timeout();
+ bool sdl4_support = profile::Profile::instance()->enable_protocol_4();
+
+ if (sdl4_support) {
+ LOG4CXX_DEBUG(logger_, "SDL Supported protocol version "<<ProtocolVersion::kV4);
+ return ProtocolVersion::kV4;
+ }
+ if (heart_beat_support) {
+ LOG4CXX_DEBUG(logger_, "SDL Supported protocol version "<<ProtocolVersion::kV3);
+ return ProtocolVersion::kV3;
+ }
+
+ LOG4CXX_DEBUG(logger_, "SDL Supported protocol version "<<ProtocolVersion::kV2);
+ return ProtocolVersion::kV2;
+}
+
+
+ApplicationManagerImpl::ApplicationListAccessor::~ApplicationListAccessor() {
+}
+
} // namespace application_manager
diff --git a/src/components/application_manager/src/commands/command_impl.cc b/src/components/application_manager/src/commands/command_impl.cc
index 86b764c46a..66c0e2c631 100644
--- a/src/components/application_manager/src/commands/command_impl.cc
+++ b/src/components/application_manager/src/commands/command_impl.cc
@@ -1,4 +1,4 @@
-/**
+/*
Copyright (c) 2014, Ford Motor Company
All rights reserved.
diff --git a/src/components/application_manager/src/commands/command_notification_from_mobile_impl.cc b/src/components/application_manager/src/commands/command_notification_from_mobile_impl.cc
new file mode 100644
index 0000000000..ee7afaddf9
--- /dev/null
+++ b/src/components/application_manager/src/commands/command_notification_from_mobile_impl.cc
@@ -0,0 +1,74 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/command_notification_from_mobile_impl.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/message_helper.h"
+
+namespace application_manager {
+
+namespace commands {
+
+CommandNotificationFromMobileImpl::CommandNotificationFromMobileImpl(
+ const MessageSharedPtr& message)
+ : CommandImpl(message) {
+}
+
+CommandNotificationFromMobileImpl::~CommandNotificationFromMobileImpl() {
+}
+
+bool CommandNotificationFromMobileImpl::Init() {
+ return true;
+}
+
+bool CommandNotificationFromMobileImpl::CleanUp() {
+ return true;
+}
+
+void CommandNotificationFromMobileImpl::Run() {
+}
+
+void CommandNotificationFromMobileImpl::SendNotification() {
+ (*message_)[strings::params][strings::protocol_type] = mobile_protocol_type_;
+ (*message_)[strings::params][strings::protocol_version] = protocol_version_;
+ (*message_)[strings::params][strings::message_type] =
+ static_cast<int32_t>(application_manager::MessageType::kNotification);
+
+ LOG4CXX_INFO(logger_, "SendNotification");
+ MessageHelper::PrintSmartObject(*message_);
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/src/components/application_manager/src/commands/command_request_impl.cc b/src/components/application_manager/src/commands/command_request_impl.cc
index 5f8757754f..5d70e15722 100644
--- a/src/components/application_manager/src/commands/command_request_impl.cc
+++ b/src/components/application_manager/src/commands/command_request_impl.cc
@@ -1,4 +1,4 @@
-/*
+/*
Copyright (c) 2013, Ford Motor Company
All rights reserved.
@@ -53,12 +53,12 @@ struct DisallowedParamsInserter {
application_manager::MessageHelper::vehicle_data();
VehicleData::const_iterator it = vehicle_data.find(param);
if (vehicle_data.end() != it) {
- smart_objects::SmartObject* disallowed_param =
+ smart_objects::SmartObjectSPtr disallowed_param =
new smart_objects::SmartObject(smart_objects::SmartType_Map);
(*disallowed_param)[strings::data_type] = (*it).second;
(*disallowed_param)[strings::result_code] = code_;
- response_[strings::msg_params][param.c_str()] = *disallowed_param;
- return true;
+ response_[strings::msg_params][param.c_str()] = *disallowed_param;
+ return true;
}
return false;
}
@@ -75,7 +75,7 @@ CommandRequestImpl::CommandRequestImpl(const MessageSharedPtr& message)
CommandRequestImpl::~CommandRequestImpl() {
}
-bool CommandRequestImpl::Init() {
+bool CommandRequestImpl::Init() {
return true;
}
@@ -91,12 +91,14 @@ void CommandRequestImpl::Run() {
}
void CommandRequestImpl::onTimeOut() {
- LOG4CXX_INFO(logger_, "CommandRequestImpl::onTimeOut");
+ LOG4CXX_AUTO_TRACE(logger_);
unsubscribe_from_all_events();
{
+ // FIXME (dchmerev@luxoft.com): atomic_xchg fits better
sync_primitives::AutoLock auto_lock(state_lock_);
if (kCompleted == current_state_) {
+ LOG4CXX_DEBUG(logger_, "current_state_ = kCompleted");
// don't send timeout if request completed
return;
}
@@ -104,7 +106,7 @@ void CommandRequestImpl::onTimeOut() {
current_state_ = kTimedOut;
}
- smart_objects::SmartObject* response =
+ smart_objects::SmartObjectSPtr response =
MessageHelper::CreateNegativeResponse(connection_key(), function_id(),
correlation_id(), mobile_api::Result::GENERIC_ERROR);
@@ -116,7 +118,7 @@ void CommandRequestImpl::on_event(const event_engine::Event& event) {
void CommandRequestImpl::SendResponse(
const bool success, const mobile_apis::Result::eType& result_code,
- const char* info, const NsSmart::SmartObject* response_params) {
+ const char* info, const smart_objects::SmartObject* response_params) {
{
sync_primitives::AutoLock auto_lock(state_lock_);
@@ -128,13 +130,12 @@ void CommandRequestImpl::SendResponse(
current_state_ = kCompleted;
}
- NsSmartDeviceLink::NsSmartObjects::SmartObject* result =
- new NsSmartDeviceLink::NsSmartObjects::SmartObject;
+ smart_objects::SmartObjectSPtr result = new smart_objects::SmartObject;
if (!result) {
LOG4CXX_ERROR(logger_, "Memory allocation failed.");
return;
}
- NsSmartDeviceLink::NsSmartObjects::SmartObject& response = *result;
+ smart_objects::SmartObject& response = *result;
response[strings::params][strings::message_type] = MessageType::kResponse;
response[strings::params][strings::correlation_id] = correlation_id();
@@ -193,10 +194,9 @@ bool CommandRequestImpl::CheckSyntax(std::string str, bool allow_empty_line) {
void CommandRequestImpl::SendHMIRequest(
const hmi_apis::FunctionID::eType& function_id,
- const NsSmart::SmartObject* msg_params, bool use_events) {
+ const smart_objects::SmartObject* msg_params, bool use_events) {
- NsSmartDeviceLink::NsSmartObjects::SmartObject* result =
- new NsSmartDeviceLink::NsSmartObjects::SmartObject;
+ smart_objects::SmartObjectSPtr result = new smart_objects::SmartObject;
if (!result) {
LOG4CXX_ERROR(logger_, "Memory allocation failed.");
return;
@@ -205,11 +205,11 @@ void CommandRequestImpl::SendHMIRequest(
const uint32_t hmi_correlation_id =
ApplicationManagerImpl::instance()->GetNextHMICorrelationID();
if (use_events) {
- LOG4CXX_WARN(logger_, "subscribe_on_event " << function_id << " " << hmi_correlation_id);
+ LOG4CXX_DEBUG(logger_, "subscribe_on_event " << function_id << " " << hmi_correlation_id);
subscribe_on_event(function_id, hmi_correlation_id);
}
- NsSmartDeviceLink::NsSmartObjects::SmartObject& request = *result;
+ smart_objects::SmartObject& request = *result;
request[strings::params][strings::message_type] = MessageType::kRequest;
request[strings::params][strings::function_id] = function_id;
request[strings::params][strings::correlation_id] = hmi_correlation_id;
@@ -232,13 +232,12 @@ void CommandRequestImpl::CreateHMINotification(
const hmi_apis::FunctionID::eType& function_id,
const NsSmart::SmartObject& msg_params) const {
- NsSmartDeviceLink::NsSmartObjects::SmartObject* result =
- new NsSmartDeviceLink::NsSmartObjects::SmartObject;
+ smart_objects::SmartObjectSPtr result = new smart_objects::SmartObject;
if (!result) {
LOG4CXX_ERROR(logger_, "Memory allocation failed.");
return;
}
- NsSmartDeviceLink::NsSmartObjects::SmartObject& notify = *result;
+ smart_objects::SmartObject& notify = *result;
notify[strings::params][strings::message_type] =
static_cast<int32_t>(application_manager::MessageType::kNotification);
@@ -369,11 +368,11 @@ bool CommandRequestImpl::CheckAllowedParameters() {
return true;
}
- typedef std::set<application_manager::ApplicationSharedPtr> ApplicationList;
ApplicationManagerImpl::ApplicationListAccessor accessor;
- ApplicationList app_list = accessor.applications();
- ApplicationList::const_iterator it_app_list = app_list.begin();
- ApplicationList::const_iterator it_app_list_end = app_list.end();
+ ApplicationManagerImpl::ApplictionSetConstIt it_app_list =
+ accessor.begin();
+ ApplicationManagerImpl::ApplictionSetConstIt it_app_list_end =
+ accessor.end();
for (; it_app_list != it_app_list_end; ++it_app_list) {
if (connection_key() == (*it_app_list).get()->app_id()) {
@@ -385,7 +384,10 @@ bool CommandRequestImpl::CheckAllowedParameters() {
smart_objects::SmartMap::iterator iter_end = s_map.map_end();
for (; iter != iter_end; ++iter) {
- params.push_back(iter->first);
+ if (true == iter->second.asBool()) {
+ LOG4CXX_INFO(logger_, "Request's param: " << iter->first);
+ params.push_back(iter->first);
+ }
}
}
@@ -393,7 +395,7 @@ bool CommandRequestImpl::CheckAllowedParameters() {
mobile_apis::Result::eType check_result =
application_manager::ApplicationManagerImpl::instance()->
CheckPolicyPermissions(
- (*it_app_list).get()->mobile_app_id()->asString(),
+ (*it_app_list).get()->mobile_app_id(),
(*it_app_list).get()->hmi_level(),
static_cast<mobile_api::FunctionID::eType>(function_id()),
params,
@@ -401,7 +403,7 @@ bool CommandRequestImpl::CheckAllowedParameters() {
// Check, if RPC is allowed by policy
if (mobile_apis::Result::SUCCESS != check_result) {
- smart_objects::SmartObject* response =
+ smart_objects::SmartObjectSPtr response =
MessageHelper::CreateBlockedByPoliciesResponse(
static_cast<mobile_api::FunctionID::eType>(function_id()),
check_result, correlation_id(), (*it_app_list)->app_id());
diff --git a/src/components/application_manager/src/commands/hmi/activate_app_request.cc b/src/components/application_manager/src/commands/hmi/activate_app_request.cc
index 29d998640e..4b07a5dcfa 100644
--- a/src/components/application_manager/src/commands/hmi/activate_app_request.cc
+++ b/src/components/application_manager/src/commands/hmi/activate_app_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -69,11 +69,11 @@ namespace application_manager {
void ActivateAppRequest::on_event(const event_engine::Event& event) {
- LOG4CXX_TRACE_ENTER(logger_);
- const smart_objects::SmartObject* response = &(event.smart_object());
+ LOG4CXX_AUTO_TRACE(logger_);
+ const smart_objects::SmartObject& response = event.smart_object();
const hmi_apis::Common_Result::eType code =
static_cast<hmi_apis::Common_Result::eType>(
- (*response)[strings::params][hmi_response::code].asInt());
+ response[strings::params][hmi_response::code].asInt());
if (hmi_apis::Common_Result::SUCCESS != code) {
LOG4CXX_ERROR(logger_, "Error ActivateApp result code " << code);
return;
@@ -82,8 +82,15 @@ namespace application_manager {
// Mobile id is converted to HMI id for HMI requests
const uint32_t hmi_app_id = ApplicationManagerImpl::instance()->
application_id(correlation_id);
- mobile_apis::HMILevel::eType requested_hmi_level = static_cast<mobile_apis::HMILevel::eType>(
- (*message_)[strings::msg_params][strings::activate_app_hmi_level].asInt());
+
+ mobile_apis::HMILevel::eType requested_hmi_level = mobile_apis::HMILevel::HMI_FULL;
+ if ((*message_)[strings::msg_params].keyExists(
+ strings::activate_app_hmi_level)) {
+ requested_hmi_level = static_cast<mobile_apis::HMILevel::eType>(
+ (*message_)[strings::msg_params][strings::activate_app_hmi_level].asInt());
+ LOG4CXX_INFO(logger_, "requested_hmi_level = " << requested_hmi_level);
+ }
+
if (0 == hmi_app_id) {
LOG4CXX_ERROR(logger_, "Error hmi_app_id = "<< hmi_app_id);
return;
@@ -95,8 +102,10 @@ namespace application_manager {
LOG4CXX_ERROR(logger_, "Application can't be activated.");
return;
}
+
if (mobile_apis::HMILevel::HMI_FULL == requested_hmi_level) {
if (ApplicationManagerImpl::instance()->ActivateApplication(application)) {
+ LOG4CXX_DEBUG(logger_, "Put Application in FULL succes");
MessageHelper::SendHMIStatusNotification(*(application.get()));
}
}
diff --git a/src/components/application_manager/src/commands/hmi/activate_app_response.cc b/src/components/application_manager/src/commands/hmi/activate_app_response.cc
index aba5886097..2f63198d82 100644
--- a/src/components/application_manager/src/commands/hmi/activate_app_response.cc
+++ b/src/components/application_manager/src/commands/hmi/activate_app_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/src/commands/hmi/add_statistics_info_notification.cc b/src/components/application_manager/src/commands/hmi/add_statistics_info_notification.cc
index c11621045e..73c9a49def 100644
--- a/src/components/application_manager/src/commands/hmi/add_statistics_info_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/add_statistics_info_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2014, Ford Motor Company
* All rights reserved.
*
@@ -47,7 +47,7 @@ AddStatisticsInfoNotification::~AddStatisticsInfoNotification() {
}
void AddStatisticsInfoNotification::Run() {
- LOG4CXX_INFO(logger_, "AddStatisticsInfoNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
int type = (*message_)[strings::msg_params][hmi_notification::statistic_type]
.asInt();
diff --git a/src/components/application_manager/src/commands/hmi/allow_all_apps_request.cc b/src/components/application_manager/src/commands/hmi/allow_all_apps_request.cc
index 6ac42c7a00..548238f00f 100644
--- a/src/components/application_manager/src/commands/hmi/allow_all_apps_request.cc
+++ b/src/components/application_manager/src/commands/hmi/allow_all_apps_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ AllowAllAppsRequest::~AllowAllAppsRequest() {
}
void AllowAllAppsRequest::Run() {
- LOG4CXX_INFO(logger_, "AllowAllAppsRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/allow_all_apps_response.cc b/src/components/application_manager/src/commands/hmi/allow_all_apps_response.cc
index 69c52a3269..eca9363254 100644
--- a/src/components/application_manager/src/commands/hmi/allow_all_apps_response.cc
+++ b/src/components/application_manager/src/commands/hmi/allow_all_apps_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ AllowAllAppsResponse::~AllowAllAppsResponse() {
}
void AllowAllAppsResponse::Run() {
- LOG4CXX_INFO(logger_, "AllowAllAppsResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->set_all_apps_allowed(
(*message_)[strings::msg_params][hmi_response::allowed].asBool());
diff --git a/src/components/application_manager/src/commands/hmi/allow_app_request.cc b/src/components/application_manager/src/commands/hmi/allow_app_request.cc
index 302a8c6766..2f0d4bcc98 100644
--- a/src/components/application_manager/src/commands/hmi/allow_app_request.cc
+++ b/src/components/application_manager/src/commands/hmi/allow_app_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ AllowAppRequest::~AllowAppRequest() {
}
void AllowAppRequest::Run() {
- LOG4CXX_INFO(logger_, "AllowAppRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/allow_app_response.cc b/src/components/application_manager/src/commands/hmi/allow_app_response.cc
index 035e41438d..7a7f3dd560 100644
--- a/src/components/application_manager/src/commands/hmi/allow_app_response.cc
+++ b/src/components/application_manager/src/commands/hmi/allow_app_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ AllowAppResponse::~AllowAppResponse() {
}
void AllowAppResponse::Run() {
- LOG4CXX_INFO(logger_, "AllowAppResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
uint32_t connection_key =
(*message_)[strings::params][strings::connection_key].asInt();
diff --git a/src/components/application_manager/src/commands/hmi/basic_communication_system_request.cc b/src/components/application_manager/src/commands/hmi/basic_communication_system_request.cc
index 0d2bcca4f4..d0251a7276 100644
--- a/src/components/application_manager/src/commands/hmi/basic_communication_system_request.cc
+++ b/src/components/application_manager/src/commands/hmi/basic_communication_system_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ BasicCommunicationSystemRequest::~BasicCommunicationSystemRequest() {
}
void BasicCommunicationSystemRequest::Run() {
- LOG4CXX_INFO(logger_, "BasicCommunicationSystemRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/basic_communication_system_response.cc b/src/components/application_manager/src/commands/hmi/basic_communication_system_response.cc
index dd9f657adc..6106266d19 100644
--- a/src/components/application_manager/src/commands/hmi/basic_communication_system_response.cc
+++ b/src/components/application_manager/src/commands/hmi/basic_communication_system_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ BasicCommunicationSystemResponse::~BasicCommunicationSystemResponse() {
}
void BasicCommunicationSystemResponse::Run() {
- LOG4CXX_INFO(logger_, "BasicCommunicationSystemResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::BasicCommunication_SystemRequest);
event.set_smart_object(*message_);
event.raise();
diff --git a/src/components/application_manager/src/commands/hmi/button_get_capabilities_request.cc b/src/components/application_manager/src/commands/hmi/button_get_capabilities_request.cc
index e00b3fdc5a..87cf1aa783 100644
--- a/src/components/application_manager/src/commands/hmi/button_get_capabilities_request.cc
+++ b/src/components/application_manager/src/commands/hmi/button_get_capabilities_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ ButtonGetCapabilitiesRequest::~ButtonGetCapabilitiesRequest() {
}
void ButtonGetCapabilitiesRequest::Run() {
- LOG4CXX_INFO(logger_, "ButtonGetCapabilitiesRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/button_get_capabilities_response.cc b/src/components/application_manager/src/commands/hmi/button_get_capabilities_response.cc
index 0b67234743..69cfbe49c5 100644
--- a/src/components/application_manager/src/commands/hmi/button_get_capabilities_response.cc
+++ b/src/components/application_manager/src/commands/hmi/button_get_capabilities_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ ButtonGetCapabilitiesResponse::~ButtonGetCapabilitiesResponse() {
}
void ButtonGetCapabilitiesResponse::Run() {
- LOG4CXX_INFO(logger_, "ButtonGetCapabilitiesResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
HMICapabilities& hmi_capabilities =
ApplicationManagerImpl::instance()->hmi_capabilities();
diff --git a/src/components/application_manager/src/commands/hmi/close_popup_request.cc b/src/components/application_manager/src/commands/hmi/close_popup_request.cc
index 3cc5818688..352a281348 100644
--- a/src/components/application_manager/src/commands/hmi/close_popup_request.cc
+++ b/src/components/application_manager/src/commands/hmi/close_popup_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ ClosePopupRequest::~ClosePopupRequest() {
}
void ClosePopupRequest::Run() {
- LOG4CXX_INFO(logger_, "ClosePopupRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/close_popup_response.cc b/src/components/application_manager/src/commands/hmi/close_popup_response.cc
index fa98be5e02..078d24ef2d 100644
--- a/src/components/application_manager/src/commands/hmi/close_popup_response.cc
+++ b/src/components/application_manager/src/commands/hmi/close_popup_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -43,7 +43,7 @@ ClosePopupResponse::~ClosePopupResponse() {
}
void ClosePopupResponse::Run() {
- LOG4CXX_INFO(logger_, "ClosePopupResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
// TODO(VS): Process response from HMI
}
diff --git a/src/components/application_manager/src/commands/hmi/get_system_info_request.cc b/src/components/application_manager/src/commands/hmi/get_system_info_request.cc
index 53a084d23e..9024331462 100644
--- a/src/components/application_manager/src/commands/hmi/get_system_info_request.cc
+++ b/src/components/application_manager/src/commands/hmi/get_system_info_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2014, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ GetSystemInfoRequest::~GetSystemInfoRequest() {
}
void GetSystemInfoRequest::Run() {
- LOG4CXX_INFO(logger_, "GetSystemInfoRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
uint32_t correlation_id = RequestToHMI::correlation_id();
uint32_t app_id = RequestToHMI::application_id();
ApplicationManagerImpl::instance()->set_application_id(correlation_id, app_id);
diff --git a/src/components/application_manager/src/commands/hmi/get_system_info_response.cc b/src/components/application_manager/src/commands/hmi/get_system_info_response.cc
index 090b04c3e3..7cfd1b5797 100644
--- a/src/components/application_manager/src/commands/hmi/get_system_info_response.cc
+++ b/src/components/application_manager/src/commands/hmi/get_system_info_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ GetSystemInfoResponse::~GetSystemInfoResponse() {
}
void GetSystemInfoResponse::Run() {
- LOG4CXX_INFO(logger_, "GetSystemInfoResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
const hmi_apis::Common_Result::eType code =
static_cast<hmi_apis::Common_Result::eType>(
(*message_)[strings::params][hmi_response::code].asInt());
diff --git a/src/components/application_manager/src/commands/hmi/get_urls.cc b/src/components/application_manager/src/commands/hmi/get_urls.cc
index b3d0f60610..70ca40d1ed 100644
--- a/src/components/application_manager/src/commands/hmi/get_urls.cc
+++ b/src/components/application_manager/src/commands/hmi/get_urls.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,27 +46,48 @@ GetUrls::~GetUrls() {
}
void GetUrls::Run() {
- LOG4CXX_INFO(logger_, "GetUrls::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
smart_objects::SmartObject& object = *message_;
object[strings::params][strings::message_type] = MessageType::kResponse;
if (policy::PolicyHandler::instance()->PolicyEnabled()) {
- policy::EndpointUrls endpoints =
- policy::PolicyHandler::instance()->GetUpdateUrls(
- object[strings::msg_params][hmi_request::service].asInt());
- object[strings::msg_params].erase(hmi_request::service);
- object[strings::msg_params][hmi_response::urls] =
- smart_objects::SmartObject(smart_objects::SmartType_Array);
- for (size_t i = 0; i < endpoints.size(); ++i) {
- std::string url = endpoints[i].url.empty() ? "" : endpoints[i].url[0];
- object[strings::msg_params][hmi_response::urls][i][strings::url] = url;
- if (policy::kDefaultId != endpoints[i].app_id) {
- object[strings::msg_params][hmi_response::urls][i][hmi_response::policy_app_id] =
- endpoints[i].app_id;
+ policy::EndpointUrls endpoints;
+ policy::PolicyHandler::instance()->GetUpdateUrls(
+ object[strings::msg_params][hmi_request::service].asInt(), endpoints);
+ if (!endpoints.empty()) {
+ object[strings::msg_params].erase(hmi_request::service);
+
+ object[strings::msg_params][hmi_response::urls] =
+ smart_objects::SmartObject(smart_objects::SmartType_Array);
+
+ smart_objects::SmartObject& urls =
+ object[strings::msg_params][hmi_response::urls];
+
+ size_t index = 0;
+
+ for (size_t i = 0; i < endpoints.size(); ++i) {
+ for (size_t k = 0; k < endpoints[i].url.size(); ++k, ++index) {
+ const std::string url = endpoints[i].url[k];
+
+ urls[index] = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ smart_objects::SmartObject& service_info = urls[index];
+
+ service_info[strings::url] = url;
+ if (policy::kDefaultId != endpoints[i].app_id) {
+ service_info[hmi_response::policy_app_id] =
+ endpoints[i].app_id;
+ }
+ }
}
+ object[strings::params][hmi_response::code] =
+ hmi_apis::Common_Result::SUCCESS;
+ } else {
+ object[strings::params][hmi_response::code] =
+ hmi_apis::Common_Result::DATA_NOT_AVAILABLE;
}
- object[strings::params][hmi_response::code] = hmi_apis::Common_Result::SUCCESS;
} else {
- object[strings::params][hmi_response::code] = hmi_apis::Common_Result::DATA_NOT_AVAILABLE;
+ object[strings::params][hmi_response::code] =
+ hmi_apis::Common_Result::DATA_NOT_AVAILABLE;
}
ApplicationManagerImpl::instance()->ManageHMICommand(message_);
}
diff --git a/src/components/application_manager/src/commands/hmi/get_urls_response.cc b/src/components/application_manager/src/commands/hmi/get_urls_response.cc
index f8086affe3..b446f088bf 100644
--- a/src/components/application_manager/src/commands/hmi/get_urls_response.cc
+++ b/src/components/application_manager/src/commands/hmi/get_urls_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ GetUrlsResponse::~GetUrlsResponse() {
}
void GetUrlsResponse::Run() {
- LOG4CXX_INFO(logger_, "GetUrlsResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
(*message_)[strings::params][strings::protocol_type] = hmi_protocol_type_;
(*message_)[strings::params][strings::protocol_version] = protocol_version_;
diff --git a/src/components/application_manager/src/commands/hmi/mixing_audio_supported_request.cc b/src/components/application_manager/src/commands/hmi/mixing_audio_supported_request.cc
index 9ab4bf5dbb..059843355c 100644
--- a/src/components/application_manager/src/commands/hmi/mixing_audio_supported_request.cc
+++ b/src/components/application_manager/src/commands/hmi/mixing_audio_supported_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ MixingAudioSupportedRequest::~MixingAudioSupportedRequest() {
}
void MixingAudioSupportedRequest::Run() {
- LOG4CXX_INFO(logger_, "MixingAudioSupportedRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/mixing_audio_supported_response.cc b/src/components/application_manager/src/commands/hmi/mixing_audio_supported_response.cc
index 4a4fc276de..2da8bdc453 100644
--- a/src/components/application_manager/src/commands/hmi/mixing_audio_supported_response.cc
+++ b/src/components/application_manager/src/commands/hmi/mixing_audio_supported_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ MixingAudioSupportedResponse::~MixingAudioSupportedResponse() {
}
void MixingAudioSupportedResponse::Run() {
- LOG4CXX_INFO(logger_, "MixingAudioSupportedResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
HMICapabilities& hmi_capabilities =
ApplicationManagerImpl::instance()->hmi_capabilities();
diff --git a/src/components/application_manager/src/commands/hmi/navi_alert_maneuver_request.cc b/src/components/application_manager/src/commands/hmi/navi_alert_maneuver_request.cc
index 7128231b11..77b3701904 100644
--- a/src/components/application_manager/src/commands/hmi/navi_alert_maneuver_request.cc
+++ b/src/components/application_manager/src/commands/hmi/navi_alert_maneuver_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ NaviAlertManeuverRequest::~NaviAlertManeuverRequest() {
}
void NaviAlertManeuverRequest::Run() {
- LOG4CXX_INFO(logger_, "NaviAlertManeuverRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/navi_alert_maneuver_response.cc b/src/components/application_manager/src/commands/hmi/navi_alert_maneuver_response.cc
index 823c96211e..49d659777b 100644
--- a/src/components/application_manager/src/commands/hmi/navi_alert_maneuver_response.cc
+++ b/src/components/application_manager/src/commands/hmi/navi_alert_maneuver_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ NaviAlertManeuverResponse::~NaviAlertManeuverResponse() {
}
void NaviAlertManeuverResponse::Run() {
- LOG4CXX_INFO(logger_, "NaviAlertManeuverResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::Navigation_AlertManeuver);
event.set_smart_object(*message_);
diff --git a/src/components/application_manager/src/commands/hmi/navi_audio_start_stream_request.cc b/src/components/application_manager/src/commands/hmi/navi_audio_start_stream_request.cc
index 3c7a7d3ab5..3908238ada 100644
--- a/src/components/application_manager/src/commands/hmi/navi_audio_start_stream_request.cc
+++ b/src/components/application_manager/src/commands/hmi/navi_audio_start_stream_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ AudioStartStreamRequest::~AudioStartStreamRequest() {
}
void AudioStartStreamRequest::Run() {
- LOG4CXX_INFO(logger_, "AudioStartStreamRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/navi_audio_start_stream_response.cc b/src/components/application_manager/src/commands/hmi/navi_audio_start_stream_response.cc
index e4cc8f4cc6..0509028a94 100644
--- a/src/components/application_manager/src/commands/hmi/navi_audio_start_stream_response.cc
+++ b/src/components/application_manager/src/commands/hmi/navi_audio_start_stream_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ AudioStartStreamResponse::~AudioStartStreamResponse() {
}
void AudioStartStreamResponse::Run() {
- LOG4CXX_INFO(logger_, "AudioStartStreamResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr app =
ApplicationManagerImpl::instance()->active_application();
diff --git a/src/components/application_manager/src/commands/hmi/navi_audio_stop_stream_request.cc b/src/components/application_manager/src/commands/hmi/navi_audio_stop_stream_request.cc
index 4052769d53..ea00d5bc3b 100644
--- a/src/components/application_manager/src/commands/hmi/navi_audio_stop_stream_request.cc
+++ b/src/components/application_manager/src/commands/hmi/navi_audio_stop_stream_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ AudioStopStreamRequest::~AudioStopStreamRequest() {
}
void AudioStopStreamRequest::Run() {
- LOG4CXX_INFO(logger_, "AudioStopStreamRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/navi_audio_stop_stream_response.cc b/src/components/application_manager/src/commands/hmi/navi_audio_stop_stream_response.cc
index 81a6c62e8d..29e6708e19 100644
--- a/src/components/application_manager/src/commands/hmi/navi_audio_stop_stream_response.cc
+++ b/src/components/application_manager/src/commands/hmi/navi_audio_stop_stream_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -43,7 +43,7 @@ AudioStopStreamResponse::~AudioStopStreamResponse() {
}
void AudioStopStreamResponse::Run() {
- LOG4CXX_INFO(logger_, "AudioStopStreamResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
}
diff --git a/src/components/application_manager/src/commands/hmi/navi_is_ready_request.cc b/src/components/application_manager/src/commands/hmi/navi_is_ready_request.cc
index b7a1799427..4c00908781 100644
--- a/src/components/application_manager/src/commands/hmi/navi_is_ready_request.cc
+++ b/src/components/application_manager/src/commands/hmi/navi_is_ready_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ NaviIsReadyRequest::~NaviIsReadyRequest() {
}
void NaviIsReadyRequest::Run() {
- LOG4CXX_INFO(logger_, "NaviIsReadyRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/navi_is_ready_response.cc b/src/components/application_manager/src/commands/hmi/navi_is_ready_response.cc
index 8aef42b40d..a3387aec33 100644
--- a/src/components/application_manager/src/commands/hmi/navi_is_ready_response.cc
+++ b/src/components/application_manager/src/commands/hmi/navi_is_ready_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ NaviIsReadyResponse::~NaviIsReadyResponse() {
}
void NaviIsReadyResponse::Run() {
- LOG4CXX_INFO(logger_, "NaviIsReadyResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
smart_objects::SmartObject& object = *message_;
bool is_available = false;
diff --git a/src/components/application_manager/src/commands/hmi/navi_send_location_request.cc b/src/components/application_manager/src/commands/hmi/navi_send_location_request.cc
index f396a24323..94d569c4ef 100644
--- a/src/components/application_manager/src/commands/hmi/navi_send_location_request.cc
+++ b/src/components/application_manager/src/commands/hmi/navi_send_location_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ NaviSendLocationRequest::~NaviSendLocationRequest() {
}
void NaviSendLocationRequest::Run() {
- LOG4CXX_INFO(logger_, "NaviSendLocationRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/navi_send_location_response.cc b/src/components/application_manager/src/commands/hmi/navi_send_location_response.cc
index 944ced170c..7ec5a5907d 100644
--- a/src/components/application_manager/src/commands/hmi/navi_send_location_response.cc
+++ b/src/components/application_manager/src/commands/hmi/navi_send_location_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ NaviSendLocationResponse::~NaviSendLocationResponse() {
}
void NaviSendLocationResponse::Run() {
- LOG4CXX_INFO(logger_, "NaviSendLocationResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::Navigation_SendLocation);
event.set_smart_object(*message_);
diff --git a/src/components/application_manager/src/commands/hmi/navi_show_constant_tbt_request.cc b/src/components/application_manager/src/commands/hmi/navi_show_constant_tbt_request.cc
index 9103e1f6c4..b477dc8dab 100644
--- a/src/components/application_manager/src/commands/hmi/navi_show_constant_tbt_request.cc
+++ b/src/components/application_manager/src/commands/hmi/navi_show_constant_tbt_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ NaviShowConstantTBTRequest::~NaviShowConstantTBTRequest() {
}
void NaviShowConstantTBTRequest::Run() {
- LOG4CXX_INFO(logger_, "NaviShowConstantTBTRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/navi_show_constant_tbt_response.cc b/src/components/application_manager/src/commands/hmi/navi_show_constant_tbt_response.cc
index 03c70dd81b..58878a3c0c 100644
--- a/src/components/application_manager/src/commands/hmi/navi_show_constant_tbt_response.cc
+++ b/src/components/application_manager/src/commands/hmi/navi_show_constant_tbt_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ NaviShowConstantTBTResponse::~NaviShowConstantTBTResponse() {
}
void NaviShowConstantTBTResponse::Run() {
- LOG4CXX_INFO(logger_, "NaviShowConstantTBTResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::Navigation_ShowConstantTBT);
event.set_smart_object(*message_);
diff --git a/src/components/application_manager/src/commands/hmi/navi_start_stream_request.cc b/src/components/application_manager/src/commands/hmi/navi_start_stream_request.cc
index cb9dbd61e3..7ee3733e51 100644
--- a/src/components/application_manager/src/commands/hmi/navi_start_stream_request.cc
+++ b/src/components/application_manager/src/commands/hmi/navi_start_stream_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ NaviStartStreamRequest::~NaviStartStreamRequest() {
}
void NaviStartStreamRequest::Run() {
- LOG4CXX_INFO(logger_, "NaviStartStreamRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/navi_start_stream_response.cc b/src/components/application_manager/src/commands/hmi/navi_start_stream_response.cc
index 79d51dcb66..c2de690d63 100644
--- a/src/components/application_manager/src/commands/hmi/navi_start_stream_response.cc
+++ b/src/components/application_manager/src/commands/hmi/navi_start_stream_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ NaviStartStreamResponse::~NaviStartStreamResponse() {
}
void NaviStartStreamResponse::Run() {
- LOG4CXX_INFO(logger_, "NaviStartStreamResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr app =
ApplicationManagerImpl::instance()->active_application();
diff --git a/src/components/application_manager/src/commands/hmi/navi_stop_stream_request.cc b/src/components/application_manager/src/commands/hmi/navi_stop_stream_request.cc
index 2f1e14a122..3d74c27535 100644
--- a/src/components/application_manager/src/commands/hmi/navi_stop_stream_request.cc
+++ b/src/components/application_manager/src/commands/hmi/navi_stop_stream_request.cc
@@ -13,7 +13,7 @@ NaviStopStreamRequest::~NaviStopStreamRequest() {
}
void NaviStopStreamRequest::Run() {
- LOG4CXX_INFO(logger_, "NaviStopStreamRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/navi_stop_stream_response.cc b/src/components/application_manager/src/commands/hmi/navi_stop_stream_response.cc
index c368940d5b..0603df6a65 100644
--- a/src/components/application_manager/src/commands/hmi/navi_stop_stream_response.cc
+++ b/src/components/application_manager/src/commands/hmi/navi_stop_stream_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -43,7 +43,7 @@ NaviStopStreamResponse::~NaviStopStreamResponse() {
}
void NaviStopStreamResponse::Run() {
- LOG4CXX_INFO(logger_, "NaviStopStreamResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
}
diff --git a/src/components/application_manager/src/commands/hmi/navi_update_turn_list_request.cc b/src/components/application_manager/src/commands/hmi/navi_update_turn_list_request.cc
index d0df9ec867..37037245fa 100644
--- a/src/components/application_manager/src/commands/hmi/navi_update_turn_list_request.cc
+++ b/src/components/application_manager/src/commands/hmi/navi_update_turn_list_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ NaviUpdateTurnListRequest::~NaviUpdateTurnListRequest() {
}
void NaviUpdateTurnListRequest::Run() {
- LOG4CXX_INFO(logger_, "NaviUpdateTurnListRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/navi_update_turn_list_response.cc b/src/components/application_manager/src/commands/hmi/navi_update_turn_list_response.cc
index d93b67bb52..d196db93e9 100644
--- a/src/components/application_manager/src/commands/hmi/navi_update_turn_list_response.cc
+++ b/src/components/application_manager/src/commands/hmi/navi_update_turn_list_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ NaviUpdateTurnListResponse::~NaviUpdateTurnListResponse() {
}
void NaviUpdateTurnListResponse::Run() {
- LOG4CXX_INFO(logger_, "NaviUpdateTurnListResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::Navigation_UpdateTurnList);
event.set_smart_object(*message_);
diff --git a/src/components/application_manager/src/commands/hmi/notification_from_hmi.cc b/src/components/application_manager/src/commands/hmi/notification_from_hmi.cc
index 2b7ec13c43..9c483459e1 100644
--- a/src/components/application_manager/src/commands/hmi/notification_from_hmi.cc
+++ b/src/components/application_manager/src/commands/hmi/notification_from_hmi.cc
@@ -42,7 +42,7 @@ NotificationFromHMI::NotificationFromHMI(const MessageSharedPtr& message)
: CommandImpl(message) {
// Replace HMI app id with Mobile connection id
- ApplicationManagerImpl::instance()->ReplaceHMIByMobileAppId(*(message.get()));
+ ApplicationManagerImpl::instance()->ReplaceHMIByMobileAppId(*message);
}
NotificationFromHMI::~NotificationFromHMI() {
@@ -61,15 +61,17 @@ void NotificationFromHMI::Run() {
void NotificationFromHMI::SendNotificationToMobile(
const MessageSharedPtr& message) {
+
+ (*message)[strings::params][strings::message_type] =
+ static_cast<int32_t>(application_manager::MessageType::kNotification);
ApplicationManagerImpl::instance()->ManageMobileCommand(message);
}
void NotificationFromHMI::CreateHMIRequest(
const hmi_apis::FunctionID::eType& function_id,
- const NsSmartObj::SmartObject& msg_params) const {
+ const smart_objects::SmartObject& msg_params) const {
- NsSmartDeviceLink::NsSmartObjects::SmartObject* result =
- new NsSmartDeviceLink::NsSmartObjects::SmartObject;
+ smart_objects::SmartObjectSPtr result = new smart_objects::SmartObject;
if (!result) {
LOG4CXX_ERROR(logger_, "Memory allocation failed.");
return;
diff --git a/src/components/application_manager/src/commands/hmi/on_allow_sdl_functionality_notification.cc b/src/components/application_manager/src/commands/hmi/on_allow_sdl_functionality_notification.cc
index 020428d6c0..506413ce1e 100644
--- a/src/components/application_manager/src/commands/hmi/on_allow_sdl_functionality_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_allow_sdl_functionality_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnAllowSDLFunctionalityNotification::~OnAllowSDLFunctionalityNotification() {
}
void OnAllowSDLFunctionalityNotification::Run() {
- LOG4CXX_INFO(logger_, "OnAllowSDLFunctionalityNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
uint32_t device_id = 0;
if ((*message_)[strings::msg_params].keyExists("device")) {
device_id = (*message_)[strings::msg_params]["device"]["id"].asUInt();
diff --git a/src/components/application_manager/src/commands/hmi/on_app_activated_notification.cc b/src/components/application_manager/src/commands/hmi/on_app_activated_notification.cc
index 8152244a9c..7e60eaadaf 100644
--- a/src/components/application_manager/src/commands/hmi/on_app_activated_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_app_activated_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -48,7 +48,7 @@ OnAppActivatedNotification::~OnAppActivatedNotification() {
}
void OnAppActivatedNotification::Run() {
- LOG4CXX_INFO(logger_, "OnAppActivatedNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
uint32_t app_id = ((*message_)[strings::msg_params][strings::app_id]).asUInt();
MessageHelper::SendActivateAppToHMI(app_id);
}
diff --git a/src/components/application_manager/src/commands/hmi/on_app_deactivated_notification.cc b/src/components/application_manager/src/commands/hmi/on_app_deactivated_notification.cc
index 19dd91ab2a..1d55044f7a 100644
--- a/src/components/application_manager/src/commands/hmi/on_app_deactivated_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_app_deactivated_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -35,6 +35,7 @@
#include "application_manager/application_impl.h"
#include "application_manager/message_helper.h"
#include "config_profile/profile.h"
+#include "utils/helpers.h"
namespace application_manager {
@@ -49,7 +50,7 @@ OnAppDeactivatedNotification::~OnAppDeactivatedNotification() {
}
void OnAppDeactivatedNotification::Run() {
- LOG4CXX_INFO(logger_, "OnAppDeactivatedNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
uint32_t app_id = (*message_)[strings::msg_params][strings::app_id].asUInt();
ApplicationSharedPtr app =
ApplicationManagerImpl::instance()->application(app_id);
@@ -58,11 +59,13 @@ void OnAppDeactivatedNotification::Run() {
return;
}
+ using namespace mobile_apis::HMILevel;
+ using namespace helpers;
if (!(((hmi_apis::Common_DeactivateReason::AUDIO ==
(*message_)[strings::msg_params][hmi_request::reason].asInt()) ||
(hmi_apis::Common_DeactivateReason::PHONECALL ==
(*message_)[strings::msg_params][hmi_request::reason].asInt())) &&
- (app->hmi_level() == mobile_api::HMILevel::eType::HMI_LIMITED))) {
+ (app->hmi_level() == HMI_LIMITED))) {
app = ApplicationManagerImpl::instance()->active_application();
if (!app.valid()) {
LOG4CXX_ERROR_EXT(logger_, "OnAppDeactivatedNotification no active app!");
@@ -74,10 +77,11 @@ void OnAppDeactivatedNotification::Run() {
}
}
- if (mobile_api::HMILevel::eType::HMI_NONE == app->hmi_level()) {
+ if (HMI_NONE == app->hmi_level()) {
return;
}
+ eType new_hmi_level = app->hmi_level();
switch ((*message_)[strings::msg_params][hmi_request::reason].asInt()) {
case hmi_apis::Common_DeactivateReason::AUDIO: {
if (app->is_media_application()) {
@@ -89,29 +93,14 @@ void OnAppDeactivatedNotification::Run() {
app->set_audio_streaming_state(mobile_api::AudioStreamingState::NOT_AUDIBLE);
}
}
- // switch HMI level for all applications in FULL or LIMITED
- ApplicationManagerImpl::ApplicationListAccessor accessor;
- ApplicationManagerImpl::TAppList applications =
- accessor.applications();
- ApplicationManagerImpl::TAppListIt it =
- applications.begin();
- for (; applications.end() != it; ++it) {
- ApplicationSharedPtr app = *it;
- if (app.valid()) {
- if (mobile_apis::HMILevel::eType::HMI_FULL == app->hmi_level() ||
- mobile_apis::HMILevel::eType::HMI_LIMITED == app->hmi_level()) {
- app->set_hmi_level(mobile_api::HMILevel::HMI_BACKGROUND);
- MessageHelper::SendHMIStatusNotification(*app);
- }
- }
+ // HMI must send this notification for each active app
+ if (app.valid()) {
+ if (Compare<eType, EQ, ONE>(app->hmi_level(), HMI_FULL, HMI_LIMITED)) {
+ new_hmi_level = HMI_BACKGROUND;
+ }
}
break;
}
- case hmi_apis::Common_DeactivateReason::PHONECALL: {
- app->set_audio_streaming_state(mobile_api::AudioStreamingState::NOT_AUDIBLE);
- app->set_hmi_level(mobile_api::HMILevel::HMI_BACKGROUND);
- break;
- }
case hmi_apis::Common_DeactivateReason::NAVIGATIONMAP:
case hmi_apis::Common_DeactivateReason::PHONEMENU:
case hmi_apis::Common_DeactivateReason::SYNCSETTINGS:
@@ -119,9 +108,9 @@ void OnAppDeactivatedNotification::Run() {
if ((!app->IsAudioApplication()) ||
ApplicationManagerImpl::instance()->
DoesAudioAppWithSameHMITypeExistInFullOrLimited(app)) {
- app->set_hmi_level(mobile_api::HMILevel::HMI_BACKGROUND);
+ new_hmi_level = HMI_BACKGROUND;
} else {
- app->set_hmi_level(mobile_api::HMILevel::HMI_LIMITED);
+ new_hmi_level = HMI_LIMITED;
}
break;
}
@@ -131,7 +120,11 @@ void OnAppDeactivatedNotification::Run() {
}
}
- MessageHelper::SendHMIStatusNotification(*app);
+ if (new_hmi_level != app->hmi_level()) {
+ ApplicationManagerImpl::instance()->ChangeAppsHMILevel(app->app_id(),
+ new_hmi_level);
+ MessageHelper::SendHMIStatusNotification(*app);
+ }
}
} // namespace commands
diff --git a/src/components/application_manager/src/commands/hmi/on_app_permission_changed_notification.cc b/src/components/application_manager/src/commands/hmi/on_app_permission_changed_notification.cc
index 26d580e83a..c786b486f4 100644
--- a/src/components/application_manager/src/commands/hmi/on_app_permission_changed_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_app_permission_changed_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ OnAppPermissionChangedNotification::~OnAppPermissionChangedNotification() {
}
void OnAppPermissionChangedNotification::Run() {
- LOG4CXX_INFO(logger_, "OnAppPermissionChangedNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendNotification();
}
diff --git a/src/components/application_manager/src/commands/hmi/on_app_permission_consent_notification.cc b/src/components/application_manager/src/commands/hmi/on_app_permission_consent_notification.cc
index 951a2ebdf1..69a18200fa 100644
--- a/src/components/application_manager/src/commands/hmi/on_app_permission_consent_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_app_permission_consent_notification.cc
@@ -48,7 +48,7 @@ OnAppPermissionConsentNotification::~OnAppPermissionConsentNotification() {
}
void OnAppPermissionConsentNotification::Run() {
- LOG4CXX_INFO(logger_, "OnAppPermissionConsentNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
smart_objects::SmartObject& msg_params = (*message_)[strings::msg_params];
uint32_t connection_key = 0;
diff --git a/src/components/application_manager/src/commands/hmi/on_app_registered_notification.cc b/src/components/application_manager/src/commands/hmi/on_app_registered_notification.cc
index 26bc396db6..0b7f1cd860 100644
--- a/src/components/application_manager/src/commands/hmi/on_app_registered_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_app_registered_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,8 +45,10 @@ OnAppRegisteredNotification::~OnAppRegisteredNotification() {
}
void OnAppRegisteredNotification::Run() {
- LOG4CXX_INFO(logger_, "OnAppRegisteredNotification::Run");
-
+ LOG4CXX_AUTO_TRACE(logger_);
+ event_engine::Event event(hmi_apis::FunctionID::BasicCommunication_OnAppRegistered);
+ event.set_smart_object(*message_);
+ event.raise();
SendNotification();
}
diff --git a/src/components/application_manager/src/commands/hmi/on_app_unregistered_notification.cc b/src/components/application_manager/src/commands/hmi/on_app_unregistered_notification.cc
index 2bedcb0631..571c6f381c 100644
--- a/src/components/application_manager/src/commands/hmi/on_app_unregistered_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_app_unregistered_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnAppUnregisteredNotification::~OnAppUnregisteredNotification() {
}
void OnAppUnregisteredNotification::Run() {
- LOG4CXX_INFO(logger_, "OnAppUnregisteredNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
//sending event for delete VRCommand on PerformInteraction
event_engine::Event event(hmi_apis::FunctionID::BasicCommunication_OnAppUnregistered);
diff --git a/src/components/application_manager/src/commands/hmi/on_button_event_notification.cc b/src/components/application_manager/src/commands/hmi/on_button_event_notification.cc
index 23aceaa7d6..2beffc2bdd 100644
--- a/src/components/application_manager/src/commands/hmi/on_button_event_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_button_event_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnButtonEventNotification::OnButtonEventNotification(
}
void OnButtonEventNotification::Run() {
- LOG4CXX_INFO(logger_, "OnButtonEventNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
(*message_)[strings::params][strings::function_id] =
static_cast<int32_t>(mobile_apis::FunctionID::OnButtonEventID);
diff --git a/src/components/application_manager/src/commands/hmi/on_button_press_notification.cc b/src/components/application_manager/src/commands/hmi/on_button_press_notification.cc
index 83bcbd7efa..261aa68ee7 100644
--- a/src/components/application_manager/src/commands/hmi/on_button_press_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_button_press_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -47,7 +47,7 @@ OnButtonPressNotification::OnButtonPressNotification(
}
void OnButtonPressNotification::Run() {
- LOG4CXX_INFO(logger_, "OnButtonPressNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::Buttons_OnButtonPress);
event.set_smart_object(*message_);
event.raise();
diff --git a/src/components/application_manager/src/commands/hmi/on_device_chosen_notification.cc b/src/components/application_manager/src/commands/hmi/on_device_chosen_notification.cc
index 537c246f42..5d73c7b80e 100644
--- a/src/components/application_manager/src/commands/hmi/on_device_chosen_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_device_chosen_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ OnDeviceChosenNotification::~OnDeviceChosenNotification() {
}
void OnDeviceChosenNotification::Run() {
- LOG4CXX_INFO(logger_, "OnDeviceChosenNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
if ((*message_)[strings::msg_params].keyExists(strings::device_info)) {
ApplicationManagerImpl::instance()->ConnectToDevice(
diff --git a/src/components/application_manager/src/commands/hmi/on_device_state_changed_notification.cc b/src/components/application_manager/src/commands/hmi/on_device_state_changed_notification.cc
index 8af2571b55..fbb2bcfe93 100644
--- a/src/components/application_manager/src/commands/hmi/on_device_state_changed_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_device_state_changed_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -30,10 +30,47 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
+#include <algorithm>
#include "application_manager/commands/hmi/on_device_state_changed_notification.h"
#include "application_manager/policies/policy_handler.h"
#include "application_manager/message_helper.h"
#include "interfaces/HMI_API.h"
+#include "encryption/hashing.h"
+
+namespace {
+ // TODO(AOleynik) : replace this !!!
+ void check_zero(const char& a, const char& b, std::string& bt_mac) {
+ if ('0' != a && '0' == b) {
+ bt_mac.push_back(a);
+ bt_mac.push_back(b);
+ } else if ('0' == a) {
+ bt_mac.push_back(b);
+ } else {
+ bt_mac.push_back(a);
+ bt_mac.push_back(b);
+ }
+ }
+
+ std::string convert_to_bt_mac(std::string& deviceInternalId) {
+ std::transform(deviceInternalId.begin(), deviceInternalId.end(),deviceInternalId.begin(), ::tolower);
+
+ std::string bt_mac;
+ check_zero(deviceInternalId[10], deviceInternalId[11], bt_mac);
+ bt_mac.push_back(':');
+ check_zero(deviceInternalId[8], deviceInternalId[9], bt_mac);
+ bt_mac.push_back(':');
+ check_zero(deviceInternalId[6], deviceInternalId[7], bt_mac);
+ bt_mac.push_back(':');
+ check_zero(deviceInternalId[4], deviceInternalId[5], bt_mac);
+ bt_mac.push_back(':');
+ check_zero(deviceInternalId[2], deviceInternalId[3], bt_mac);
+ bt_mac.push_back(':');
+ check_zero(deviceInternalId[0], deviceInternalId[1], bt_mac);
+
+ return bt_mac;
+ }
+
+}
namespace application_manager {
@@ -48,10 +85,12 @@ OnDeviceStateChangedNotification::~OnDeviceStateChangedNotification() {
}
void OnDeviceStateChangedNotification::Run() {
- LOG4CXX_INFO(logger_, "OnDeviceStateChangedNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
if ((*message_)[strings::msg_params]["deviceState"]
== hmi_apis::Common_DeviceState::UNPAIRED) {
+ // It is expected, that "deviceInternalId" is the device MAC address in
+ // form XXXXXXXXXX
std::string device_id = (*message_)[strings::msg_params]["deviceInternalId"]
.asString();
if (device_id.empty()) {
@@ -59,6 +98,13 @@ void OnDeviceStateChangedNotification::Run() {
device_id = MessageHelper::GetDeviceMacAddressForHandle(
(*message_)[strings::msg_params]["deviceId"]["id"].asInt());
}
+ } else {
+ // Policy uses hashed MAC address as device_id
+ LOG4CXX_DEBUG(logger_,"Device_id from HMI: " << device_id);
+ std::string bt_mac = convert_to_bt_mac(device_id);
+ LOG4CXX_DEBUG(logger_,"Device_id as BT MAC: " << bt_mac);
+ device_id = encryption::MakeHash(bt_mac);
+ LOG4CXX_DEBUG(logger_,"Device_id hashed as BT MAC : " << device_id);
}
policy::PolicyHandler::instance()->RemoveDevice(device_id);
}
@@ -67,4 +113,3 @@ void OnDeviceStateChangedNotification::Run() {
} // namespace commands
} // namespace application_manager
-
diff --git a/src/components/application_manager/src/commands/hmi/on_driver_distraction_notification.cc b/src/components/application_manager/src/commands/hmi/on_driver_distraction_notification.cc
index d5a8edc48d..fc9dcc6f8e 100644
--- a/src/components/application_manager/src/commands/hmi/on_driver_distraction_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_driver_distraction_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -52,7 +52,7 @@ OnDriverDistractionNotification::~OnDriverDistractionNotification() {
}
void OnDriverDistractionNotification::Run() {
- LOG4CXX_INFO(logger_, "OnDriverDistractionNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
const hmi_apis::Common_DriverDistractionState::eType state =
static_cast<hmi_apis::Common_DriverDistractionState::eType>(
@@ -60,10 +60,10 @@ void OnDriverDistractionNotification::Run() {
.asInt());
ApplicationManagerImpl::instance()->set_driver_distraction(state);
- MessageSharedPtr on_driver_distraction =
+ smart_objects::SmartObjectSPtr on_driver_distraction =
new smart_objects::SmartObject();
- if (false == on_driver_distraction.valid()) {
+ if (!on_driver_distraction) {
LOG4CXX_ERROR_EXT(logger_, "NULL pointer");
return;
}
@@ -75,12 +75,12 @@ void OnDriverDistractionNotification::Run() {
state;
ApplicationManagerImpl::ApplicationListAccessor accessor;
- const std::set<ApplicationSharedPtr> applications = accessor.applications();
+ const ApplicationManagerImpl::ApplictionSet applications = accessor.applications();
- std::set<ApplicationSharedPtr>::const_iterator it = applications.begin();
+ ApplicationManagerImpl::ApplictionSetConstIt it = applications.begin();
for (; applications.end() != it; ++it) {
- ApplicationSharedPtr app = *it;
- if (app.valid()) {
+ const ApplicationSharedPtr app = *it;
+ if (app) {
if (mobile_apis::HMILevel::eType::HMI_NONE != app->hmi_level()) {
(*on_driver_distraction)[strings::params]
[strings::connection_key] = app->app_id();
diff --git a/src/components/application_manager/src/commands/hmi/on_exit_all_applications_notification.cc b/src/components/application_manager/src/commands/hmi/on_exit_all_applications_notification.cc
index b284c81f21..7c09800d21 100644
--- a/src/components/application_manager/src/commands/hmi/on_exit_all_applications_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_exit_all_applications_notification.cc
@@ -52,11 +52,12 @@ OnExitAllApplicationsNotification::~OnExitAllApplicationsNotification() {
}
void OnExitAllApplicationsNotification::Run() {
- LOG4CXX_INFO(logger_, "OnExitAllApplicationsNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
const hmi_apis::Common_ApplicationsCloseReason::eType reason =
static_cast<hmi_apis::Common_ApplicationsCloseReason::eType>(
(*message_)[strings::msg_params][hmi_request::reason].asInt());
+ LOG4CXX_DEBUG(logger_, "Reason " << reason);
mobile_api::AppInterfaceUnregisteredReason::eType mob_reason =
mobile_api::AppInterfaceUnregisteredReason::INVALID_ENUM;
@@ -77,7 +78,6 @@ void OnExitAllApplicationsNotification::Run() {
break;
}
case hmi_apis::Common_ApplicationsCloseReason::SUSPEND: {
- app_manager->HeadUnitSuspend();
SendOnSDLPersistenceComplete();
return;
}
@@ -93,15 +93,13 @@ void OnExitAllApplicationsNotification::Run() {
mobile_api::AppInterfaceUnregisteredReason::FACTORY_DEFAULTS == mob_reason) {
app_manager->HeadUnitReset(mob_reason);
}
-
kill(getpid(), SIGINT);
}
void OnExitAllApplicationsNotification::SendOnSDLPersistenceComplete() {
- LOG4CXX_INFO(logger_, ""
- "OnExitAllApplicationsNotification::SendOnSDLPersistenceComplete");
+ LOG4CXX_AUTO_TRACE(logger_);
- smart_objects::SmartObject* message =
+ smart_objects::SmartObjectSPtr message =
new smart_objects::SmartObject(smart_objects::SmartType_Map);
(*message)[strings::params][strings::function_id] =
hmi_apis::FunctionID::BasicCommunication_OnSDLPersistenceComplete;
diff --git a/src/components/application_manager/src/commands/hmi/on_exit_application_notification.cc b/src/components/application_manager/src/commands/hmi/on_exit_application_notification.cc
index f4aed61392..9cb40bd645 100644
--- a/src/components/application_manager/src/commands/hmi/on_exit_application_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_exit_application_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -49,7 +49,7 @@ OnExitApplicationNotification::~OnExitApplicationNotification() {
}
void OnExitApplicationNotification::Run() {
- LOG4CXX_INFO(logger_, "OnExitApplicationNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl* app_mgr = ApplicationManagerImpl::instance();
ApplicationSharedPtr app_impl = app_mgr->application(
@@ -70,7 +70,10 @@ void OnExitApplicationNotification::Run() {
break;
}
}
- app_impl->set_hmi_level(mobile_apis::HMILevel::HMI_NONE);
+
+ ApplicationManagerImpl::instance()->ChangeAppsHMILevel(app_impl->app_id(),
+ mobile_apis::HMILevel::HMI_NONE);
+
app_impl->set_audio_streaming_state(mobile_apis::AudioStreamingState::NOT_AUDIBLE);
app_impl->set_system_context(mobile_api::SystemContext::SYSCTXT_MAIN);
MessageHelper::SendHMIStatusNotification(*app_impl);
diff --git a/src/components/application_manager/src/commands/hmi/on_file_removed_notification.cc b/src/components/application_manager/src/commands/hmi/on_file_removed_notification.cc
index f1a590ee04..83c3e61a0c 100644
--- a/src/components/application_manager/src/commands/hmi/on_file_removed_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_file_removed_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ OnFileRemovedNotification::~OnFileRemovedNotification() {
}
void OnFileRemovedNotification::Run() {
- LOG4CXX_INFO(logger_, "OnFileRemovedNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendNotification();
}
diff --git a/src/components/application_manager/src/commands/hmi/on_find_applications.cc b/src/components/application_manager/src/commands/hmi/on_find_applications.cc
index bc32ab1cf0..fc1b72c73a 100644
--- a/src/components/application_manager/src/commands/hmi/on_find_applications.cc
+++ b/src/components/application_manager/src/commands/hmi/on_find_applications.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ OnFindApplications::~OnFindApplications() {
}
void OnFindApplications::Run() {
- LOG4CXX_INFO(logger_, "OnFindApplications::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
// TODO(PV): add UpdateAppsOnDevice to ApplicationManager
}
diff --git a/src/components/application_manager/src/commands/hmi/on_ignition_cycle_over_notification.cc b/src/components/application_manager/src/commands/hmi/on_ignition_cycle_over_notification.cc
index 523013734f..32babf05cc 100644
--- a/src/components/application_manager/src/commands/hmi/on_ignition_cycle_over_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_ignition_cycle_over_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnIgnitionCycleOverNotification::~OnIgnitionCycleOverNotification() {
}
void OnIgnitionCycleOverNotification::Run() {
- LOG4CXX_INFO(logger_, "OnIgnitionCycleOverNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
policy::PolicyHandler::instance()->OnIgnitionCycleOver();
}
diff --git a/src/components/application_manager/src/commands/hmi/on_navi_tbt_client_state_notification.cc b/src/components/application_manager/src/commands/hmi/on_navi_tbt_client_state_notification.cc
index a68ae90796..87db5d4a38 100644
--- a/src/components/application_manager/src/commands/hmi/on_navi_tbt_client_state_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_navi_tbt_client_state_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnNaviTBTClientStateNotification::~OnNaviTBTClientStateNotification() {
}
void OnNaviTBTClientStateNotification::Run() {
- LOG4CXX_INFO(logger_, "OnNaviTBTClientStateNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
// prepare SmartObject for mobile factory
(*message_)[strings::params][strings::function_id] =
diff --git a/src/components/application_manager/src/commands/hmi/on_phone_call_notification.cc b/src/components/application_manager/src/commands/hmi/on_phone_call_notification.cc
index 9bd9099c75..9cee8801e7 100644
--- a/src/components/application_manager/src/commands/hmi/on_phone_call_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_phone_call_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -50,7 +50,7 @@ OnPhoneCallNotification::~OnPhoneCallNotification() {
}
void OnPhoneCallNotification::Run() {
- LOG4CXX_INFO(logger_, "OnPhoneCallNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
bool is_active =
(*message_)[strings::msg_params][hmi_notification::is_active].asBool();
diff --git a/src/components/application_manager/src/commands/hmi/on_play_tone_notification.cc b/src/components/application_manager/src/commands/hmi/on_play_tone_notification.cc
index e05b38d456..9820bb02ad 100644
--- a/src/components/application_manager/src/commands/hmi/on_play_tone_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_play_tone_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ OnPlayToneNotification::~OnPlayToneNotification() {
}
void OnPlayToneNotification::Run() {
- LOG4CXX_INFO(logger_, "OnPlayToneNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendNotification();
}
diff --git a/src/components/application_manager/src/commands/hmi/on_policy_update.cc b/src/components/application_manager/src/commands/hmi/on_policy_update.cc
index b3f5803d44..56c544888a 100644
--- a/src/components/application_manager/src/commands/hmi/on_policy_update.cc
+++ b/src/components/application_manager/src/commands/hmi/on_policy_update.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2014, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ OnPolicyUpdate::~OnPolicyUpdate() {
}
void OnPolicyUpdate::Run() {
- LOG4CXX_INFO(logger_, "OnPolicyUpdate::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
policy::PolicyHandler::instance()->OnPTExchangeNeeded();
}
diff --git a/src/components/application_manager/src/commands/hmi/on_put_file_notification.cc b/src/components/application_manager/src/commands/hmi/on_put_file_notification.cc
index 2fecbec9c7..cf0297df01 100644
--- a/src/components/application_manager/src/commands/hmi/on_put_file_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_put_file_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnPutFileNotification::~OnPutFileNotification() {
}
void OnPutFileNotification::Run() {
- LOG4CXX_INFO(logger_, "OnPutFileNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendNotification();
}
diff --git a/src/components/application_manager/src/commands/hmi/on_ready_notification.cc b/src/components/application_manager/src/commands/hmi/on_ready_notification.cc
index 783aa4af40..f1ac8b6d3c 100644
--- a/src/components/application_manager/src/commands/hmi/on_ready_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_ready_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ OnReadyNotification::~OnReadyNotification() {
}
void OnReadyNotification::Run() {
- LOG4CXX_INFO(logger_, "OnReadyNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->OnHMIStartedCooperation();
event_engine::Event event(hmi_apis::FunctionID::BasicCommunication_OnReady);
diff --git a/src/components/application_manager/src/commands/hmi/on_received_policy_update.cc b/src/components/application_manager/src/commands/hmi/on_received_policy_update.cc
index 1e517f35de..a5ea29c6d2 100644
--- a/src/components/application_manager/src/commands/hmi/on_received_policy_update.cc
+++ b/src/components/application_manager/src/commands/hmi/on_received_policy_update.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2014, Ford Motor Company
* All rights reserved.
*
@@ -47,7 +47,7 @@ OnReceivedPolicyUpdate::~OnReceivedPolicyUpdate() {
}
void OnReceivedPolicyUpdate::Run() {
- LOG4CXX_INFO(logger_, "OnReceivedPolicyUpdate::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
const std::string& file_path =
(*message_)[strings::msg_params][hmi_notification::policyfile].asString();
policy::BinaryMessage file_content;
diff --git a/src/components/application_manager/src/commands/hmi/on_record_start_notification.cc b/src/components/application_manager/src/commands/hmi/on_record_start_notification.cc
index e0dae8f045..163b525628 100644
--- a/src/components/application_manager/src/commands/hmi/on_record_start_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_record_start_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ OnRecordStartdNotification::~OnRecordStartdNotification() {
}
void OnRecordStartdNotification::Run() {
- LOG4CXX_INFO(logger_, "OnRecordStartdNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendNotification();
}
diff --git a/src/components/application_manager/src/commands/hmi/on_resume_audio_source_notification.cc b/src/components/application_manager/src/commands/hmi/on_resume_audio_source_notification.cc
index 70868b826f..8e00c3447c 100644
--- a/src/components/application_manager/src/commands/hmi/on_resume_audio_source_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_resume_audio_source_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2014, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnResumeAudioSourceNotification::~OnResumeAudioSourceNotification() {
}
void OnResumeAudioSourceNotification::Run() {
- LOG4CXX_INFO(logger_, "OnResumeAudioSourceNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendNotification();
}
diff --git a/src/components/application_manager/src/commands/hmi/on_sdl_close_notification.cc b/src/components/application_manager/src/commands/hmi/on_sdl_close_notification.cc
index 70240b4bf6..c393219134 100644
--- a/src/components/application_manager/src/commands/hmi/on_sdl_close_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_sdl_close_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/src/commands/hmi/on_sdl_consent_needed_notification.cc b/src/components/application_manager/src/commands/hmi/on_sdl_consent_needed_notification.cc
index 1fda4986e4..20010111fd 100644
--- a/src/components/application_manager/src/commands/hmi/on_sdl_consent_needed_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_sdl_consent_needed_notification.cc
@@ -46,7 +46,7 @@ OnSDLConsentNeededNotification::~OnSDLConsentNeededNotification() {
}
void OnSDLConsentNeededNotification::Run() {
- LOG4CXX_INFO(logger_, "OnSDLConsentNeededNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendNotification();
}
diff --git a/src/components/application_manager/src/commands/hmi/on_sdl_persistence_complete_notification.cc b/src/components/application_manager/src/commands/hmi/on_sdl_persistence_complete_notification.cc
index d71413ef85..afe0ffeabc 100644
--- a/src/components/application_manager/src/commands/hmi/on_sdl_persistence_complete_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_sdl_persistence_complete_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/src/commands/hmi/on_start_device_discovery.cc b/src/components/application_manager/src/commands/hmi/on_start_device_discovery.cc
index fc5ffed42c..6f867adbcd 100644
--- a/src/components/application_manager/src/commands/hmi/on_start_device_discovery.cc
+++ b/src/components/application_manager/src/commands/hmi/on_start_device_discovery.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ OnStartDeviceDiscovery::~OnStartDeviceDiscovery() {
}
void OnStartDeviceDiscovery::Run() {
- LOG4CXX_INFO(logger_, "OnStartDeviceDiscovery::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->StartDevicesDiscovery();
}
diff --git a/src/components/application_manager/src/commands/hmi/on_status_update_notification.cc b/src/components/application_manager/src/commands/hmi/on_status_update_notification.cc
index 6e4e65987e..7db0053e2d 100644
--- a/src/components/application_manager/src/commands/hmi/on_status_update_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_status_update_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/src/commands/hmi/on_system_context_notification.cc b/src/components/application_manager/src/commands/hmi/on_system_context_notification.cc
index 5a5c12b907..8dbd1e13e4 100644
--- a/src/components/application_manager/src/commands/hmi/on_system_context_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_system_context_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -47,7 +47,7 @@ OnSystemContextNotification::~OnSystemContextNotification() {
}
void OnSystemContextNotification::Run() {
- LOG4CXX_INFO(logger_, "OnSystemContextNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
mobile_api::SystemContext::eType system_context =
static_cast<mobile_api::SystemContext::eType>(
diff --git a/src/components/application_manager/src/commands/hmi/on_system_error_notification.cc b/src/components/application_manager/src/commands/hmi/on_system_error_notification.cc
index bac3d37359..09a96cc797 100644
--- a/src/components/application_manager/src/commands/hmi/on_system_error_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_system_error_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2014, Ford Motor Company
* All rights reserved.
*
@@ -47,7 +47,7 @@ OnSystemErrorNotification::~OnSystemErrorNotification() {
}
void OnSystemErrorNotification::Run() {
- LOG4CXX_INFO(logger_, "OnSystemErrorNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
int code = (*message_)[strings::msg_params][hmi_notification::error]
.asInt();
diff --git a/src/components/application_manager/src/commands/hmi/on_system_info_changed_notification.cc b/src/components/application_manager/src/commands/hmi/on_system_info_changed_notification.cc
index ec8460d581..fb5a9abc43 100644
--- a/src/components/application_manager/src/commands/hmi/on_system_info_changed_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_system_info_changed_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -47,7 +47,7 @@ OnSystemInfoChangedNotification::~OnSystemInfoChangedNotification() {
}
void OnSystemInfoChangedNotification::Run() {
- LOG4CXX_INFO(logger_, "OnSystemInfoChangedNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
uint32_t lang_code =
(*message_)[strings::msg_params][strings::language].asUInt();
const std::string language =
diff --git a/src/components/application_manager/src/commands/hmi/on_system_request_notification.cc b/src/components/application_manager/src/commands/hmi/on_system_request_notification.cc
index e3d0ea511d..a77bd24766 100644
--- a/src/components/application_manager/src/commands/hmi/on_system_request_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_system_request_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -52,7 +52,7 @@ OnSystemRequestNotification::~OnSystemRequestNotification() {
}
void OnSystemRequestNotification::Run() {
- LOG4CXX_INFO(logger_, "OnSystemRequestNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
smart_objects::SmartObject& params = (*message_)[strings::params];
smart_objects::SmartObject& msg_params = (*message_)[strings::msg_params];
@@ -60,7 +60,8 @@ void OnSystemRequestNotification::Run() {
params[strings::function_id] =
static_cast<int32_t>(mobile_apis::FunctionID::eType::OnSystemRequestID);
- std::string app_id = msg_params[strings::app_id].asString();
+ const std::string app_id = msg_params[strings::app_id].asString();
+ LOG4CXX_DEBUG(logger_, "Received OnSystemRequest for " << app_id );
if (strings::default_app_id == app_id) {
PolicyHandler* policy_handler = PolicyHandler::instance();
@@ -81,7 +82,8 @@ void OnSystemRequestNotification::Run() {
ApplicationSharedPtr app =
ApplicationManagerImpl::instance()->application_by_policy_id(app_id);
if (!app.valid()) {
- LOG4CXX_WARN(logger_, "Application with such id is not yet registered.");
+ LOG4CXX_WARN(logger_, "Application with id " << app_id
+ << " is not registered.");
return;
}
params[strings::connection_key] = app->app_id();
diff --git a/src/components/application_manager/src/commands/hmi/on_tts_language_change_notification.cc b/src/components/application_manager/src/commands/hmi/on_tts_language_change_notification.cc
index 60c0dca10a..5dba6400b8 100644
--- a/src/components/application_manager/src/commands/hmi/on_tts_language_change_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_tts_language_change_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -49,7 +49,7 @@ OnTTSLanguageChangeNotification::~OnTTSLanguageChangeNotification() {
}
void OnTTSLanguageChangeNotification::Run() {
- LOG4CXX_INFO(logger_, "OnTTSLanguageChangeNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
HMICapabilities& hmi_capabilities =
ApplicationManagerImpl::instance()->hmi_capabilities();
@@ -71,10 +71,9 @@ void OnTTSLanguageChangeNotification::Run() {
static_cast<int32_t>(mobile_apis::FunctionID::OnLanguageChangeID);
ApplicationManagerImpl::ApplicationListAccessor accessor;
- const std::set<ApplicationSharedPtr> applications = accessor.applications();
- std::set<ApplicationSharedPtr>::iterator it = applications.begin();
- for (;applications.end() != it; ++it) {
+ ApplicationManagerImpl::ApplictionSetIt it = accessor.begin();
+ for (;accessor.end() != it; ++it) {
ApplicationSharedPtr app = (*it);
(*message_)[strings::params][strings::connection_key] = app->app_id();
SendNotificationToMobile(message_);
diff --git a/src/components/application_manager/src/commands/hmi/on_tts_reset_timeout_notification.cc b/src/components/application_manager/src/commands/hmi/on_tts_reset_timeout_notification.cc
index 047a5d985d..96089384c4 100644
--- a/src/components/application_manager/src/commands/hmi/on_tts_reset_timeout_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_tts_reset_timeout_notification.cc
@@ -16,7 +16,7 @@ OnTTSResetTimeoutNotification::~OnTTSResetTimeoutNotification() {
}
void OnTTSResetTimeoutNotification::Run() {
- LOG4CXX_INFO(logger_, "OnTTSResetTimeoutNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::TTS_OnResetTimeout);
event.set_smart_object(*message_);
diff --git a/src/components/application_manager/src/commands/hmi/on_tts_started_notification.cc b/src/components/application_manager/src/commands/hmi/on_tts_started_notification.cc
index 519fc290d9..8213474c09 100644
--- a/src/components/application_manager/src/commands/hmi/on_tts_started_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_tts_started_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnTTSStartedNotification::~OnTTSStartedNotification() {
}
void OnTTSStartedNotification::Run() {
- LOG4CXX_INFO(logger_, "OnTTSStartedNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->Mute(kTTSSessionChanging);
}
diff --git a/src/components/application_manager/src/commands/hmi/on_tts_stopped_notification.cc b/src/components/application_manager/src/commands/hmi/on_tts_stopped_notification.cc
index b3e3683f32..c812c84af5 100644
--- a/src/components/application_manager/src/commands/hmi/on_tts_stopped_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_tts_stopped_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -47,7 +47,7 @@ OnTTSStoppedNotification::~OnTTSStoppedNotification() {
}
void OnTTSStoppedNotification::Run() {
- LOG4CXX_INFO(logger_, "OnTTSStoppedNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::TTS_Stopped);
event.set_smart_object(*message_);
diff --git a/src/components/application_manager/src/commands/hmi/on_ui_command_notification.cc b/src/components/application_manager/src/commands/hmi/on_ui_command_notification.cc
index 4ed5839e5f..d8fe1ebdea 100644
--- a/src/components/application_manager/src/commands/hmi/on_ui_command_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_ui_command_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnUICommandNotification::~OnUICommandNotification() {
}
void OnUICommandNotification::Run() {
- LOG4CXX_INFO(logger_, "OnUICommandNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
(*message_)[strings::params][strings::function_id] =
static_cast<int32_t>(mobile_apis::FunctionID::eType::OnCommandID);
diff --git a/src/components/application_manager/src/commands/hmi/on_ui_keyboard_input_notification.cc b/src/components/application_manager/src/commands/hmi/on_ui_keyboard_input_notification.cc
index 45ff7425b7..9dcfe01e60 100644
--- a/src/components/application_manager/src/commands/hmi/on_ui_keyboard_input_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_ui_keyboard_input_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -47,7 +47,7 @@ OnUIKeyBoardInputNotification::~OnUIKeyBoardInputNotification() {
}
void OnUIKeyBoardInputNotification::Run() {
- LOG4CXX_INFO(logger_, "OnUIKeyBoardInputNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
//prepare SmartObject for mobile factory
(*message_)[strings::params][strings::function_id] =
diff --git a/src/components/application_manager/src/commands/hmi/on_ui_language_change_notification.cc b/src/components/application_manager/src/commands/hmi/on_ui_language_change_notification.cc
index 5756f50eb5..931a27abc4 100644
--- a/src/components/application_manager/src/commands/hmi/on_ui_language_change_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_ui_language_change_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -49,7 +49,7 @@ OnUILanguageChangeNotification::~OnUILanguageChangeNotification() {
}
void OnUILanguageChangeNotification::Run() {
- LOG4CXX_INFO(logger_, "OnUILanguageChangeNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
HMICapabilities& hmi_capabilities =
ApplicationManagerImpl::instance()->hmi_capabilities();
@@ -68,10 +68,9 @@ void OnUILanguageChangeNotification::Run() {
static_cast<int32_t>(mobile_apis::FunctionID::OnLanguageChangeID);
ApplicationManagerImpl::ApplicationListAccessor accessor;
- const std::set<ApplicationSharedPtr> applications = accessor.applications();
- std::set<ApplicationSharedPtr>::iterator it = applications.begin();
- for (;applications.end() != it; ++it) {
+ ApplicationManagerImpl::ApplictionSetIt it = accessor.begin();
+ for (;accessor.end() != it; ++it) {
ApplicationSharedPtr app = *it;
(*message_)[strings::params][strings::connection_key] = app->app_id();
SendNotificationToMobile(message_);
diff --git a/src/components/application_manager/src/commands/hmi/on_ui_reset_timeout_notification.cc b/src/components/application_manager/src/commands/hmi/on_ui_reset_timeout_notification.cc
index 357bfc4cb3..96f65839c1 100644
--- a/src/components/application_manager/src/commands/hmi/on_ui_reset_timeout_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_ui_reset_timeout_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -48,7 +48,7 @@ OnUIResetTimeoutNotification::~OnUIResetTimeoutNotification() {
}
void OnUIResetTimeoutNotification::Run() {
- LOG4CXX_INFO(logger_, "OnUIResetTimeoutNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::UI_OnResetTimeout);
event.set_smart_object(*message_);
diff --git a/src/components/application_manager/src/commands/hmi/on_ui_touch_event_notification.cc b/src/components/application_manager/src/commands/hmi/on_ui_touch_event_notification.cc
index 7868e81193..00e0e4d2c6 100644
--- a/src/components/application_manager/src/commands/hmi/on_ui_touch_event_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_ui_touch_event_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -47,7 +47,7 @@ OnUITouchEventNotification::~OnUITouchEventNotification() {
}
void OnUITouchEventNotification::Run() {
- LOG4CXX_INFO(logger_, "OnUITouchEventNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
//prepare SmartObject for mobile factory
(*message_)[strings::params][strings::function_id] =
diff --git a/src/components/application_manager/src/commands/hmi/on_update_device_list.cc b/src/components/application_manager/src/commands/hmi/on_update_device_list.cc
index a5b84748ef..8716fb4165 100644
--- a/src/components/application_manager/src/commands/hmi/on_update_device_list.cc
+++ b/src/components/application_manager/src/commands/hmi/on_update_device_list.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ OnUpdateDeviceList::~OnUpdateDeviceList() {
}
void OnUpdateDeviceList::Run() {
- LOG4CXX_INFO(logger_, "OnUpdateDeviceList::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
}
} // namespace commands
diff --git a/src/components/application_manager/src/commands/hmi/on_vi_acc_pedal_position_notification.cc b/src/components/application_manager/src/commands/hmi/on_vi_acc_pedal_position_notification.cc
index be0c4ebb60..f1e515e2f2 100644
--- a/src/components/application_manager/src/commands/hmi/on_vi_acc_pedal_position_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_vi_acc_pedal_position_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnVIAccPedalPositionNotification::~OnVIAccPedalPositionNotification() {
}
void OnVIAccPedalPositionNotification::Run() {
- LOG4CXX_INFO(logger_, "OnVIAccPedalPositionNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
// prepare SmartObject for mobile factory
(*message_)[strings::params][strings::function_id] =
diff --git a/src/components/application_manager/src/commands/hmi/on_vi_belt_status_notification.cc b/src/components/application_manager/src/commands/hmi/on_vi_belt_status_notification.cc
index 688a5c1fb1..0dd5361f74 100644
--- a/src/components/application_manager/src/commands/hmi/on_vi_belt_status_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_vi_belt_status_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnVIBeltStatusNotification::~OnVIBeltStatusNotification() {
}
void OnVIBeltStatusNotification::Run() {
- LOG4CXX_INFO(logger_, "OnVIBeltStatusNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
// prepare SmartObject for mobile factory
(*message_)[strings::params][strings::function_id] =
diff --git a/src/components/application_manager/src/commands/hmi/on_vi_body_information_notification.cc b/src/components/application_manager/src/commands/hmi/on_vi_body_information_notification.cc
index e80a2edcf3..27c902c880 100644
--- a/src/components/application_manager/src/commands/hmi/on_vi_body_information_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_vi_body_information_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnVIBodyInformationNotification::~OnVIBodyInformationNotification() {
}
void OnVIBodyInformationNotification::Run() {
- LOG4CXX_INFO(logger_, "OnVIBodyInformationNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
// prepare SmartObject for mobile factory
(*message_)[strings::params][strings::function_id] =
diff --git a/src/components/application_manager/src/commands/hmi/on_vi_device_status_notification.cc b/src/components/application_manager/src/commands/hmi/on_vi_device_status_notification.cc
index 4669398da1..07b96f1011 100644
--- a/src/components/application_manager/src/commands/hmi/on_vi_device_status_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_vi_device_status_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnVIDeviceStatusNotification::~OnVIDeviceStatusNotification() {
}
void OnVIDeviceStatusNotification::Run() {
- LOG4CXX_INFO(logger_, "OnVIDeviceStatusNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
// prepare SmartObject for mobile factory
(*message_)[strings::params][strings::function_id] =
diff --git a/src/components/application_manager/src/commands/hmi/on_vi_driver_braking_notification.cc b/src/components/application_manager/src/commands/hmi/on_vi_driver_braking_notification.cc
index 8b61d0af21..57a8f9c6ef 100644
--- a/src/components/application_manager/src/commands/hmi/on_vi_driver_braking_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_vi_driver_braking_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnVIDriverBrakingNotification::~OnVIDriverBrakingNotification() {
}
void OnVIDriverBrakingNotification::Run() {
- LOG4CXX_INFO(logger_, "OnVIDriverBrakingNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
// prepare SmartObject for mobile factory
(*message_)[strings::params][strings::function_id] =
diff --git a/src/components/application_manager/src/commands/hmi/on_vi_engine_torque_notification.cc b/src/components/application_manager/src/commands/hmi/on_vi_engine_torque_notification.cc
index 1b0989b1ec..7509884497 100644
--- a/src/components/application_manager/src/commands/hmi/on_vi_engine_torque_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_vi_engine_torque_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnVIEngineTorqueNotification::~OnVIEngineTorqueNotification() {
}
void OnVIEngineTorqueNotification::Run() {
- LOG4CXX_INFO(logger_, "OnVIEngineTorqueNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
// prepare SmartObject for mobile factory
(*message_)[strings::params][strings::function_id] =
diff --git a/src/components/application_manager/src/commands/hmi/on_vi_external_temperature_notification.cc b/src/components/application_manager/src/commands/hmi/on_vi_external_temperature_notification.cc
index f7a9213598..64dd411bdd 100644
--- a/src/components/application_manager/src/commands/hmi/on_vi_external_temperature_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_vi_external_temperature_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnVIExternalTemperatureNotification::~OnVIExternalTemperatureNotification() {
}
void OnVIExternalTemperatureNotification::Run() {
- LOG4CXX_INFO(logger_, "OnVIExternalTemperatureNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
// prepare SmartObject for mobile factory
(*message_)[strings::params][strings::function_id] =
diff --git a/src/components/application_manager/src/commands/hmi/on_vi_fuel_level_notification.cc b/src/components/application_manager/src/commands/hmi/on_vi_fuel_level_notification.cc
index 97d797b630..59ecab0abc 100644
--- a/src/components/application_manager/src/commands/hmi/on_vi_fuel_level_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_vi_fuel_level_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnVIFuelLevelNotification::~OnVIFuelLevelNotification() {
}
void OnVIFuelLevelNotification::Run() {
- LOG4CXX_INFO(logger_, "OnVIFuelLevelNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
// prepare SmartObject for mobile factory
(*message_)[strings::params][strings::function_id] =
diff --git a/src/components/application_manager/src/commands/hmi/on_vi_fuel_level_state_notification.cc b/src/components/application_manager/src/commands/hmi/on_vi_fuel_level_state_notification.cc
index 0024f17a80..faa8a0522a 100644
--- a/src/components/application_manager/src/commands/hmi/on_vi_fuel_level_state_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_vi_fuel_level_state_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnVIFuelLevelStateNotification::~OnVIFuelLevelStateNotification() {
}
void OnVIFuelLevelStateNotification::Run() {
- LOG4CXX_INFO(logger_, "OnVIFuelLevelStateNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
// prepare SmartObject for mobile factory
(*message_)[strings::params][strings::function_id] =
diff --git a/src/components/application_manager/src/commands/hmi/on_vi_gps_data_notification.cc b/src/components/application_manager/src/commands/hmi/on_vi_gps_data_notification.cc
index 5b7ec72977..df582418cb 100644
--- a/src/components/application_manager/src/commands/hmi/on_vi_gps_data_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_vi_gps_data_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnVIGpsDataNotification::~OnVIGpsDataNotification() {
}
void OnVIGpsDataNotification::Run() {
- LOG4CXX_INFO(logger_, "OnVIGpsDataNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
// prepare SmartObject for mobile factory
(*message_)[strings::params][strings::function_id] =
diff --git a/src/components/application_manager/src/commands/hmi/on_vi_head_lamp_status_notification.cc b/src/components/application_manager/src/commands/hmi/on_vi_head_lamp_status_notification.cc
index 355c00f0c9..01a0a725ef 100644
--- a/src/components/application_manager/src/commands/hmi/on_vi_head_lamp_status_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_vi_head_lamp_status_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnVIHeadLampStatusNotification::~OnVIHeadLampStatusNotification() {
}
void OnVIHeadLampStatusNotification::Run() {
- LOG4CXX_INFO(logger_, "OnVIHeadLampStatusNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
// prepare SmartObject for mobile factory
(*message_)[strings::params][strings::function_id] =
diff --git a/src/components/application_manager/src/commands/hmi/on_vi_instant_fuel_consumption_notification.cc b/src/components/application_manager/src/commands/hmi/on_vi_instant_fuel_consumption_notification.cc
index 17240bce6c..b13d50fc1c 100644
--- a/src/components/application_manager/src/commands/hmi/on_vi_instant_fuel_consumption_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_vi_instant_fuel_consumption_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnVIInstantFuelConsumptionNotification::~OnVIInstantFuelConsumptionNotification(
}
void OnVIInstantFuelConsumptionNotification::Run() {
- LOG4CXX_INFO(logger_, "OnVIInstantFuelConsumptionNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
// prepare SmartObject for mobile factory
(*message_)[strings::params][strings::function_id] =
diff --git a/src/components/application_manager/src/commands/hmi/on_vi_my_key_notification.cc b/src/components/application_manager/src/commands/hmi/on_vi_my_key_notification.cc
index 1caaecb442..71870522ce 100644
--- a/src/components/application_manager/src/commands/hmi/on_vi_my_key_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_vi_my_key_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnVIMyKeyNotification::~OnVIMyKeyNotification() {
}
void OnVIMyKeyNotification::Run() {
- LOG4CXX_INFO(logger_, "OnVIMyKeyNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
// prepare SmartObject for mobile factory
(*message_)[strings::params][strings::function_id] =
diff --git a/src/components/application_manager/src/commands/hmi/on_vi_odometer_notification.cc b/src/components/application_manager/src/commands/hmi/on_vi_odometer_notification.cc
index 02127a1389..5db3ef3bb3 100644
--- a/src/components/application_manager/src/commands/hmi/on_vi_odometer_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_vi_odometer_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnVIOdometerNotification::~OnVIOdometerNotification() {
}
void OnVIOdometerNotification::Run() {
- LOG4CXX_INFO(logger_, "OnVIOdometerNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
// prepare SmartObject for mobile factory
(*message_)[strings::params][strings::function_id] =
diff --git a/src/components/application_manager/src/commands/hmi/on_vi_prndl_notification.cc b/src/components/application_manager/src/commands/hmi/on_vi_prndl_notification.cc
index 4692191cb3..1739f4809b 100644
--- a/src/components/application_manager/src/commands/hmi/on_vi_prndl_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_vi_prndl_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnVIPrndlNotification::~OnVIPrndlNotification() {
}
void OnVIPrndlNotification::Run() {
- LOG4CXX_INFO(logger_, "OnVIPrndlNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
// prepare SmartObject for mobile factory
(*message_)[strings::params][strings::function_id] =
diff --git a/src/components/application_manager/src/commands/hmi/on_vi_rpm_notification.cc b/src/components/application_manager/src/commands/hmi/on_vi_rpm_notification.cc
index b16421903a..336847ced0 100644
--- a/src/components/application_manager/src/commands/hmi/on_vi_rpm_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_vi_rpm_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnVIRpmNotification::~OnVIRpmNotification() {
}
void OnVIRpmNotification::Run() {
- LOG4CXX_INFO(logger_, "OnVIRpmNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
// prepare SmartObject for mobile factory
(*message_)[strings::params][strings::function_id] =
diff --git a/src/components/application_manager/src/commands/hmi/on_vi_speed_notification.cc b/src/components/application_manager/src/commands/hmi/on_vi_speed_notification.cc
index 6bc1e8b2cf..ad38bf50a5 100644
--- a/src/components/application_manager/src/commands/hmi/on_vi_speed_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_vi_speed_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnVISpeedNotification::~OnVISpeedNotification() {
}
void OnVISpeedNotification::Run() {
- LOG4CXX_INFO(logger_, "OnVISpeedNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
// prepare SmartObject for mobile factory
(*message_)[strings::params][strings::function_id] =
diff --git a/src/components/application_manager/src/commands/hmi/on_vi_steering_wheel_angle_notification.cc b/src/components/application_manager/src/commands/hmi/on_vi_steering_wheel_angle_notification.cc
index 853b4eeea3..4fd70bf169 100644
--- a/src/components/application_manager/src/commands/hmi/on_vi_steering_wheel_angle_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_vi_steering_wheel_angle_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnVISteeringWheelAngleNotification::~OnVISteeringWheelAngleNotification() {
}
void OnVISteeringWheelAngleNotification::Run() {
- LOG4CXX_INFO(logger_, "OnVISteeringWheelAngleNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
// prepare SmartObject for mobile factory
(*message_)[strings::params][strings::function_id] =
diff --git a/src/components/application_manager/src/commands/hmi/on_vi_tire_pressure_notification.cc b/src/components/application_manager/src/commands/hmi/on_vi_tire_pressure_notification.cc
index 01ac7e9f8c..fda6e6e28d 100644
--- a/src/components/application_manager/src/commands/hmi/on_vi_tire_pressure_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_vi_tire_pressure_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnVITirePressureNotification::~OnVITirePressureNotification() {
}
void OnVITirePressureNotification::Run() {
- LOG4CXX_INFO(logger_, "OnVITirePressureNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
// prepare SmartObject for mobile factory
(*message_)[strings::params][strings::function_id] =
diff --git a/src/components/application_manager/src/commands/hmi/on_vi_vehicle_data_notification.cc b/src/components/application_manager/src/commands/hmi/on_vi_vehicle_data_notification.cc
index eda88ef602..15ccf940b8 100644
--- a/src/components/application_manager/src/commands/hmi/on_vi_vehicle_data_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_vi_vehicle_data_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnVIVehicleDataNotification::~OnVIVehicleDataNotification() {
}
void OnVIVehicleDataNotification::Run() {
- LOG4CXX_INFO(logger_, "OnVIVehicleDataNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
// prepare SmartObject for mobile factory
(*message_)[strings::params][strings::function_id] =
diff --git a/src/components/application_manager/src/commands/hmi/on_vi_vin_notification.cc b/src/components/application_manager/src/commands/hmi/on_vi_vin_notification.cc
index 546dc0d3cf..aa1683c5fb 100644
--- a/src/components/application_manager/src/commands/hmi/on_vi_vin_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_vi_vin_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnVIVinNotification::~OnVIVinNotification() {
}
void OnVIVinNotification::Run() {
- LOG4CXX_INFO(logger_, "OnVIVinNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
// prepare SmartObject for mobile factory
(*message_)[strings::params][strings::function_id] =
diff --git a/src/components/application_manager/src/commands/hmi/on_vi_wiper_status_notification.cc b/src/components/application_manager/src/commands/hmi/on_vi_wiper_status_notification.cc
index 101427df0a..0d27f42388 100644
--- a/src/components/application_manager/src/commands/hmi/on_vi_wiper_status_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_vi_wiper_status_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnVIWiperStatusNotification::~OnVIWiperStatusNotification() {
}
void OnVIWiperStatusNotification::Run() {
- LOG4CXX_INFO(logger_, "OnVIWiperStatusNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
// prepare SmartObject for mobile factory
(*message_)[strings::params][strings::function_id] =
diff --git a/src/components/application_manager/src/commands/hmi/on_vr_command_notification.cc b/src/components/application_manager/src/commands/hmi/on_vr_command_notification.cc
index 99842b8524..bcd02196a8 100644
--- a/src/components/application_manager/src/commands/hmi/on_vr_command_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_vr_command_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -51,7 +51,7 @@ OnVRCommandNotification::~OnVRCommandNotification() {
}
void OnVRCommandNotification::Run() {
- LOG4CXX_INFO(logger_, "OnVRCommandNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr active_app = ApplicationManagerImpl::instance()
->active_application();
diff --git a/src/components/application_manager/src/commands/hmi/on_vr_language_change_notification.cc b/src/components/application_manager/src/commands/hmi/on_vr_language_change_notification.cc
index 92e7cb7b23..19d064d15b 100644
--- a/src/components/application_manager/src/commands/hmi/on_vr_language_change_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_vr_language_change_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -49,7 +49,7 @@ OnVRLanguageChangeNotification::~OnVRLanguageChangeNotification() {
}
void OnVRLanguageChangeNotification::Run() {
- LOG4CXX_INFO(logger_, "OnVRLanguageChangeNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
HMICapabilities& hmi_capabilities =
ApplicationManagerImpl::instance()->hmi_capabilities();
@@ -65,16 +65,17 @@ void OnVRLanguageChangeNotification::Run() {
static_cast<int32_t>(mobile_apis::FunctionID::OnLanguageChangeID);
ApplicationManagerImpl::ApplicationListAccessor accessor;
- const std::set<ApplicationSharedPtr> applications = accessor.applications();
- std::set<ApplicationSharedPtr>::iterator it = applications.begin();
- for (;applications.end() != it; ++it) {
+ ApplicationManagerImpl::ApplictionSetIt it = accessor.begin();
+ for (;accessor.end() != it; ++it) {
ApplicationSharedPtr app = (*it);
(*message_)[strings::params][strings::connection_key] = app->app_id();
SendNotificationToMobile(message_);
if (static_cast<int32_t>(app->language())
!= (*message_)[strings::msg_params][strings::language].asInt()) {
- app->set_hmi_level(mobile_api::HMILevel::HMI_NONE);
+
+ ApplicationManagerImpl::instance()->ChangeAppsHMILevel(app->app_id(),
+ mobile_api::HMILevel::HMI_NONE);
MessageHelper::SendOnAppInterfaceUnregisteredNotificationToMobile(
app->app_id(),
diff --git a/src/components/application_manager/src/commands/hmi/on_vr_started_notification.cc b/src/components/application_manager/src/commands/hmi/on_vr_started_notification.cc
index 72f6767e8c..6e56dd29c0 100644
--- a/src/components/application_manager/src/commands/hmi/on_vr_started_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_vr_started_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnVRStartedNotification::~OnVRStartedNotification() {
}
void OnVRStartedNotification::Run() {
- LOG4CXX_INFO(logger_, "OnVRStartedNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->set_vr_session_started(true);
ApplicationManagerImpl::instance()->Mute(kVRSessionChanging);
diff --git a/src/components/application_manager/src/commands/hmi/on_vr_stopped_notification.cc b/src/components/application_manager/src/commands/hmi/on_vr_stopped_notification.cc
index 46274a3b2e..442968ea1e 100644
--- a/src/components/application_manager/src/commands/hmi/on_vr_stopped_notification.cc
+++ b/src/components/application_manager/src/commands/hmi/on_vr_stopped_notification.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ OnVRStoppedNotification::~OnVRStoppedNotification() {
}
void OnVRStoppedNotification::Run() {
- LOG4CXX_INFO(logger_, "OnVRStoppedNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->set_vr_session_started(false);
ApplicationManagerImpl::instance()->Unmute(kVRSessionChanging);
diff --git a/src/components/application_manager/src/commands/hmi/request_from_hmi.cc b/src/components/application_manager/src/commands/hmi/request_from_hmi.cc
index 7b7f740904..44eb24b7ab 100644
--- a/src/components/application_manager/src/commands/hmi/request_from_hmi.cc
+++ b/src/components/application_manager/src/commands/hmi/request_from_hmi.cc
@@ -58,6 +58,28 @@ bool RequestFromHMI::CleanUp() {
void RequestFromHMI::Run() {
}
+void RequestFromHMI::on_event(const event_engine::Event& event) {
+}
+
+void RequestFromHMI::SendResponse(bool success,
+ uint32_t correlation_id,
+ hmi_apis::FunctionID::eType function_id,
+ hmi_apis::Common_Result::eType result_code) {
+ smart_objects::SmartObject* message = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ (*message)[strings::params][strings::function_id] = function_id;
+ (*message)[strings::params][strings::message_type] = MessageType::kResponse;
+ (*message)[strings::params][strings::correlation_id] = correlation_id;
+ (*message)[strings::params][hmi_response::code] = 0;
+
+ (*message)[strings::msg_params][strings::success] = success;
+ (*message)[strings::msg_params][strings::result_code] = result_code;
+
+ ApplicationManagerImpl::instance()->ManageHMICommand(message);
+}
+
+
} // namespace commands
} // namespace application_manager
diff --git a/src/components/application_manager/src/commands/hmi/request_to_hmi.cc b/src/components/application_manager/src/commands/hmi/request_to_hmi.cc
index 242118a417..82b36be0f0 100644
--- a/src/components/application_manager/src/commands/hmi/request_to_hmi.cc
+++ b/src/components/application_manager/src/commands/hmi/request_to_hmi.cc
@@ -1,4 +1,4 @@
-/**
+/*
Copyright (c) 2014, Ford Motor Company
All rights reserved.
diff --git a/src/components/application_manager/src/commands/hmi/response_from_hmi.cc b/src/components/application_manager/src/commands/hmi/response_from_hmi.cc
index 42bebb847d..9f6ced5974 100644
--- a/src/components/application_manager/src/commands/hmi/response_from_hmi.cc
+++ b/src/components/application_manager/src/commands/hmi/response_from_hmi.cc
@@ -72,10 +72,9 @@ void ResponseFromHMI::SendResponseToMobile(const MessageSharedPtr& message) {
void ResponseFromHMI::CreateHMIRequest(
const hmi_apis::FunctionID::eType& function_id,
- const NsSmart::SmartObject& msg_params) const {
+ const smart_objects::SmartObject& msg_params) const {
- NsSmartDeviceLink::NsSmartObjects::SmartObject* result =
- new NsSmartDeviceLink::NsSmartObjects::SmartObject;
+ smart_objects::SmartObjectSPtr result = new smart_objects::SmartObject;
if (!result) {
LOG4CXX_ERROR(logger_, "Memory allocation failed.");
diff --git a/src/components/application_manager/src/commands/hmi/sdl_activate_app_request.cc b/src/components/application_manager/src/commands/hmi/sdl_activate_app_request.cc
index 72abf233ce..a65fd981bc 100644
--- a/src/components/application_manager/src/commands/hmi/sdl_activate_app_request.cc
+++ b/src/components/application_manager/src/commands/hmi/sdl_activate_app_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -32,6 +32,7 @@
#include "application_manager/commands/hmi/sdl_activate_app_request.h"
#include "application_manager/policies/policy_handler.h"
+#include "application_manager/message_helper.h"
namespace application_manager {
@@ -45,10 +46,53 @@ SDLActivateAppRequest::~SDLActivateAppRequest() {
}
void SDLActivateAppRequest::Run() {
- LOG4CXX_INFO(logger_, "SDLActivateAppRequest::Run");
- policy::PolicyHandler::instance()->OnActivateApp(
- (*message_)[strings::msg_params][strings::app_id].asUInt(),
- (*message_)[strings::params][strings::correlation_id].asInt());
+ LOG4CXX_AUTO_TRACE(logger_);
+ using namespace hmi_apis::FunctionID;
+
+ const uint32_t application_id = app_id();
+ ApplicationConstSharedPtr app =
+ ApplicationManagerImpl::instance()->application(application_id);
+
+ if (app && !app->IsRegistered()) {
+ MessageHelper::SendLaunchApp(application_id,
+ app->SchemaUrl(),
+ app->PackageName());
+ subscribe_on_event(BasicCommunication_OnAppRegistered);
+ } else {
+ policy::PolicyHandler::instance()->OnActivateApp(application_id,
+ correlation_id());
+ }
+}
+
+void SDLActivateAppRequest::onTimeOut() {
+ using namespace hmi_apis::FunctionID;
+ using namespace hmi_apis::Common_Result;
+ using namespace application_manager;
+ unsubscribe_from_event(BasicCommunication_OnAppRegistered);
+ const bool is_success = false;
+ SendResponse(is_success, correlation_id(),
+ BasicCommunication_ActivateApp, APPLICATION_NOT_REGISTERED);
+}
+
+void SDLActivateAppRequest::on_event(const event_engine::Event& event) {
+ using namespace hmi_apis::FunctionID;
+ if (event.id() != BasicCommunication_OnAppRegistered) {
+ return;
+ }
+ unsubscribe_from_event(BasicCommunication_OnAppRegistered);
+ policy::PolicyHandler::instance()->OnActivateApp(app_id(),
+ correlation_id());
+}
+
+uint32_t SDLActivateAppRequest::app_id() const {
+
+ if ((*message_).keyExists(strings::msg_params)) {
+ if ((*message_)[strings::msg_params].keyExists(strings::app_id)){
+ return (*message_)[strings::msg_params][strings::app_id].asUInt();
+ }
+ }
+ LOG4CXX_DEBUG(logger_, "app_id section is absent in the message.");
+ return 0;
}
} // namespace commands
diff --git a/src/components/application_manager/src/commands/hmi/sdl_activate_app_response.cc b/src/components/application_manager/src/commands/hmi/sdl_activate_app_response.cc
index 46eb402f41..6c7a0b5355 100644
--- a/src/components/application_manager/src/commands/hmi/sdl_activate_app_response.cc
+++ b/src/components/application_manager/src/commands/hmi/sdl_activate_app_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ SDLActivateAppResponse::~SDLActivateAppResponse() {
}
void SDLActivateAppResponse::Run() {
- LOG4CXX_INFO(logger_, "SDLActivateAppResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
(*message_)[strings::params][strings::protocol_type] = hmi_protocol_type_;
(*message_)[strings::params][strings::protocol_version] = protocol_version_;
diff --git a/src/components/application_manager/src/commands/hmi/sdl_get_list_of_permissions_request.cc b/src/components/application_manager/src/commands/hmi/sdl_get_list_of_permissions_request.cc
index 7eb5a268ac..a6649b2579 100644
--- a/src/components/application_manager/src/commands/hmi/sdl_get_list_of_permissions_request.cc
+++ b/src/components/application_manager/src/commands/hmi/sdl_get_list_of_permissions_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ SDLGetListOfPermissionsRequest::~SDLGetListOfPermissionsRequest() {
}
void SDLGetListOfPermissionsRequest::Run() {
- LOG4CXX_INFO(logger_, "SDLGetListOfPermissionsRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
uint32_t connection_key = 0;
if ((*message_)[strings::msg_params].keyExists(strings::app_id)) {
connection_key = (*message_)[strings::msg_params][strings::app_id].asUInt();
diff --git a/src/components/application_manager/src/commands/hmi/sdl_get_list_of_permissions_response.cc b/src/components/application_manager/src/commands/hmi/sdl_get_list_of_permissions_response.cc
index da474cb128..5d5e75e5c7 100644
--- a/src/components/application_manager/src/commands/hmi/sdl_get_list_of_permissions_response.cc
+++ b/src/components/application_manager/src/commands/hmi/sdl_get_list_of_permissions_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ SDLGetListOfPermissionsResponse::~SDLGetListOfPermissionsResponse() {
}
void SDLGetListOfPermissionsResponse::Run() {
- LOG4CXX_INFO(logger_, "SDLGetListOfPermissionsResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
(*message_)[strings::params][strings::protocol_type] = hmi_protocol_type_;
(*message_)[strings::params][strings::protocol_version] = protocol_version_;
diff --git a/src/components/application_manager/src/commands/hmi/sdl_get_status_update_request.cc b/src/components/application_manager/src/commands/hmi/sdl_get_status_update_request.cc
index cc5fbc63ae..dd977d99f0 100644
--- a/src/components/application_manager/src/commands/hmi/sdl_get_status_update_request.cc
+++ b/src/components/application_manager/src/commands/hmi/sdl_get_status_update_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ SDLGetStatusUpdateRequest::~SDLGetStatusUpdateRequest() {
}
void SDLGetStatusUpdateRequest::Run() {
- LOG4CXX_INFO(logger_, "SDLGetStatusUpdateRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
policy::PolicyHandler::instance()->OnGetStatusUpdate(
(*message_)[strings::params][strings::correlation_id].asUInt());
}
diff --git a/src/components/application_manager/src/commands/hmi/sdl_get_status_update_response.cc b/src/components/application_manager/src/commands/hmi/sdl_get_status_update_response.cc
index 08d8d315a5..ab1c57e9af 100644
--- a/src/components/application_manager/src/commands/hmi/sdl_get_status_update_response.cc
+++ b/src/components/application_manager/src/commands/hmi/sdl_get_status_update_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ SDLGetStatusUpdateResponse::~SDLGetStatusUpdateResponse() {
}
void SDLGetStatusUpdateResponse::Run() {
- LOG4CXX_INFO(logger_, "SDLGetStatusUpdateResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
(*message_)[strings::params][strings::protocol_type] = hmi_protocol_type_;
(*message_)[strings::params][strings::protocol_version] = protocol_version_;
diff --git a/src/components/application_manager/src/commands/hmi/sdl_get_user_friendly_message_request.cc b/src/components/application_manager/src/commands/hmi/sdl_get_user_friendly_message_request.cc
index 047d6bf846..cdd5c16ed0 100644
--- a/src/components/application_manager/src/commands/hmi/sdl_get_user_friendly_message_request.cc
+++ b/src/components/application_manager/src/commands/hmi/sdl_get_user_friendly_message_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -48,7 +48,7 @@ SDLGetUserFriendlyMessageRequest::~SDLGetUserFriendlyMessageRequest() {
}
void SDLGetUserFriendlyMessageRequest::Run() {
- LOG4CXX_INFO(logger_, "SDLGetUserFriendlyMessageRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
const std::string messageCodes = "messageCodes";
if (!(*message_)[strings::msg_params].keyExists(messageCodes)) {
LOG4CXX_WARN(logger_,
diff --git a/src/components/application_manager/src/commands/hmi/sdl_get_user_friendly_message_response.cc b/src/components/application_manager/src/commands/hmi/sdl_get_user_friendly_message_response.cc
index c849204cc3..8cc1b2d629 100644
--- a/src/components/application_manager/src/commands/hmi/sdl_get_user_friendly_message_response.cc
+++ b/src/components/application_manager/src/commands/hmi/sdl_get_user_friendly_message_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ SDLGetUserFriendlyMessageResponse::~SDLGetUserFriendlyMessageResponse() {
}
void SDLGetUserFriendlyMessageResponse::Run() {
- LOG4CXX_INFO(logger_, "SDLGetUserFriendlyMessageResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
(*message_)[strings::params][strings::protocol_type] = hmi_protocol_type_;
(*message_)[strings::params][strings::protocol_version] = protocol_version_;
diff --git a/src/components/application_manager/src/commands/hmi/sdl_policy_update.cc b/src/components/application_manager/src/commands/hmi/sdl_policy_update.cc
index 4779e106c5..b9c5aaa086 100644
--- a/src/components/application_manager/src/commands/hmi/sdl_policy_update.cc
+++ b/src/components/application_manager/src/commands/hmi/sdl_policy_update.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ SDLPolicyUpdate::~SDLPolicyUpdate() {
}
void SDLPolicyUpdate::Run() {
- LOG4CXX_INFO(logger_, "SDLPolicyUpdate::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/sdl_policy_update_response.cc b/src/components/application_manager/src/commands/hmi/sdl_policy_update_response.cc
index a3db3a9047..bc7c6e0d74 100644
--- a/src/components/application_manager/src/commands/hmi/sdl_policy_update_response.cc
+++ b/src/components/application_manager/src/commands/hmi/sdl_policy_update_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -43,7 +43,7 @@ SDLPolicyUpdateResponse::~SDLPolicyUpdateResponse() {
}
void SDLPolicyUpdateResponse::Run() {
- LOG4CXX_INFO(logger_, "SDLPolicyUpdateResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
// TODO(PV): add some logic here
}
} // namespace commands
diff --git a/src/components/application_manager/src/commands/hmi/tts_change_registration_request.cc b/src/components/application_manager/src/commands/hmi/tts_change_registration_request.cc
index 638503d162..dd127ec43f 100644
--- a/src/components/application_manager/src/commands/hmi/tts_change_registration_request.cc
+++ b/src/components/application_manager/src/commands/hmi/tts_change_registration_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ TTSChangeRegistrationRequest::~TTSChangeRegistrationRequest() {
}
void TTSChangeRegistrationRequest::Run() {
- LOG4CXX_INFO(logger_, "TTSChangeRegistrationRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/tts_change_registration_response.cc b/src/components/application_manager/src/commands/hmi/tts_change_registration_response.cc
index 67e48b4ed5..03b51e5db7 100644
--- a/src/components/application_manager/src/commands/hmi/tts_change_registration_response.cc
+++ b/src/components/application_manager/src/commands/hmi/tts_change_registration_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ TTSChangeRegistratioResponse::~TTSChangeRegistratioResponse() {
}
void TTSChangeRegistratioResponse::Run() {
- LOG4CXX_INFO(logger_, "TTSChangeRegistratioResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::TTS_ChangeRegistration);
event.set_smart_object(*message_);
diff --git a/src/components/application_manager/src/commands/hmi/tts_get_capabilities_request.cc b/src/components/application_manager/src/commands/hmi/tts_get_capabilities_request.cc
index 59cf50b38d..fb3dedc1c0 100644
--- a/src/components/application_manager/src/commands/hmi/tts_get_capabilities_request.cc
+++ b/src/components/application_manager/src/commands/hmi/tts_get_capabilities_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ TTSGetCapabilitiesRequest::~TTSGetCapabilitiesRequest() {
}
void TTSGetCapabilitiesRequest::Run() {
- LOG4CXX_INFO(logger_, "TTSGetCapabilitiesRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/tts_get_capabilities_response.cc b/src/components/application_manager/src/commands/hmi/tts_get_capabilities_response.cc
index f7309822d8..53a1bd3916 100644
--- a/src/components/application_manager/src/commands/hmi/tts_get_capabilities_response.cc
+++ b/src/components/application_manager/src/commands/hmi/tts_get_capabilities_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ TTSGetCapabilitiesResponse::~TTSGetCapabilitiesResponse() {
}
void TTSGetCapabilitiesResponse::Run() {
- LOG4CXX_INFO(logger_, "TTSGetCapabilitiesResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
HMICapabilities& hmi_capabilities =
ApplicationManagerImpl::instance()->hmi_capabilities();
diff --git a/src/components/application_manager/src/commands/hmi/tts_get_language_request.cc b/src/components/application_manager/src/commands/hmi/tts_get_language_request.cc
index 9f2fe7134a..6d4e4f465a 100644
--- a/src/components/application_manager/src/commands/hmi/tts_get_language_request.cc
+++ b/src/components/application_manager/src/commands/hmi/tts_get_language_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ TTSGetLanguageRequest::~TTSGetLanguageRequest() {
}
void TTSGetLanguageRequest::Run() {
- LOG4CXX_INFO(logger_, "TTSGetLanguageRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/tts_get_language_response.cc b/src/components/application_manager/src/commands/hmi/tts_get_language_response.cc
index e26fa87739..6c2122557b 100644
--- a/src/components/application_manager/src/commands/hmi/tts_get_language_response.cc
+++ b/src/components/application_manager/src/commands/hmi/tts_get_language_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ TTSGetLanguageResponse::~TTSGetLanguageResponse() {
}
void TTSGetLanguageResponse::Run() {
- LOG4CXX_INFO(logger_, "TTSGetLanguageResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
HMICapabilities& hmi_capabilities =
ApplicationManagerImpl::instance()->hmi_capabilities();
diff --git a/src/components/application_manager/src/commands/hmi/tts_get_supported_languages_request.cc b/src/components/application_manager/src/commands/hmi/tts_get_supported_languages_request.cc
index 08c1d82448..5251832bc1 100644
--- a/src/components/application_manager/src/commands/hmi/tts_get_supported_languages_request.cc
+++ b/src/components/application_manager/src/commands/hmi/tts_get_supported_languages_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ TTSGetSupportedLanguagesRequest::~TTSGetSupportedLanguagesRequest() {
}
void TTSGetSupportedLanguagesRequest::Run() {
- LOG4CXX_INFO(logger_, "TTSGetSupportedLanguagesRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/tts_get_supported_languages_response.cc b/src/components/application_manager/src/commands/hmi/tts_get_supported_languages_response.cc
index aa041f66b3..a5d022a6cb 100644
--- a/src/components/application_manager/src/commands/hmi/tts_get_supported_languages_response.cc
+++ b/src/components/application_manager/src/commands/hmi/tts_get_supported_languages_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ TTSGetSupportedLanguagesResponse::~TTSGetSupportedLanguagesResponse() {
}
void TTSGetSupportedLanguagesResponse::Run() {
- LOG4CXX_INFO(logger_, "TTSGetSupportedLanguagesResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
const hmi_apis::Common_Result::eType code =
static_cast<hmi_apis::Common_Result::eType>(
diff --git a/src/components/application_manager/src/commands/hmi/tts_is_ready_request.cc b/src/components/application_manager/src/commands/hmi/tts_is_ready_request.cc
index 7733de4887..3a50cfef90 100644
--- a/src/components/application_manager/src/commands/hmi/tts_is_ready_request.cc
+++ b/src/components/application_manager/src/commands/hmi/tts_is_ready_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ TTSIsReadyRequest::~TTSIsReadyRequest() {
}
void TTSIsReadyRequest::Run() {
- LOG4CXX_INFO(logger_, "TTSIsReadyRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/tts_is_ready_response.cc b/src/components/application_manager/src/commands/hmi/tts_is_ready_response.cc
index fb3cb4858f..dd8eab7534 100644
--- a/src/components/application_manager/src/commands/hmi/tts_is_ready_response.cc
+++ b/src/components/application_manager/src/commands/hmi/tts_is_ready_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ TTSIsReadyResponse::~TTSIsReadyResponse() {
}
void TTSIsReadyResponse::Run() {
- LOG4CXX_INFO(logger_, "TTSIsReadyResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
smart_objects::SmartObject& object = *message_;
bool is_available = false;
diff --git a/src/components/application_manager/src/commands/hmi/tts_set_global_properties_request.cc b/src/components/application_manager/src/commands/hmi/tts_set_global_properties_request.cc
index 04f1380d91..ce330c355f 100644
--- a/src/components/application_manager/src/commands/hmi/tts_set_global_properties_request.cc
+++ b/src/components/application_manager/src/commands/hmi/tts_set_global_properties_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ TTSSetGlobalPropertiesRequest::~TTSSetGlobalPropertiesRequest() {
}
void TTSSetGlobalPropertiesRequest::Run() {
- LOG4CXX_INFO(logger_, "TTSSetGlobalPropertiesRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/tts_set_global_properties_response.cc b/src/components/application_manager/src/commands/hmi/tts_set_global_properties_response.cc
index c90655186f..70dc46d6a6 100644
--- a/src/components/application_manager/src/commands/hmi/tts_set_global_properties_response.cc
+++ b/src/components/application_manager/src/commands/hmi/tts_set_global_properties_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ TTSSetGlobalPropertiesResponse::~TTSSetGlobalPropertiesResponse() {
}
void TTSSetGlobalPropertiesResponse::Run() {
- LOG4CXX_INFO(logger_, "TTSSetGlobalPropertiesResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::TTS_SetGlobalProperties);
event.set_smart_object(*message_);
diff --git a/src/components/application_manager/src/commands/hmi/tts_speak_request.cc b/src/components/application_manager/src/commands/hmi/tts_speak_request.cc
index 9b4bd68585..79fbde2c4f 100644
--- a/src/components/application_manager/src/commands/hmi/tts_speak_request.cc
+++ b/src/components/application_manager/src/commands/hmi/tts_speak_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ TTSSpeakRequest::~TTSSpeakRequest() {
}
void TTSSpeakRequest::Run() {
- LOG4CXX_INFO(logger_, "TTSSpeakRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/tts_speak_response.cc b/src/components/application_manager/src/commands/hmi/tts_speak_response.cc
index 9b9e43dbe8..ff60115e70 100644
--- a/src/components/application_manager/src/commands/hmi/tts_speak_response.cc
+++ b/src/components/application_manager/src/commands/hmi/tts_speak_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ TTSSpeakResponse::~TTSSpeakResponse() {
}
void TTSSpeakResponse::Run() {
- LOG4CXX_INFO(logger_, "TTSSpeakResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::TTS_Speak);
event.set_smart_object(*message_);
diff --git a/src/components/application_manager/src/commands/hmi/tts_stop_speaking_request.cc b/src/components/application_manager/src/commands/hmi/tts_stop_speaking_request.cc
index 107cb7933b..32aaec27e7 100644
--- a/src/components/application_manager/src/commands/hmi/tts_stop_speaking_request.cc
+++ b/src/components/application_manager/src/commands/hmi/tts_stop_speaking_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ TTSStopSpeakingRequest::~TTSStopSpeakingRequest() {
}
void TTSStopSpeakingRequest::Run() {
- LOG4CXX_INFO(logger_, "TTSStopSpeakingRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/tts_stop_speaking_response.cc b/src/components/application_manager/src/commands/hmi/tts_stop_speaking_response.cc
index 9bd4f89660..b32cf52bb5 100644
--- a/src/components/application_manager/src/commands/hmi/tts_stop_speaking_response.cc
+++ b/src/components/application_manager/src/commands/hmi/tts_stop_speaking_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ TTSStopSpeakingResponse::~TTSStopSpeakingResponse() {
}
void TTSStopSpeakingResponse::Run() {
- LOG4CXX_INFO(logger_, "TTSStopSpeakingResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::TTS_StopSpeaking);
event.set_smart_object(*message_);
diff --git a/src/components/application_manager/src/commands/hmi/ui_add_command_request.cc b/src/components/application_manager/src/commands/hmi/ui_add_command_request.cc
index 9aa5d2e2d3..ed9f7979a1 100644
--- a/src/components/application_manager/src/commands/hmi/ui_add_command_request.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_add_command_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ UIAddCommandRequest::~UIAddCommandRequest() {
}
void UIAddCommandRequest::Run() {
- LOG4CXX_INFO(logger_, "UIAddCommandRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/ui_add_command_response.cc b/src/components/application_manager/src/commands/hmi/ui_add_command_response.cc
index 21b34e0637..13b2ab1b2b 100644
--- a/src/components/application_manager/src/commands/hmi/ui_add_command_response.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_add_command_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ UIAddCommandResponse::~UIAddCommandResponse() {
}
void UIAddCommandResponse::Run() {
- LOG4CXX_INFO(logger_, "UIAddCommandResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::UI_AddCommand);
event.set_smart_object(*message_);
diff --git a/src/components/application_manager/src/commands/hmi/ui_add_submenu_request.cc b/src/components/application_manager/src/commands/hmi/ui_add_submenu_request.cc
index 7a9c5c6fed..667499584f 100644
--- a/src/components/application_manager/src/commands/hmi/ui_add_submenu_request.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_add_submenu_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/src/commands/hmi/ui_add_submenu_response.cc b/src/components/application_manager/src/commands/hmi/ui_add_submenu_response.cc
index af88de2b48..54247dbbce 100644
--- a/src/components/application_manager/src/commands/hmi/ui_add_submenu_response.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_add_submenu_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ UIAddSubmenuResponse::~UIAddSubmenuResponse() {
}
void UIAddSubmenuResponse::Run() {
- LOG4CXX_INFO(logger_, "UIAddSubmenuResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::UI_AddSubMenu);
event.set_smart_object(*message_);
diff --git a/src/components/application_manager/src/commands/hmi/ui_alert_request.cc b/src/components/application_manager/src/commands/hmi/ui_alert_request.cc
index f8c9ed5708..c706d5fdba 100644
--- a/src/components/application_manager/src/commands/hmi/ui_alert_request.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_alert_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ UIAlertRequest::~UIAlertRequest() {
}
void UIAlertRequest::Run() {
- LOG4CXX_INFO(logger_, "UIAlertRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/ui_alert_response.cc b/src/components/application_manager/src/commands/hmi/ui_alert_response.cc
index 289b90d290..8c9ddef7ac 100644
--- a/src/components/application_manager/src/commands/hmi/ui_alert_response.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_alert_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ UIAlertResponse::~UIAlertResponse() {
}
void UIAlertResponse::Run() {
- LOG4CXX_INFO(logger_, "UIAlertResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::UI_Alert);
event.set_smart_object(*message_);
diff --git a/src/components/application_manager/src/commands/hmi/ui_change_registration_request.cc b/src/components/application_manager/src/commands/hmi/ui_change_registration_request.cc
index fbba2b4023..67c9be6cb5 100644
--- a/src/components/application_manager/src/commands/hmi/ui_change_registration_request.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_change_registration_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ UIChangeRegistrationRequest::~UIChangeRegistrationRequest() {
}
void UIChangeRegistrationRequest::Run() {
- LOG4CXX_INFO(logger_, "UIChangeRegistrationRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/ui_change_registration_response.cc b/src/components/application_manager/src/commands/hmi/ui_change_registration_response.cc
index 16447077dd..1d59d66d74 100644
--- a/src/components/application_manager/src/commands/hmi/ui_change_registration_response.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_change_registration_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ UIChangeRegistratioResponse::~UIChangeRegistratioResponse() {
}
void UIChangeRegistratioResponse::Run() {
- LOG4CXX_INFO(logger_, "UIChangeRegistratioResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::UI_ChangeRegistration);
event.set_smart_object(*message_);
diff --git a/src/components/application_manager/src/commands/hmi/ui_delete_command_request.cc b/src/components/application_manager/src/commands/hmi/ui_delete_command_request.cc
index 23fb4c67f5..7d5532f30f 100644
--- a/src/components/application_manager/src/commands/hmi/ui_delete_command_request.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_delete_command_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ UIDeleteCommandRequest::~UIDeleteCommandRequest() {
}
void UIDeleteCommandRequest::Run() {
- LOG4CXX_INFO(logger_, "UIDeleteCommandRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/ui_delete_command_response.cc b/src/components/application_manager/src/commands/hmi/ui_delete_command_response.cc
index 0ac32877c4..2fb94a63a3 100644
--- a/src/components/application_manager/src/commands/hmi/ui_delete_command_response.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_delete_command_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ UIDeleteCommandResponse::~UIDeleteCommandResponse() {
}
void UIDeleteCommandResponse::Run() {
- LOG4CXX_INFO(logger_, "UIDeleteCommandResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::UI_DeleteCommand);
event.set_smart_object(*message_);
diff --git a/src/components/application_manager/src/commands/hmi/ui_delete_submenu_request.cc b/src/components/application_manager/src/commands/hmi/ui_delete_submenu_request.cc
index 41f356b981..e945139639 100644
--- a/src/components/application_manager/src/commands/hmi/ui_delete_submenu_request.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_delete_submenu_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ UIDeleteSubmenuRequest::~UIDeleteSubmenuRequest() {
}
void UIDeleteSubmenuRequest::Run() {
- LOG4CXX_INFO(logger_, "UIDeleteSubmenuRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/ui_delete_submenu_response.cc b/src/components/application_manager/src/commands/hmi/ui_delete_submenu_response.cc
index 5a3359b722..89a5a19a0b 100644
--- a/src/components/application_manager/src/commands/hmi/ui_delete_submenu_response.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_delete_submenu_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ UIDeleteSubmenuResponse::~UIDeleteSubmenuResponse() {
}
void UIDeleteSubmenuResponse::Run() {
- LOG4CXX_INFO(logger_, "UIDeleteSubmenuResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::UI_DeleteSubMenu);
event.set_smart_object(*message_);
diff --git a/src/components/application_manager/src/commands/hmi/ui_end_audio_pass_thru_request.cc b/src/components/application_manager/src/commands/hmi/ui_end_audio_pass_thru_request.cc
index 4c93f9235b..b87e1d89b8 100644
--- a/src/components/application_manager/src/commands/hmi/ui_end_audio_pass_thru_request.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_end_audio_pass_thru_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ UIEndAudioPassThruRequest::~UIEndAudioPassThruRequest() {
}
void UIEndAudioPassThruRequest::Run() {
- LOG4CXX_INFO(logger_, "UIEndAudioPassThruRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/ui_end_audio_pass_thru_response.cc b/src/components/application_manager/src/commands/hmi/ui_end_audio_pass_thru_response.cc
index e560ae293a..8f5d92b78f 100644
--- a/src/components/application_manager/src/commands/hmi/ui_end_audio_pass_thru_response.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_end_audio_pass_thru_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ UIEndAudioPassThruResponse::~UIEndAudioPassThruResponse() {
}
void UIEndAudioPassThruResponse::Run() {
- LOG4CXX_INFO(logger_, "UIEndAudioPassThruResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::UI_EndAudioPassThru);
event.set_smart_object(*message_);
diff --git a/src/components/application_manager/src/commands/hmi/ui_get_capabilities_request.cc b/src/components/application_manager/src/commands/hmi/ui_get_capabilities_request.cc
index b9f1b6917c..74ee67e884 100644
--- a/src/components/application_manager/src/commands/hmi/ui_get_capabilities_request.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_get_capabilities_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ UIGetCapabilitiesRequest::~UIGetCapabilitiesRequest() {
}
void UIGetCapabilitiesRequest::Run() {
- LOG4CXX_INFO(logger_, "UIGetCapabilitiesRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/ui_get_capabilities_response.cc b/src/components/application_manager/src/commands/hmi/ui_get_capabilities_response.cc
index 0663bf033e..7ebc5ffcc9 100644
--- a/src/components/application_manager/src/commands/hmi/ui_get_capabilities_response.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_get_capabilities_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ UIGetCapabilitiesResponse::~UIGetCapabilitiesResponse() {
}
void UIGetCapabilitiesResponse::Run() {
- LOG4CXX_INFO(logger_, "UIGetCapabilitiesResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
HMICapabilities& hmi_capabilities =
ApplicationManagerImpl::instance()->hmi_capabilities();
diff --git a/src/components/application_manager/src/commands/hmi/ui_get_language_request.cc b/src/components/application_manager/src/commands/hmi/ui_get_language_request.cc
index ffca242d43..1b22a9b58f 100644
--- a/src/components/application_manager/src/commands/hmi/ui_get_language_request.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_get_language_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ UIGetLanguageRequest::~UIGetLanguageRequest() {
}
void UIGetLanguageRequest::Run() {
- LOG4CXX_INFO(logger_, "UIGetLanguageRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/ui_get_language_response.cc b/src/components/application_manager/src/commands/hmi/ui_get_language_response.cc
index 20435d788b..cba85d91e7 100644
--- a/src/components/application_manager/src/commands/hmi/ui_get_language_response.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_get_language_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ UIGetLanguageResponse::~UIGetLanguageResponse() {
}
void UIGetLanguageResponse::Run() {
- LOG4CXX_INFO(logger_, "UIGetLanguageResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
HMICapabilities& hmi_capabilities =
ApplicationManagerImpl::instance()->hmi_capabilities();
diff --git a/src/components/application_manager/src/commands/hmi/ui_get_supported_languages_request.cc b/src/components/application_manager/src/commands/hmi/ui_get_supported_languages_request.cc
index 455486ef6c..5cd0c09e65 100644
--- a/src/components/application_manager/src/commands/hmi/ui_get_supported_languages_request.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_get_supported_languages_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ UIGetSupportedLanguagesRequest::~UIGetSupportedLanguagesRequest() {
}
void UIGetSupportedLanguagesRequest::Run() {
- LOG4CXX_INFO(logger_, "UIGetSupportedLanguagesRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/ui_get_supported_languages_response.cc b/src/components/application_manager/src/commands/hmi/ui_get_supported_languages_response.cc
index 8492cfca5b..2057f3cbb2 100644
--- a/src/components/application_manager/src/commands/hmi/ui_get_supported_languages_response.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_get_supported_languages_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ UIGetSupportedLanguagesResponse::~UIGetSupportedLanguagesResponse() {
}
void UIGetSupportedLanguagesResponse::Run() {
- LOG4CXX_INFO(logger_, "UIGetSupportedLanguagesResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
const hmi_apis::Common_Result::eType code =
static_cast<hmi_apis::Common_Result::eType>(
diff --git a/src/components/application_manager/src/commands/hmi/ui_is_ready_request.cc b/src/components/application_manager/src/commands/hmi/ui_is_ready_request.cc
index 50d0ddd95a..94df3cec7d 100644
--- a/src/components/application_manager/src/commands/hmi/ui_is_ready_request.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_is_ready_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ UIIsReadyRequest::~UIIsReadyRequest() {
}
void UIIsReadyRequest::Run() {
- LOG4CXX_INFO(logger_, "UIIsReadyRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/ui_is_ready_response.cc b/src/components/application_manager/src/commands/hmi/ui_is_ready_response.cc
index 97d11b6022..9edf77080e 100644
--- a/src/components/application_manager/src/commands/hmi/ui_is_ready_response.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_is_ready_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ UIIsReadyResponse::~UIIsReadyResponse() {
}
void UIIsReadyResponse::Run() {
- LOG4CXX_INFO(logger_, "UIIsReadyResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
smart_objects::SmartObject& object = *message_;
bool is_available = false;
diff --git a/src/components/application_manager/src/commands/hmi/ui_perform_audio_pass_thru_request.cc b/src/components/application_manager/src/commands/hmi/ui_perform_audio_pass_thru_request.cc
index cf77703a9b..3cf7722b24 100644
--- a/src/components/application_manager/src/commands/hmi/ui_perform_audio_pass_thru_request.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_perform_audio_pass_thru_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ UIPerformAudioPassThruRequest::~UIPerformAudioPassThruRequest() {
}
void UIPerformAudioPassThruRequest::Run() {
- LOG4CXX_INFO(logger_, "UIPerformAudioPassThruRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/ui_perform_audio_pass_thru_response.cc b/src/components/application_manager/src/commands/hmi/ui_perform_audio_pass_thru_response.cc
index 36d4c507b5..c8a488e44d 100644
--- a/src/components/application_manager/src/commands/hmi/ui_perform_audio_pass_thru_response.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_perform_audio_pass_thru_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ UIPerformAudioPassThruResponse::~UIPerformAudioPassThruResponse() {
}
void UIPerformAudioPassThruResponse::Run() {
- LOG4CXX_INFO(logger_, "UIPerformAudioPassThruResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::UI_PerformAudioPassThru);
event.set_smart_object(*message_);
diff --git a/src/components/application_manager/src/commands/hmi/ui_perform_interaction_request.cc b/src/components/application_manager/src/commands/hmi/ui_perform_interaction_request.cc
index 09f98ec036..2b1f5ce484 100644
--- a/src/components/application_manager/src/commands/hmi/ui_perform_interaction_request.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_perform_interaction_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ UIPerformInteractionRequest::~UIPerformInteractionRequest() {
}
void UIPerformInteractionRequest::Run() {
- LOG4CXX_INFO(logger_, "UIPerformInteractionRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/ui_perform_interaction_response.cc b/src/components/application_manager/src/commands/hmi/ui_perform_interaction_response.cc
index 2f5f6ead57..25237525da 100644
--- a/src/components/application_manager/src/commands/hmi/ui_perform_interaction_response.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_perform_interaction_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ UIPerformInteractionResponse::~UIPerformInteractionResponse() {
}
void UIPerformInteractionResponse::Run() {
- LOG4CXX_INFO(logger_, "UIPerformInteractionResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::UI_PerformInteraction);
event.set_smart_object(*message_);
event.raise();
diff --git a/src/components/application_manager/src/commands/hmi/ui_scrollable_message_request.cc b/src/components/application_manager/src/commands/hmi/ui_scrollable_message_request.cc
index ac34dd236f..911c840ce4 100644
--- a/src/components/application_manager/src/commands/hmi/ui_scrollable_message_request.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_scrollable_message_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ UIScrollableMessageRequest::~UIScrollableMessageRequest() {
}
void UIScrollableMessageRequest::Run() {
- LOG4CXX_INFO(logger_, "UIScrollableMessageRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/ui_scrollable_message_response.cc b/src/components/application_manager/src/commands/hmi/ui_scrollable_message_response.cc
index 182d512c8c..58c793c3b6 100644
--- a/src/components/application_manager/src/commands/hmi/ui_scrollable_message_response.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_scrollable_message_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ UIScrollableMessageResponse::~UIScrollableMessageResponse() {
}
void UIScrollableMessageResponse::Run() {
- LOG4CXX_INFO(logger_, "UIScrollableMessageResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::UI_ScrollableMessage);
event.set_smart_object(*message_);
diff --git a/src/components/application_manager/src/commands/hmi/ui_set_app_icon_request.cc b/src/components/application_manager/src/commands/hmi/ui_set_app_icon_request.cc
new file mode 100644
index 0000000000..c4a3b3b3af
--- /dev/null
+++ b/src/components/application_manager/src/commands/hmi/ui_set_app_icon_request.cc
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/ui_set_app_icon_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UISetAppIconRequest::UISetAppIconRequest(const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+UISetAppIconRequest::~UISetAppIconRequest() {
+}
+
+void UISetAppIconRequest::Run() {
+ LOG4CXX_AUTO_TRACE(logger_);
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/src/components/application_manager/src/commands/hmi/ui_set_app_icon_response.cc b/src/components/application_manager/src/commands/hmi/ui_set_app_icon_response.cc
new file mode 100644
index 0000000000..46c10e8f22
--- /dev/null
+++ b/src/components/application_manager/src/commands/hmi/ui_set_app_icon_response.cc
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/ui_set_app_icon_response.h"
+#include "application_manager/event_engine/event.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UISetAppIconResponse::UISetAppIconResponse(const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+UISetAppIconResponse::~UISetAppIconResponse() {
+}
+
+void UISetAppIconResponse::Run() {
+ LOG4CXX_AUTO_TRACE(logger_);
+
+ event_engine::Event event(hmi_apis::FunctionID::UI_SetAppIcon);
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/src/components/application_manager/src/commands/hmi/ui_set_display_layout_request.cc b/src/components/application_manager/src/commands/hmi/ui_set_display_layout_request.cc
index 3dea853486..df9f6cf2a6 100644
--- a/src/components/application_manager/src/commands/hmi/ui_set_display_layout_request.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_set_display_layout_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ UiSetDisplayLayoutRequest::~UiSetDisplayLayoutRequest() {
}
void UiSetDisplayLayoutRequest::Run() {
- LOG4CXX_INFO(logger_, "UiSetDisplayLayoutRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/ui_set_display_layout_response.cc b/src/components/application_manager/src/commands/hmi/ui_set_display_layout_response.cc
index f381a4db28..f23cc92642 100644
--- a/src/components/application_manager/src/commands/hmi/ui_set_display_layout_response.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_set_display_layout_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ UiSetDisplayLayoutResponse::~UiSetDisplayLayoutResponse() {
}
void UiSetDisplayLayoutResponse::Run() {
- LOG4CXX_INFO(logger_, "UiSetDisplayLayoutResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::UI_SetDisplayLayout);
event.set_smart_object(*message_);
diff --git a/src/components/application_manager/src/commands/hmi/ui_set_global_properties_request.cc b/src/components/application_manager/src/commands/hmi/ui_set_global_properties_request.cc
index e538866c1b..39a0e865df 100644
--- a/src/components/application_manager/src/commands/hmi/ui_set_global_properties_request.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_set_global_properties_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ UISetGlobalPropertiesRequest::~UISetGlobalPropertiesRequest() {
}
void UISetGlobalPropertiesRequest::Run() {
- LOG4CXX_INFO(logger_, "UISetGlobalPropertiesRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/ui_set_global_properties_response.cc b/src/components/application_manager/src/commands/hmi/ui_set_global_properties_response.cc
index 67023533c9..23173961fb 100644
--- a/src/components/application_manager/src/commands/hmi/ui_set_global_properties_response.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_set_global_properties_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ UISetGlobalPropertiesResponse::~UISetGlobalPropertiesResponse() {
}
void UISetGlobalPropertiesResponse::Run() {
- LOG4CXX_INFO(logger_, "UISetGlobalPropertiesResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::UI_SetGlobalProperties);
event.set_smart_object(*message_);
diff --git a/src/components/application_manager/src/commands/hmi/ui_set_media_clock_timer_request.cc b/src/components/application_manager/src/commands/hmi/ui_set_media_clock_timer_request.cc
index 1eb218013b..272ff561aa 100644
--- a/src/components/application_manager/src/commands/hmi/ui_set_media_clock_timer_request.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_set_media_clock_timer_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ UISetMediaClockTimerRequest::~UISetMediaClockTimerRequest() {
}
void UISetMediaClockTimerRequest::Run() {
- LOG4CXX_INFO(logger_, "UISetMediaClockTimerRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/ui_set_media_clock_timer_response.cc b/src/components/application_manager/src/commands/hmi/ui_set_media_clock_timer_response.cc
index ee67862a1a..ae878bd694 100644
--- a/src/components/application_manager/src/commands/hmi/ui_set_media_clock_timer_response.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_set_media_clock_timer_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ UISetMediaClockTimerResponse::~UISetMediaClockTimerResponse() {
}
void UISetMediaClockTimerResponse::Run() {
- LOG4CXX_INFO(logger_, "UISetMediaClockTimerResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::UI_SetMediaClockTimer);
event.set_smart_object(*message_);
diff --git a/src/components/application_manager/src/commands/hmi/ui_show_request.cc b/src/components/application_manager/src/commands/hmi/ui_show_request.cc
index 841c8a62fa..65b9894902 100644
--- a/src/components/application_manager/src/commands/hmi/ui_show_request.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_show_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ UIShowRequest::~UIShowRequest() {
}
void UIShowRequest::Run() {
- LOG4CXX_INFO(logger_, "UIShowRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/ui_show_response.cc b/src/components/application_manager/src/commands/hmi/ui_show_response.cc
index c95cbbd2ba..8d348e6086 100644
--- a/src/components/application_manager/src/commands/hmi/ui_show_response.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_show_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ UIShowResponse::~UIShowResponse() {
}
void UIShowResponse::Run() {
- LOG4CXX_INFO(logger_, "UIShowResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::UI_Show);
event.set_smart_object(*message_);
diff --git a/src/components/application_manager/src/commands/hmi/ui_slider_request.cc b/src/components/application_manager/src/commands/hmi/ui_slider_request.cc
index fc7203c0ea..c8d3242d98 100644
--- a/src/components/application_manager/src/commands/hmi/ui_slider_request.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_slider_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ UISliderRequest::~UISliderRequest() {
}
void UISliderRequest::Run() {
- LOG4CXX_INFO(logger_, "UISliderRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/ui_slider_response.cc b/src/components/application_manager/src/commands/hmi/ui_slider_response.cc
index 8d2522e224..7837117ebd 100644
--- a/src/components/application_manager/src/commands/hmi/ui_slider_response.cc
+++ b/src/components/application_manager/src/commands/hmi/ui_slider_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ UISliderResponse::~UISliderResponse() {
}
void UISliderResponse::Run() {
- LOG4CXX_INFO(logger_, "UISliderResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::UI_Slider);
event.set_smart_object(*message_);
diff --git a/src/components/application_manager/src/commands/hmi/update_app_list_request.cc b/src/components/application_manager/src/commands/hmi/update_app_list_request.cc
index 955f4b19c6..72f65d1a2e 100644
--- a/src/components/application_manager/src/commands/hmi/update_app_list_request.cc
+++ b/src/components/application_manager/src/commands/hmi/update_app_list_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ UpdateAppListRequest::~UpdateAppListRequest() {
}
void UpdateAppListRequest::Run() {
- LOG4CXX_INFO(logger_, "UpdateAppListRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/update_app_list_response.cc b/src/components/application_manager/src/commands/hmi/update_app_list_response.cc
index d5db0b4ea8..308bce3ad2 100644
--- a/src/components/application_manager/src/commands/hmi/update_app_list_response.cc
+++ b/src/components/application_manager/src/commands/hmi/update_app_list_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ UpdateAppListResponse::~UpdateAppListResponse() {
}
void UpdateAppListResponse::Run() {
- LOG4CXX_INFO(logger_, "UpdateAppListResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
// TODO(PV): add check
}
diff --git a/src/components/application_manager/src/commands/hmi/update_device_list_request.cc b/src/components/application_manager/src/commands/hmi/update_device_list_request.cc
index 1f632378b4..696e2f85c4 100644
--- a/src/components/application_manager/src/commands/hmi/update_device_list_request.cc
+++ b/src/components/application_manager/src/commands/hmi/update_device_list_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -50,17 +50,17 @@ UpdateDeviceListRequest::~UpdateDeviceListRequest() {
}
void UpdateDeviceListRequest::Run() {
- LOG4CXX_INFO(logger_, "UpdateDeviceListRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
sync_primitives::AutoLock auto_lock(wait_hmi_lock);
// Fix problem with SDL and HMI HTML. This problem is not actual for HMI PASA.
- // Flag conditional compilation "CUSTOMER_PASA" is used in order to exclude
+ // Flag conditional compilation for specific customer is used in order to exclude
// hit code to RTC
if (true == profile::Profile::instance()->launch_hmi()) {
if (!ApplicationManagerImpl::instance()->IsHMICooperating()) {
- LOG4CXX_INFO(logger_, "MY Wait for HMI Cooperation");
+ LOG4CXX_INFO(logger_, "Wait for HMI Cooperation");
subscribe_on_event(hmi_apis::FunctionID::BasicCommunication_OnReady);
termination_condition_.Wait(auto_lock);
- LOG4CXX_INFO(logger_, "MY HMI Cooperation OK");
+ LOG4CXX_DEBUG(logger_, "HMI Cooperation OK");
}
}
@@ -68,7 +68,7 @@ void UpdateDeviceListRequest::Run() {
}
void UpdateDeviceListRequest::on_event(const event_engine::Event& event) {
- LOG4CXX_INFO(logger_, "UpdateDeviceListRequest::on_event");
+ LOG4CXX_AUTO_TRACE(logger_);
sync_primitives::AutoLock auto_lock(wait_hmi_lock);
switch (event.id()) {
case hmi_apis::FunctionID::BasicCommunication_OnReady : {
diff --git a/src/components/application_manager/src/commands/hmi/update_device_list_response.cc b/src/components/application_manager/src/commands/hmi/update_device_list_response.cc
index 85ef57404c..b3e0f9a309 100644
--- a/src/components/application_manager/src/commands/hmi/update_device_list_response.cc
+++ b/src/components/application_manager/src/commands/hmi/update_device_list_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ UpdateDeviceListResponse::~UpdateDeviceListResponse() {
}
void UpdateDeviceListResponse::Run() {
- LOG4CXX_INFO(logger_, "UpdateDeviceListResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
// TODO(PV): add check for correctness.
}
diff --git a/src/components/application_manager/src/commands/hmi/update_sdl_request.cc b/src/components/application_manager/src/commands/hmi/update_sdl_request.cc
index 7d47f84ce3..b03e595e9c 100644
--- a/src/components/application_manager/src/commands/hmi/update_sdl_request.cc
+++ b/src/components/application_manager/src/commands/hmi/update_sdl_request.cc
@@ -46,7 +46,7 @@ UpdateSDLRequest::~UpdateSDLRequest() {
}
void UpdateSDLRequest::Run() {
- LOG4CXX_INFO(logger_, "UpdateSDLRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
policy::PolicyHandler::instance()->PTExchangeAtUserRequest(
(*message_)[strings::params][strings::correlation_id].asInt());
diff --git a/src/components/application_manager/src/commands/hmi/update_sdl_response.cc b/src/components/application_manager/src/commands/hmi/update_sdl_response.cc
index d2be2c655c..d9c8b6102f 100644
--- a/src/components/application_manager/src/commands/hmi/update_sdl_response.cc
+++ b/src/components/application_manager/src/commands/hmi/update_sdl_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ UpdateSDLResponse::~UpdateSDLResponse() {
}
void UpdateSDLResponse::Run() {
- LOG4CXX_INFO(logger_, "UpdateSDLResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
(*message_)[strings::params][strings::protocol_type] = hmi_protocol_type_;
(*message_)[strings::params][strings::protocol_version] = protocol_version_;
diff --git a/src/components/application_manager/src/commands/hmi/vi_diagnostic_message_request.cc b/src/components/application_manager/src/commands/hmi/vi_diagnostic_message_request.cc
index 45d44e4475..eb9a9841be 100644
--- a/src/components/application_manager/src/commands/hmi/vi_diagnostic_message_request.cc
+++ b/src/components/application_manager/src/commands/hmi/vi_diagnostic_message_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ VIDiagnosticMessageRequest::~VIDiagnosticMessageRequest() {
}
void VIDiagnosticMessageRequest::Run() {
- LOG4CXX_INFO(logger_, "VIDiagnosticMessageRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/vi_diagnostic_message_response.cc b/src/components/application_manager/src/commands/hmi/vi_diagnostic_message_response.cc
index d83869b279..4183395e99 100644
--- a/src/components/application_manager/src/commands/hmi/vi_diagnostic_message_response.cc
+++ b/src/components/application_manager/src/commands/hmi/vi_diagnostic_message_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ VIDiagnosticMessageResponse::~VIDiagnosticMessageResponse() {
}
void VIDiagnosticMessageResponse::Run() {
- LOG4CXX_INFO(logger_, "VIDiagnosticMessageResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::VehicleInfo_DiagnosticMessage);
event.set_smart_object(*message_);
diff --git a/src/components/application_manager/src/commands/hmi/vi_get_dtcs_request.cc b/src/components/application_manager/src/commands/hmi/vi_get_dtcs_request.cc
index 5289816fb5..a89252ada2 100644
--- a/src/components/application_manager/src/commands/hmi/vi_get_dtcs_request.cc
+++ b/src/components/application_manager/src/commands/hmi/vi_get_dtcs_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ VIGetDTCsRequest::~VIGetDTCsRequest() {
}
void VIGetDTCsRequest::Run() {
- LOG4CXX_INFO(logger_, "VIGetDTCsRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/vi_get_dtcs_response.cc b/src/components/application_manager/src/commands/hmi/vi_get_dtcs_response.cc
index 0cacc51d6c..c44f5213d2 100644
--- a/src/components/application_manager/src/commands/hmi/vi_get_dtcs_response.cc
+++ b/src/components/application_manager/src/commands/hmi/vi_get_dtcs_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ VIGetDTCsResponse::~VIGetDTCsResponse() {
}
void VIGetDTCsResponse::Run() {
- LOG4CXX_INFO(logger_, "VIGetDTCsResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::VehicleInfo_GetDTCs);
event.set_smart_object(*message_);
diff --git a/src/components/application_manager/src/commands/hmi/vi_get_vehicle_data_request.cc b/src/components/application_manager/src/commands/hmi/vi_get_vehicle_data_request.cc
index 40b2ca9fed..37d5ede4b0 100644
--- a/src/components/application_manager/src/commands/hmi/vi_get_vehicle_data_request.cc
+++ b/src/components/application_manager/src/commands/hmi/vi_get_vehicle_data_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ VIGetVehicleDataRequest::~VIGetVehicleDataRequest() {
}
void VIGetVehicleDataRequest::Run() {
- LOG4CXX_INFO(logger_, "VIGetVehicleDataRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/vi_get_vehicle_data_response.cc b/src/components/application_manager/src/commands/hmi/vi_get_vehicle_data_response.cc
index 73444a19bd..0ed0f7f515 100644
--- a/src/components/application_manager/src/commands/hmi/vi_get_vehicle_data_response.cc
+++ b/src/components/application_manager/src/commands/hmi/vi_get_vehicle_data_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -35,7 +35,6 @@
#include "interfaces/HMI_API.h"
namespace application_manager {
-
namespace commands {
VIGetVehicleDataResponse::VIGetVehicleDataResponse(
@@ -47,22 +46,14 @@ VIGetVehicleDataResponse::~VIGetVehicleDataResponse() {
}
void VIGetVehicleDataResponse::Run() {
- LOG4CXX_INFO(logger_, "VIGetVehicleDataResponse::Run");
- smart_objects::SmartObject* result_so = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
- if (!result_so) {
- // TODO(PV): add response with out of memory.
- LOG4CXX_ERROR(logger_,
- "Failed to create new Smart Object on get vehicle response.");
- return;
- }
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::VehicleInfo_GetVehicleData);
- smart_objects::SmartObject& result = *result_so;
-
if ((*message_)[strings::params][strings::message_type]
== static_cast<int32_t>(hmi_apis::messageType::error_response)) {
+ smart_objects::SmartObject result(smart_objects::SmartType_Map);
+
if ((*message_)[strings::params].keyExists(strings::data)) {
result[strings::msg_params] = (*message_)[strings::params][strings::data];
result[strings::params][hmi_response::code] =
@@ -79,17 +70,14 @@ void VIGetVehicleDataResponse::Run() {
(*message_)[strings::params][strings::protocol_version];
}
-
- event.set_smart_object(*result_so);
+ event.set_smart_object(result);
} else {
event.set_smart_object(*message_);
policy::PolicyHandler::instance()->OnVehicleDataUpdated(*message_);
}
-
event.raise();
}
} // namespace commands
-
} // namespace application_manager
diff --git a/src/components/application_manager/src/commands/hmi/vi_get_vehicle_type_request.cc b/src/components/application_manager/src/commands/hmi/vi_get_vehicle_type_request.cc
index 4c46de950e..11dd26dfad 100644
--- a/src/components/application_manager/src/commands/hmi/vi_get_vehicle_type_request.cc
+++ b/src/components/application_manager/src/commands/hmi/vi_get_vehicle_type_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ VIGetVehicleTypeRequest::~VIGetVehicleTypeRequest() {
}
void VIGetVehicleTypeRequest::Run() {
- LOG4CXX_INFO(logger_, "VIGetVehicleTypeRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/vi_get_vehicle_type_response.cc b/src/components/application_manager/src/commands/hmi/vi_get_vehicle_type_response.cc
index 18c0136d12..2b5f6b96be 100644
--- a/src/components/application_manager/src/commands/hmi/vi_get_vehicle_type_response.cc
+++ b/src/components/application_manager/src/commands/hmi/vi_get_vehicle_type_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ VIGetVehicleTypeResponse::~VIGetVehicleTypeResponse() {
}
void VIGetVehicleTypeResponse::Run() {
- LOG4CXX_INFO(logger_, "VIGetVehicleTypeResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
HMICapabilities& hmi_capabilities =
ApplicationManagerImpl::instance()->hmi_capabilities();
diff --git a/src/components/application_manager/src/commands/hmi/vi_is_ready_request.cc b/src/components/application_manager/src/commands/hmi/vi_is_ready_request.cc
index 074d6f6022..aae05e0fcc 100644
--- a/src/components/application_manager/src/commands/hmi/vi_is_ready_request.cc
+++ b/src/components/application_manager/src/commands/hmi/vi_is_ready_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ VIIsReadyRequest::~VIIsReadyRequest() {
}
void VIIsReadyRequest::Run() {
- LOG4CXX_INFO(logger_, "VIIsReadyRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/vi_is_ready_response.cc b/src/components/application_manager/src/commands/hmi/vi_is_ready_response.cc
index e7c9c180c2..4a79a6d9b9 100644
--- a/src/components/application_manager/src/commands/hmi/vi_is_ready_response.cc
+++ b/src/components/application_manager/src/commands/hmi/vi_is_ready_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ VIIsReadyResponse::~VIIsReadyResponse() {
}
void VIIsReadyResponse::Run() {
- LOG4CXX_INFO(logger_, "VIIsReadyResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
smart_objects::SmartObject& object = *message_;
bool is_available = false;
diff --git a/src/components/application_manager/src/commands/hmi/vi_read_did_request.cc b/src/components/application_manager/src/commands/hmi/vi_read_did_request.cc
index 1485b471c4..92a105dde4 100644
--- a/src/components/application_manager/src/commands/hmi/vi_read_did_request.cc
+++ b/src/components/application_manager/src/commands/hmi/vi_read_did_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ VIReadDIDRequest::~VIReadDIDRequest() {
}
void VIReadDIDRequest::Run() {
- LOG4CXX_INFO(logger_, "VIReadDIDRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/vi_read_did_response.cc b/src/components/application_manager/src/commands/hmi/vi_read_did_response.cc
index ddd9f3c540..675b944272 100644
--- a/src/components/application_manager/src/commands/hmi/vi_read_did_response.cc
+++ b/src/components/application_manager/src/commands/hmi/vi_read_did_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ VIReadDIDResponse::~VIReadDIDResponse() {
}
void VIReadDIDResponse::Run() {
- LOG4CXX_INFO(logger_, "VIReadDIDResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::VehicleInfo_ReadDID);
event.set_smart_object(*message_);
diff --git a/src/components/application_manager/src/commands/hmi/vi_subscribe_vehicle_data_request.cc b/src/components/application_manager/src/commands/hmi/vi_subscribe_vehicle_data_request.cc
index 38950a2a2b..5ad4daea94 100644
--- a/src/components/application_manager/src/commands/hmi/vi_subscribe_vehicle_data_request.cc
+++ b/src/components/application_manager/src/commands/hmi/vi_subscribe_vehicle_data_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ VISubscribeVehicleDataRequest::~VISubscribeVehicleDataRequest() {
}
void VISubscribeVehicleDataRequest::Run() {
- LOG4CXX_INFO(logger_, "VISubscribeVehicleDataRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/vi_subscribe_vehicle_data_response.cc b/src/components/application_manager/src/commands/hmi/vi_subscribe_vehicle_data_response.cc
index bd67294fbb..91d9c85382 100644
--- a/src/components/application_manager/src/commands/hmi/vi_subscribe_vehicle_data_response.cc
+++ b/src/components/application_manager/src/commands/hmi/vi_subscribe_vehicle_data_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ VISubscribeVehicleDataResponse::~VISubscribeVehicleDataResponse() {
}
void VISubscribeVehicleDataResponse::Run() {
- LOG4CXX_INFO(logger_, "VISubscribeVehicleDataResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(
hmi_apis::FunctionID::VehicleInfo_SubscribeVehicleData
);
diff --git a/src/components/application_manager/src/commands/hmi/vi_unsubscribe_vehicle_data_request.cc b/src/components/application_manager/src/commands/hmi/vi_unsubscribe_vehicle_data_request.cc
index 0af87c2a2e..7c12cbe6f1 100644
--- a/src/components/application_manager/src/commands/hmi/vi_unsubscribe_vehicle_data_request.cc
+++ b/src/components/application_manager/src/commands/hmi/vi_unsubscribe_vehicle_data_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ VIUnsubscribeVehicleDataRequest::~VIUnsubscribeVehicleDataRequest() {
}
void VIUnsubscribeVehicleDataRequest::Run() {
- LOG4CXX_INFO(logger_, "VIUnsubscribeVehicleDataRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/vi_unsubscribe_vehicle_data_response.cc b/src/components/application_manager/src/commands/hmi/vi_unsubscribe_vehicle_data_response.cc
index 22231b4a61..124b7dacbd 100644
--- a/src/components/application_manager/src/commands/hmi/vi_unsubscribe_vehicle_data_response.cc
+++ b/src/components/application_manager/src/commands/hmi/vi_unsubscribe_vehicle_data_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ VIUnsubscribeVehicleDataResponse::~VIUnsubscribeVehicleDataResponse() {
}
void VIUnsubscribeVehicleDataResponse::Run() {
- LOG4CXX_INFO(logger_, "VIUnsubscribeVehicleDataResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(
hmi_apis::FunctionID::VehicleInfo_UnsubscribeVehicleData
);
diff --git a/src/components/application_manager/src/commands/hmi/vr_add_command_request.cc b/src/components/application_manager/src/commands/hmi/vr_add_command_request.cc
index a74ece95da..c900df1678 100644
--- a/src/components/application_manager/src/commands/hmi/vr_add_command_request.cc
+++ b/src/components/application_manager/src/commands/hmi/vr_add_command_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ VRAddCommandRequest::~VRAddCommandRequest() {
}
void VRAddCommandRequest::Run() {
- LOG4CXX_INFO(logger_, "VRAddCommandRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/vr_add_command_response.cc b/src/components/application_manager/src/commands/hmi/vr_add_command_response.cc
index 513ccdace2..3d34b5c65a 100644
--- a/src/components/application_manager/src/commands/hmi/vr_add_command_response.cc
+++ b/src/components/application_manager/src/commands/hmi/vr_add_command_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ VRAddCommandResponse::~VRAddCommandResponse() {
}
void VRAddCommandResponse::Run() {
- LOG4CXX_INFO(logger_, "VRAddCommandResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::VR_AddCommand);
event.set_smart_object(*message_);
diff --git a/src/components/application_manager/src/commands/hmi/vr_change_registration_request.cc b/src/components/application_manager/src/commands/hmi/vr_change_registration_request.cc
index bd7c1e7841..fe8ee69021 100644
--- a/src/components/application_manager/src/commands/hmi/vr_change_registration_request.cc
+++ b/src/components/application_manager/src/commands/hmi/vr_change_registration_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ VRChangeRegistrationRequest::~VRChangeRegistrationRequest() {
}
void VRChangeRegistrationRequest::Run() {
- LOG4CXX_INFO(logger_, "VRChangeRegistrationRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/vr_change_registration_response.cc b/src/components/application_manager/src/commands/hmi/vr_change_registration_response.cc
index 92a36d23f6..5bd2fb853a 100644
--- a/src/components/application_manager/src/commands/hmi/vr_change_registration_response.cc
+++ b/src/components/application_manager/src/commands/hmi/vr_change_registration_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/src/commands/hmi/vr_delete_command_request.cc b/src/components/application_manager/src/commands/hmi/vr_delete_command_request.cc
index 0241be6308..e3052ae208 100644
--- a/src/components/application_manager/src/commands/hmi/vr_delete_command_request.cc
+++ b/src/components/application_manager/src/commands/hmi/vr_delete_command_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ VRDeleteCommandRequest::~VRDeleteCommandRequest() {
}
void VRDeleteCommandRequest::Run() {
- LOG4CXX_INFO(logger_, "VRDeleteCommandRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/vr_delete_command_response.cc b/src/components/application_manager/src/commands/hmi/vr_delete_command_response.cc
index c5a13126b0..8954b1d1b9 100644
--- a/src/components/application_manager/src/commands/hmi/vr_delete_command_response.cc
+++ b/src/components/application_manager/src/commands/hmi/vr_delete_command_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -46,7 +46,7 @@ VRDeleteCommandResponse::~VRDeleteCommandResponse() {
}
void VRDeleteCommandResponse::Run() {
- LOG4CXX_INFO(logger_, "VRDeleteCommandResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::VR_DeleteCommand);
event.set_smart_object(*message_);
diff --git a/src/components/application_manager/src/commands/hmi/vr_get_capabilities_request.cc b/src/components/application_manager/src/commands/hmi/vr_get_capabilities_request.cc
index 8b1d4ae0b4..58d0a4b3e4 100644
--- a/src/components/application_manager/src/commands/hmi/vr_get_capabilities_request.cc
+++ b/src/components/application_manager/src/commands/hmi/vr_get_capabilities_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ VRGetCapabilitiesRequest::~VRGetCapabilitiesRequest() {
}
void VRGetCapabilitiesRequest::Run() {
- LOG4CXX_INFO(logger_, "VRGetCapabilitiesRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/vr_get_capabilities_response.cc b/src/components/application_manager/src/commands/hmi/vr_get_capabilities_response.cc
index de6fdd7a93..5ca1d86190 100644
--- a/src/components/application_manager/src/commands/hmi/vr_get_capabilities_response.cc
+++ b/src/components/application_manager/src/commands/hmi/vr_get_capabilities_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ VRGetCapabilitiesResponse::~VRGetCapabilitiesResponse() {
}
void VRGetCapabilitiesResponse::Run() {
- LOG4CXX_INFO(logger_, "VRGetCapabilitiesResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
HMICapabilities& hmi_capabilities =
ApplicationManagerImpl::instance()->hmi_capabilities();
diff --git a/src/components/application_manager/src/commands/hmi/vr_get_language_request.cc b/src/components/application_manager/src/commands/hmi/vr_get_language_request.cc
index 9f4aeb9797..0b98979418 100644
--- a/src/components/application_manager/src/commands/hmi/vr_get_language_request.cc
+++ b/src/components/application_manager/src/commands/hmi/vr_get_language_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ VRGetLanguageRequest::~VRGetLanguageRequest() {
}
void VRGetLanguageRequest::Run() {
- LOG4CXX_INFO(logger_, "VRGetLanguageRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/vr_get_language_response.cc b/src/components/application_manager/src/commands/hmi/vr_get_language_response.cc
index acbd24fbbf..62127bdf9b 100644
--- a/src/components/application_manager/src/commands/hmi/vr_get_language_response.cc
+++ b/src/components/application_manager/src/commands/hmi/vr_get_language_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ VRGetLanguageResponse::~VRGetLanguageResponse() {
}
void VRGetLanguageResponse::Run() {
- LOG4CXX_INFO(logger_, "VRGetLanguageResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
HMICapabilities& hmi_capabilities =
ApplicationManagerImpl::instance()->hmi_capabilities();
diff --git a/src/components/application_manager/src/commands/hmi/vr_get_supported_languages_request.cc b/src/components/application_manager/src/commands/hmi/vr_get_supported_languages_request.cc
index e43d88430d..aea97da02d 100644
--- a/src/components/application_manager/src/commands/hmi/vr_get_supported_languages_request.cc
+++ b/src/components/application_manager/src/commands/hmi/vr_get_supported_languages_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ VRGetSupportedLanguagesRequest::~VRGetSupportedLanguagesRequest() {
}
void VRGetSupportedLanguagesRequest::Run() {
- LOG4CXX_INFO(logger_, "VRGetSupportedLanguagesRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/vr_get_supported_languages_response.cc b/src/components/application_manager/src/commands/hmi/vr_get_supported_languages_response.cc
index d2cc148a09..b1ea89a460 100644
--- a/src/components/application_manager/src/commands/hmi/vr_get_supported_languages_response.cc
+++ b/src/components/application_manager/src/commands/hmi/vr_get_supported_languages_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -47,7 +47,7 @@ VRGetSupportedLanguagesResponse::~VRGetSupportedLanguagesResponse() {
}
void VRGetSupportedLanguagesResponse::Run() {
- LOG4CXX_INFO(logger_, "VRGetSupportedLanguagesResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
const hmi_apis::Common_Result::eType code =
static_cast<hmi_apis::Common_Result::eType>(
diff --git a/src/components/application_manager/src/commands/hmi/vr_is_ready_request.cc b/src/components/application_manager/src/commands/hmi/vr_is_ready_request.cc
index 944cfcbb3c..a5a3a2b62e 100644
--- a/src/components/application_manager/src/commands/hmi/vr_is_ready_request.cc
+++ b/src/components/application_manager/src/commands/hmi/vr_is_ready_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ VRIsReadyRequest::~VRIsReadyRequest() {
}
void VRIsReadyRequest::Run() {
- LOG4CXX_INFO(logger_, "VRIsReadyRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/vr_is_ready_response.cc b/src/components/application_manager/src/commands/hmi/vr_is_ready_response.cc
index 8cf5e66ee7..a0de7ae33a 100644
--- a/src/components/application_manager/src/commands/hmi/vr_is_ready_response.cc
+++ b/src/components/application_manager/src/commands/hmi/vr_is_ready_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -44,7 +44,7 @@ VRIsReadyResponse::~VRIsReadyResponse() {
}
void VRIsReadyResponse::Run() {
- LOG4CXX_INFO(logger_, "VRIsReadyResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
smart_objects::SmartObject& object = *message_;
bool is_available = false;
diff --git a/src/components/application_manager/src/commands/hmi/vr_perform_interaction_request.cc b/src/components/application_manager/src/commands/hmi/vr_perform_interaction_request.cc
index 6de32dc5b5..1791bab57a 100644
--- a/src/components/application_manager/src/commands/hmi/vr_perform_interaction_request.cc
+++ b/src/components/application_manager/src/commands/hmi/vr_perform_interaction_request.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ VRPerformInteractionRequest::~VRPerformInteractionRequest() {
}
void VRPerformInteractionRequest::Run() {
- LOG4CXX_INFO(logger_, "VRPerformInteractionRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendRequest();
}
diff --git a/src/components/application_manager/src/commands/hmi/vr_perform_interaction_response.cc b/src/components/application_manager/src/commands/hmi/vr_perform_interaction_response.cc
index fea09b9f29..8fc22ce872 100644
--- a/src/components/application_manager/src/commands/hmi/vr_perform_interaction_response.cc
+++ b/src/components/application_manager/src/commands/hmi/vr_perform_interaction_response.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -45,7 +45,7 @@ VRPerformInteractionResponse::~VRPerformInteractionResponse() {
}
void VRPerformInteractionResponse::Run() {
- LOG4CXX_INFO(logger_, "VRPerformInteractionResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
event_engine::Event event(hmi_apis::FunctionID::VR_PerformInteraction);
event.set_smart_object(*message_);
event.raise();
diff --git a/src/components/application_manager/src/commands/mobile/add_command_request.cc b/src/components/application_manager/src/commands/mobile/add_command_request.cc
index 35cc619895..da44d0e7c4 100644
--- a/src/components/application_manager/src/commands/mobile/add_command_request.cc
+++ b/src/components/application_manager/src/commands/mobile/add_command_request.cc
@@ -56,13 +56,13 @@ AddCommandRequest::~AddCommandRequest() {
}
void AddCommandRequest::onTimeOut() {
- LOG4CXX_INFO(logger_, "AddCommandRequest::onTimeOut");
+ LOG4CXX_AUTO_TRACE(logger_);
RemoveCommand();
CommandRequestImpl::onTimeOut();
}
void AddCommandRequest::Run() {
- LOG4CXX_INFO(logger_, "AddCommandRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
(*message_)[strings::params][strings::connection_key].asUInt());
@@ -198,7 +198,8 @@ bool AddCommandRequest::CheckCommandName(ApplicationConstSharedPtr app) {
return false;
}
- const CommandsMap& commands = app->commands_map();
+ const DataAccessor<CommandsMap> accessor = app->commands_map();
+ const CommandsMap& commands = accessor.GetData();
CommandsMap::const_iterator i = commands.begin();
uint32_t saved_parent_id = 0;
uint32_t parent_id = 0;
@@ -235,7 +236,8 @@ bool AddCommandRequest::CheckCommandVRSynonym(ApplicationConstSharedPtr app) {
return false;
}
- const CommandsMap& commands = app->commands_map();
+ const DataAccessor<CommandsMap> accessor = app->commands_map();
+ const CommandsMap& commands = accessor.GetData();
CommandsMap::const_iterator it = commands.begin();
for (; commands.end() != it; ++it) {
@@ -284,10 +286,22 @@ bool AddCommandRequest::CheckCommandParentId(ApplicationConstSharedPtr app) {
}
void AddCommandRequest::on_event(const event_engine::Event& event) {
- LOG4CXX_INFO(logger_, "AddCommandRequest::on_event");
+ LOG4CXX_AUTO_TRACE(logger_);
const smart_objects::SmartObject& message = event.smart_object();
+ ApplicationSharedPtr application =
+ ApplicationManagerImpl::instance()->application(connection_key());
+
+ if (!application) {
+ LOG4CXX_ERROR(logger_, "NULL pointer");
+ return;
+ }
+
+ smart_objects::SmartObject msg_param(smart_objects::SmartType_Map);
+ msg_param[strings::cmd_id] = (*message_)[strings::msg_params][strings::cmd_id];
+ msg_param[strings::app_id] = application->app_id();
+
switch (event.id()) {
case hmi_apis::FunctionID::UI_AddCommand: {
LOG4CXX_INFO(logger_, "Received UI_AddCommand event");
@@ -296,8 +310,8 @@ void AddCommandRequest::on_event(const event_engine::Event& event) {
message[strings::params][hmi_response::code].asInt());
if (hmi_apis::Common_Result::SUCCESS != ui_result_) {
- (*message_)[strings::msg_params].erase(strings::menu_params);
- }
+ (*message_)[strings::msg_params].erase(strings::menu_params);
+ }
break;
}
case hmi_apis::FunctionID::VR_AddCommand: {
@@ -318,18 +332,18 @@ void AddCommandRequest::on_event(const event_engine::Event& event) {
}
if (!IsPendingResponseExist()) {
+
ApplicationSharedPtr application =
ApplicationManagerImpl::instance()->application(connection_key());
- if (!application) {
- LOG4CXX_ERROR(logger_, "NULL pointer");
- return;
- }
-
if (hmi_apis::Common_Result::REJECTED == ui_result_) {
RemoveCommand();
}
+ smart_objects::SmartObject msg_params(smart_objects::SmartType_Map);
+ msg_params[strings::cmd_id] = (*message_)[strings::msg_params][strings::cmd_id];
+ msg_params[strings::app_id] = application->app_id();
+
mobile_apis::Result::eType result_code = mobile_apis::Result::INVALID_ENUM;
bool result = ((hmi_apis::Common_Result::SUCCESS == ui_result_) &&
@@ -348,6 +362,39 @@ void AddCommandRequest::on_event(const event_engine::Event& event) {
std::max(ui_result_, vr_result_));
}
+ if (BothSend() && hmi_apis::Common_Result::SUCCESS == vr_result_) {
+ if (hmi_apis::Common_Result::SUCCESS != ui_result_ &&
+ hmi_apis::Common_Result::WARNINGS != ui_result_ &&
+ hmi_apis::Common_Result::UNSUPPORTED_RESOURCE != ui_result_) {
+
+ result_code =
+ (ui_result_ == hmi_apis::Common_Result::REJECTED) ?
+ mobile_apis::Result::REJECTED : mobile_apis::Result::GENERIC_ERROR;
+
+ msg_params[strings::grammar_id] = application->get_grammar_id();
+ msg_params[strings::type] = hmi_apis::Common_VRCommandType::Command;
+
+ SendHMIRequest(hmi_apis::FunctionID::VR_DeleteCommand, &msg_params);
+ application->RemoveCommand((*message_)[strings::msg_params]
+ [strings::cmd_id].asUInt());
+ result = false;
+ }
+ }
+
+ if(BothSend() && hmi_apis::Common_Result::SUCCESS == ui_result_ &&
+ hmi_apis::Common_Result::SUCCESS != vr_result_) {
+
+ result_code =
+ (vr_result_ == hmi_apis::Common_Result::REJECTED) ?
+ mobile_apis::Result::REJECTED : mobile_apis::Result::GENERIC_ERROR;
+
+ SendHMIRequest(hmi_apis::FunctionID::UI_DeleteCommand, &msg_params);
+
+ application->RemoveCommand((*message_)[strings::msg_params]
+ [strings::cmd_id].asUInt());
+ result = false;
+ }
+
SendResponse(result, result_code, NULL, &(message[strings::msg_params]));
if (true == result) {
application->UpdateHash();
@@ -360,7 +407,7 @@ bool AddCommandRequest::IsPendingResponseExist() {
}
bool AddCommandRequest::IsWhiteSpaceExist() {
- LOG4CXX_INFO(logger_, "AddCommandRequest::IsWhiteSpaceExist");
+ LOG4CXX_AUTO_TRACE(logger_);
const char* str = NULL;
if ((*message_)[strings::msg_params].keyExists(strings::menu_params)) {
@@ -397,16 +444,42 @@ bool AddCommandRequest::IsWhiteSpaceExist() {
return false;
}
+bool AddCommandRequest::BothSend() const {
+ return send_vr_ && send_ui_;
+}
+
void AddCommandRequest::RemoveCommand() {
- LOG4CXX_INFO(logger_, "AddCommandRequest::RemoveCommand");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
connection_key());
if (!app.valid()) {
LOG4CXX_ERROR(logger_, "No application associated with session key");
return;
}
+
+ smart_objects::SmartObject msg_params(smart_objects::SmartType_Map);
+ msg_params[strings::cmd_id] = (*message_)[strings::msg_params][strings::cmd_id];
+ msg_params[strings::app_id] = app->app_id();
+
app->RemoveCommand((*message_)[strings::msg_params]
[strings::cmd_id].asUInt());
+
+ if (BothSend() && !(is_vr_received_ || is_ui_received_)) {
+ // in case we have send bth UI and VR and no one respond
+ // we have nothing to remove from HMI so no DeleteCommand expected
+ return;
+ }
+
+ if (BothSend() && !is_vr_received_) {
+ SendHMIRequest(hmi_apis::FunctionID::UI_DeleteCommand, &msg_params);
+ }
+
+ if (BothSend() && !is_ui_received_) {
+ msg_params[strings::grammar_id] = app->get_grammar_id();
+ msg_params[strings::type] = hmi_apis::Common_VRCommandType::Command;
+ SendHMIRequest(hmi_apis::FunctionID::VR_DeleteCommand, &msg_params);
+ }
+
}
} // namespace commands
diff --git a/src/components/application_manager/src/commands/mobile/add_command_response.cc b/src/components/application_manager/src/commands/mobile/add_command_response.cc
index 0c135af076..51684c065b 100644
--- a/src/components/application_manager/src/commands/mobile/add_command_response.cc
+++ b/src/components/application_manager/src/commands/mobile/add_command_response.cc
@@ -46,7 +46,7 @@ AddCommandResponse::~AddCommandResponse() {
}
void AddCommandResponse::Run() {
- LOG4CXX_INFO(logger_, "AddCommandResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
}
diff --git a/src/components/application_manager/src/commands/mobile/add_sub_menu_request.cc b/src/components/application_manager/src/commands/mobile/add_sub_menu_request.cc
index ce6fa3fc51..7e0e6aeca4 100644
--- a/src/components/application_manager/src/commands/mobile/add_sub_menu_request.cc
+++ b/src/components/application_manager/src/commands/mobile/add_sub_menu_request.cc
@@ -47,7 +47,7 @@ AddSubMenuRequest::~AddSubMenuRequest() {
}
void AddSubMenuRequest::Run() {
- LOG4CXX_INFO(logger_, "AddSubMenuRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
(*message_)[strings::params][strings::connection_key].asUInt());
@@ -95,7 +95,7 @@ void AddSubMenuRequest::Run() {
}
void AddSubMenuRequest::on_event(const event_engine::Event& event) {
- LOG4CXX_INFO(logger_, "AddSubMenuRequest::on_event");
+ LOG4CXX_AUTO_TRACE(logger_);
const smart_objects::SmartObject& message = event.smart_object();
switch (event.id()) {
diff --git a/src/components/application_manager/src/commands/mobile/add_sub_menu_response.cc b/src/components/application_manager/src/commands/mobile/add_sub_menu_response.cc
index bcd7df2888..ff37a6a998 100644
--- a/src/components/application_manager/src/commands/mobile/add_sub_menu_response.cc
+++ b/src/components/application_manager/src/commands/mobile/add_sub_menu_response.cc
@@ -47,7 +47,7 @@ AddSubMenuResponse::~AddSubMenuResponse() {
}
void AddSubMenuResponse::Run() {
- LOG4CXX_INFO(logger_, "AddSubMenuResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
}
diff --git a/src/components/application_manager/src/commands/mobile/alert_maneuver_request.cc b/src/components/application_manager/src/commands/mobile/alert_maneuver_request.cc
index abb5bc7f3c..77d2211157 100644
--- a/src/components/application_manager/src/commands/mobile/alert_maneuver_request.cc
+++ b/src/components/application_manager/src/commands/mobile/alert_maneuver_request.cc
@@ -52,7 +52,7 @@ AlertManeuverRequest::~AlertManeuverRequest() {
}
void AlertManeuverRequest::Run() {
- LOG4CXX_INFO(logger_, "AlertManeuverRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
if ((!(*message_)[strings::msg_params].keyExists(strings::soft_buttons)) &&
(!(*message_)[strings::msg_params].keyExists(strings::tts_chunks))) {
@@ -127,7 +127,7 @@ void AlertManeuverRequest::Run() {
}
void AlertManeuverRequest::on_event(const event_engine::Event& event) {
- LOG4CXX_INFO(logger_, "AlertManeuverRequest::on_event");
+ LOG4CXX_AUTO_TRACE(logger_);
const smart_objects::SmartObject& message = event.smart_object();
mobile_apis::Result::eType result_code = mobile_apis::Result::INVALID_ENUM;
@@ -206,7 +206,7 @@ void AlertManeuverRequest::on_event(const event_engine::Event& event) {
}
bool AlertManeuverRequest::IsWhiteSpaceExist() {
- LOG4CXX_INFO(logger_, "AlertManeuverRequest::IsWhiteSpaceExist");
+ LOG4CXX_AUTO_TRACE(logger_);
const char* str = NULL;
if ((*message_)[strings::msg_params].keyExists(strings::tts_chunks)) {
diff --git a/src/components/application_manager/src/commands/mobile/alert_maneuver_response.cc b/src/components/application_manager/src/commands/mobile/alert_maneuver_response.cc
index 99fcde69a8..8f9c73267f 100644
--- a/src/components/application_manager/src/commands/mobile/alert_maneuver_response.cc
+++ b/src/components/application_manager/src/commands/mobile/alert_maneuver_response.cc
@@ -47,7 +47,7 @@ AlertManeuverResponse::~AlertManeuverResponse() {
}
void AlertManeuverResponse::Run() {
- LOG4CXX_INFO(logger_, "AlertManeuverResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
}
diff --git a/src/components/application_manager/src/commands/mobile/alert_request.cc b/src/components/application_manager/src/commands/mobile/alert_request.cc
index c08b7c32d7..ccabe4e177 100644
--- a/src/components/application_manager/src/commands/mobile/alert_request.cc
+++ b/src/components/application_manager/src/commands/mobile/alert_request.cc
@@ -84,7 +84,7 @@ bool AlertRequest::Init() {
}
void AlertRequest::Run() {
- LOG4CXX_INFO(logger_, "AlertRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
uint32_t app_id = (*message_)[strings::params][strings::connection_key]
.asInt();
@@ -116,7 +116,7 @@ void AlertRequest::onTimeOut() {
}
void AlertRequest::on_event(const event_engine::Event& event) {
- LOG4CXX_INFO(logger_, "AlertRequest::on_event");
+ LOG4CXX_AUTO_TRACE(logger_);
const smart_objects::SmartObject& message = event.smart_object();
switch (event.id()) {
@@ -198,20 +198,12 @@ void AlertRequest::on_event(const event_engine::Event& event) {
response_success_ = true;
}
- // If timeout is not set, watchdog will not track request timeout and
- // HMI is responsible for response returning. In this case, if ABORTED will
- // be rerurned from HMI, success should be sent to mobile.
- if (mobile_apis::Result::ABORTED == response_result_ &&
- 0 == default_timeout_) {
- response_success_ = true;
- }
-
- if (mobile_apis::Result::ABORTED == tts_speak_response_ &&
+ if (((mobile_apis::Result::ABORTED == tts_speak_response_ )||
+ (mobile_apis::Result::REJECTED == tts_speak_response_)) &&
(!flag_other_component_sent_)) {
response_success_ = false;
response_result_ = tts_speak_response_;
}
-
SendResponse(response_success_, response_result_,
response_info.empty() ? NULL : response_info.c_str(),
&response_params_);
@@ -332,39 +324,38 @@ void AlertRequest::SendAlertRequest(int32_t app_id) {
}
void AlertRequest::SendSpeakRequest(int32_t app_id) {
-
+ using namespace hmi_apis;
+ using namespace smart_objects;
// crate HMI speak request
- smart_objects::SmartObject msg_params = smart_objects::SmartObject(
- smart_objects::SmartType_Map);
+ SmartObject msg_params = smart_objects::SmartObject(SmartType_Map);
- msg_params[hmi_request::tts_chunks] = smart_objects::SmartObject(
- smart_objects::SmartType_Array);
+ msg_params[hmi_request::tts_chunks] = smart_objects::SmartObject(SmartType_Array);
msg_params[hmi_request::tts_chunks] =
(*message_)[strings::msg_params][strings::tts_chunks];
msg_params[strings::app_id] = app_id;
- msg_params[hmi_request::speak_type] =
- hmi_apis::Common_SpeakType::ALERT;
- SendHMIRequest(hmi_apis::FunctionID::TTS_Speak, &msg_params, true);
+ msg_params[hmi_request::speak_type] = Common_MethodName::ALERT;
+ SendHMIRequest(FunctionID::TTS_Speak, &msg_params, true);
}
void AlertRequest::SendPlayToneNotification(int32_t app_id) {
- LOG4CXX_INFO(logger_, "AlertRequest::SendPlayToneNotification");
+ LOG4CXX_AUTO_TRACE(logger_);
+ using namespace hmi_apis;
+ using namespace smart_objects;
// check playtone parameter
if ((*message_)[strings::msg_params].keyExists(strings::play_tone)) {
if ((*message_)[strings::msg_params][strings::play_tone].asBool()) {
// crate HMI basic communication playtone request
- smart_objects::SmartObject msg_params = smart_objects::SmartObject(
- smart_objects::SmartType_Map);
-
- CreateHMINotification(hmi_apis::FunctionID::BasicCommunication_PlayTone,
- msg_params);
+ SmartObject msg_params = smart_objects::SmartObject(SmartType_Map);
+ msg_params[strings::app_id] = app_id;
+ msg_params[strings::method_name] = Common_MethodName::ALERT;
+ CreateHMINotification(FunctionID::BasicCommunication_PlayTone, msg_params);
}
}
}
bool AlertRequest::CheckStringsOfAlertRequest() {
- LOG4CXX_INFO(logger_, "AlertRequest::CheckStringsOfAlertRequest");
+ LOG4CXX_AUTO_TRACE(logger_);
const char* str = NULL;
if ((*message_)[strings::msg_params].keyExists(strings::alert_text1)) {
diff --git a/src/components/application_manager/src/commands/mobile/alert_response.cc b/src/components/application_manager/src/commands/mobile/alert_response.cc
index 5b8cd6557b..dac086a8b1 100644
--- a/src/components/application_manager/src/commands/mobile/alert_response.cc
+++ b/src/components/application_manager/src/commands/mobile/alert_response.cc
@@ -49,7 +49,7 @@ AlertResponse::~AlertResponse() {
}
void AlertResponse::Run() {
- LOG4CXX_INFO(logger_, "AlertResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
}
diff --git a/src/components/application_manager/src/commands/mobile/change_registration_request.cc b/src/components/application_manager/src/commands/mobile/change_registration_request.cc
index 9780aad7bb..89b2dbaf00 100644
--- a/src/components/application_manager/src/commands/mobile/change_registration_request.cc
+++ b/src/components/application_manager/src/commands/mobile/change_registration_request.cc
@@ -55,7 +55,7 @@ ChangeRegistrationRequest::~ChangeRegistrationRequest() {
}
void ChangeRegistrationRequest::Run() {
- LOG4CXX_INFO(logger_, "ChangeRegistrationRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl* instance = ApplicationManagerImpl::instance();
const HMICapabilities& hmi_capabilities = instance->hmi_capabilities();
@@ -166,19 +166,19 @@ void ChangeRegistrationRequest::Run() {
&tts_params, true);
}
-bool ChangeRegistrationRequest::WasAnySuccess(
+bool ChangeRegistrationRequest::AllHmiResponsesSuccess(
const hmi_apis::Common_Result::eType ui,
const hmi_apis::Common_Result::eType vr,
const hmi_apis::Common_Result::eType tts) {
return
- hmi_apis::Common_Result::SUCCESS == ui ||
- hmi_apis::Common_Result::SUCCESS == vr ||
+ hmi_apis::Common_Result::SUCCESS == ui &&
+ hmi_apis::Common_Result::SUCCESS == vr &&
hmi_apis::Common_Result::SUCCESS == tts;
}
void ChangeRegistrationRequest::on_event(const event_engine::Event& event) {
- LOG4CXX_INFO(logger_, "ChangeRegistrationRequest::on_event");
+ LOG4CXX_AUTO_TRACE(logger_);
const smart_objects::SmartObject& message = event.smart_object();
hmi_apis::FunctionID::eType event_id = event.id();
@@ -237,7 +237,7 @@ void ChangeRegistrationRequest::on_event(const event_engine::Event& event) {
(*message_)[strings::params][strings::function_id] =
mobile_apis::FunctionID::eType::ChangeRegistrationID;
- SendResponse(WasAnySuccess(ui_result_, vr_result_, tts_result_),
+ SendResponse(AllHmiResponsesSuccess(ui_result_, vr_result_, tts_result_),
static_cast<mobile_apis::Result::eType>(greates_result_code),
NULL, &(message[strings::msg_params]));
} else {
@@ -374,21 +374,20 @@ bool ChangeRegistrationRequest::IsWhiteSpaceExist() {
}
mobile_apis::Result::eType ChangeRegistrationRequest::CheckCoincidence() {
- LOG4CXX_INFO(logger_, "ChangeRegistrationRequest::CheckCoincidence");
+ LOG4CXX_AUTO_TRACE(logger_);
const smart_objects::SmartObject& msg_params =
(*message_)[strings::msg_params];
ApplicationManagerImpl::ApplicationListAccessor accessor;
- const std::set<ApplicationSharedPtr> applications = accessor.applications();
- std::set<ApplicationSharedPtr>::const_iterator it = applications.begin();
std::string app_name;
uint32_t app_id = connection_key();
if (msg_params.keyExists(strings::app_name)) {
app_name = msg_params[strings::app_name].asString();
}
- for (; applications.end() != it; ++it) {
+ ApplicationManagerImpl::ApplictionSetConstIt it = accessor.begin();
+ for (; accessor.end() != it; ++it) {
if (app_id == (*it)->app_id()) {
continue;
}
diff --git a/src/components/application_manager/src/commands/mobile/change_registration_response.cc b/src/components/application_manager/src/commands/mobile/change_registration_response.cc
index 13c926ec82..557614f173 100644
--- a/src/components/application_manager/src/commands/mobile/change_registration_response.cc
+++ b/src/components/application_manager/src/commands/mobile/change_registration_response.cc
@@ -47,7 +47,7 @@ ChangeRegistrationResponse::~ChangeRegistrationResponse() {
}
void ChangeRegistrationResponse::Run() {
- LOG4CXX_INFO(logger_, "ChangeRegistrationResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
}
diff --git a/src/components/application_manager/src/commands/mobile/create_interaction_choice_set_request.cc b/src/components/application_manager/src/commands/mobile/create_interaction_choice_set_request.cc
index 583f0a0460..e980068fd7 100644
--- a/src/components/application_manager/src/commands/mobile/create_interaction_choice_set_request.cc
+++ b/src/components/application_manager/src/commands/mobile/create_interaction_choice_set_request.cc
@@ -53,7 +53,7 @@ CreateInteractionChoiceSetRequest::~CreateInteractionChoiceSetRequest() {
}
void CreateInteractionChoiceSetRequest::Run() {
- LOG4CXX_INFO(logger_, "CreateInteractionChoiceSetRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
(*message_)[strings::params][strings::connection_key].asUInt());
@@ -114,7 +114,7 @@ void CreateInteractionChoiceSetRequest::Run() {
mobile_apis::Result::eType CreateInteractionChoiceSetRequest::CheckChoiceSet(
ApplicationConstSharedPtr app) {
- LOG4CXX_INFO(logger_, "CreateInteractionChoiceSetRequest::CheckChoiceSet");
+ LOG4CXX_AUTO_TRACE(logger_);
const smart_objects::SmartArray* new_choice_set_array =
(*message_)[strings::msg_params][strings::choice_set].asArray();
@@ -141,7 +141,8 @@ mobile_apis::Result::eType CreateInteractionChoiceSetRequest::CheckChoiceSet(
}
// Check new choice set params along with already registered choice sets
- const ChoiceSetMap& app_choice_set_map = app->choice_set_map();
+ const DataAccessor<ChoiceSetMap> accessor = app->choice_set_map();
+ const ChoiceSetMap& app_choice_set_map = accessor.GetData();
ChoiceSetMap::const_iterator it = app_choice_set_map.begin();
ChoiceSetMap::const_iterator itEnd = app_choice_set_map.end();
for (; it != itEnd; ++it) {
@@ -257,7 +258,7 @@ bool CreateInteractionChoiceSetRequest::compareStr(
bool CreateInteractionChoiceSetRequest::IsWhiteSpaceExist(
const smart_objects::SmartObject& choice_set) {
- LOG4CXX_INFO(logger_, "CreateInteractionChoiceSetRequest::IsWhiteSpaceExist");
+ LOG4CXX_AUTO_TRACE(logger_);
const char* str = NULL;
str = choice_set[strings::menu_name].asCharArray();
@@ -316,21 +317,21 @@ bool CreateInteractionChoiceSetRequest::IsWhiteSpaceExist(
void CreateInteractionChoiceSetRequest::SendVRAddCommandRequest(
application_manager::ApplicationSharedPtr const app) {
- smart_objects::SmartObject* choice_set = &(*message_)[strings::msg_params];
+ smart_objects::SmartObject& choice_set = (*message_)[strings::msg_params];
- for (size_t j = 0; j < (*choice_set)[strings::choice_set].length(); ++j) {
+ for (size_t j = 0; j < choice_set[strings::choice_set].length(); ++j) {
smart_objects::SmartObject msg_params = smart_objects::SmartObject(
smart_objects::SmartType_Map);
msg_params[strings::app_id] = app->app_id();
msg_params[strings::cmd_id] =
- (*choice_set)[strings::choice_set][j][strings::choice_id];
+ choice_set[strings::choice_set][j][strings::choice_id];
msg_params[strings::vr_commands] = smart_objects::SmartObject(
smart_objects::SmartType_Array);
msg_params[strings::vr_commands] =
- (*choice_set)[strings::choice_set][j][strings::vr_commands];
+ choice_set[strings::choice_set][j][strings::vr_commands];
msg_params[strings::type] = hmi_apis::Common_VRCommandType::Choice;
- msg_params[strings::grammar_id] = (*choice_set)[strings::grammar_id];
+ msg_params[strings::grammar_id] = choice_set[strings::grammar_id];
SendHMIRequest(hmi_apis::FunctionID::VR_AddCommand, &msg_params);
}
diff --git a/src/components/application_manager/src/commands/mobile/create_interaction_choice_set_response.cc b/src/components/application_manager/src/commands/mobile/create_interaction_choice_set_response.cc
index 8d6ea1b348..bc81206088 100644
--- a/src/components/application_manager/src/commands/mobile/create_interaction_choice_set_response.cc
+++ b/src/components/application_manager/src/commands/mobile/create_interaction_choice_set_response.cc
@@ -49,7 +49,7 @@ CreateInteractionChoiceSetResponse::~CreateInteractionChoiceSetResponse() {
}
void CreateInteractionChoiceSetResponse::Run() {
- LOG4CXX_INFO(logger_, "CreateInteractionChoiceSetResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
// check if response false
if (true == (*message_)[strings::msg_params].keyExists(strings::success)) {
diff --git a/src/components/application_manager/src/commands/mobile/delete_command_request.cc b/src/components/application_manager/src/commands/mobile/delete_command_request.cc
index 3c3ee88203..e76422d50e 100644
--- a/src/components/application_manager/src/commands/mobile/delete_command_request.cc
+++ b/src/components/application_manager/src/commands/mobile/delete_command_request.cc
@@ -55,7 +55,7 @@ DeleteCommandRequest::~DeleteCommandRequest() {
}
void DeleteCommandRequest::Run() {
- LOG4CXX_INFO(logger_, "DeleteCommandRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr application = ApplicationManagerImpl::instance()->application(
(*message_)[strings::params][strings::connection_key].asUInt());
@@ -109,7 +109,7 @@ void DeleteCommandRequest::Run() {
}
void DeleteCommandRequest::on_event(const event_engine::Event& event) {
- LOG4CXX_INFO(logger_, "DeleteCommandRequest::on_event");
+ LOG4CXX_AUTO_TRACE(logger_);
const smart_objects::SmartObject& message = event.smart_object();
switch (event.id()) {
diff --git a/src/components/application_manager/src/commands/mobile/delete_command_response.cc b/src/components/application_manager/src/commands/mobile/delete_command_response.cc
index 812e587430..75178bcb4d 100644
--- a/src/components/application_manager/src/commands/mobile/delete_command_response.cc
+++ b/src/components/application_manager/src/commands/mobile/delete_command_response.cc
@@ -46,7 +46,7 @@ DeleteCommandResponse::~DeleteCommandResponse() {
}
void DeleteCommandResponse::Run() {
- LOG4CXX_INFO(logger_, "DeleteCommandResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
}
diff --git a/src/components/application_manager/src/commands/mobile/delete_file_request.cc b/src/components/application_manager/src/commands/mobile/delete_file_request.cc
index ca5a4395fc..4c753871ce 100644
--- a/src/components/application_manager/src/commands/mobile/delete_file_request.cc
+++ b/src/components/application_manager/src/commands/mobile/delete_file_request.cc
@@ -49,7 +49,7 @@ DeleteFileRequest::~DeleteFileRequest() {
}
void DeleteFileRequest::Run() {
- LOG4CXX_INFO(logger_, "DeleteFileRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr application =
ApplicationManagerImpl::instance()->application(connection_key());
diff --git a/src/components/application_manager/src/commands/mobile/delete_file_response.cc b/src/components/application_manager/src/commands/mobile/delete_file_response.cc
index 81470ccf6b..1bbb18313f 100644
--- a/src/components/application_manager/src/commands/mobile/delete_file_response.cc
+++ b/src/components/application_manager/src/commands/mobile/delete_file_response.cc
@@ -47,7 +47,7 @@ DeleteFileResponse::~DeleteFileResponse() {
}
void DeleteFileResponse::Run() {
- LOG4CXX_INFO(logger_, "DeleteFileResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
uint32_t app_id = (*message_)[strings::params][strings::connection_key]
.asUInt();
ApplicationSharedPtr app =
diff --git a/src/components/application_manager/src/commands/mobile/delete_interaction_choice_set_request.cc b/src/components/application_manager/src/commands/mobile/delete_interaction_choice_set_request.cc
index 1fcd4b33d8..6c61bfd2a2 100644
--- a/src/components/application_manager/src/commands/mobile/delete_interaction_choice_set_request.cc
+++ b/src/components/application_manager/src/commands/mobile/delete_interaction_choice_set_request.cc
@@ -50,7 +50,7 @@ DeleteInteractionChoiceSetRequest::~DeleteInteractionChoiceSetRequest() {
}
void DeleteInteractionChoiceSetRequest::Run() {
- LOG4CXX_INFO(logger_, "DeleteInteractionChoiceSetRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
(*message_)[strings::params][strings::connection_key].asUInt());
@@ -94,8 +94,9 @@ void DeleteInteractionChoiceSetRequest::Run() {
bool DeleteInteractionChoiceSetRequest::ChoiceSetInUse(ApplicationConstSharedPtr app) {
if (app->is_perform_interaction_active()) {
// retrieve stored choice sets for perform interaction
- const PerformChoiceSetMap& choice_set_map = app
- ->performinteraction_choice_set_map();
+ const DataAccessor<PerformChoiceSetMap> accessor =
+ app->performinteraction_choice_set_map();
+ const PerformChoiceSetMap& choice_set_map = accessor.GetData();
PerformChoiceSetMap::const_iterator it = choice_set_map.begin();
for (; choice_set_map.end() != it; ++it) {
diff --git a/src/components/application_manager/src/commands/mobile/delete_interaction_choice_set_response.cc b/src/components/application_manager/src/commands/mobile/delete_interaction_choice_set_response.cc
index d260add7cc..f9ee513b94 100644
--- a/src/components/application_manager/src/commands/mobile/delete_interaction_choice_set_response.cc
+++ b/src/components/application_manager/src/commands/mobile/delete_interaction_choice_set_response.cc
@@ -50,7 +50,7 @@ DeleteInteractionChoiceSetResponse::~DeleteInteractionChoiceSetResponse() {
}
void DeleteInteractionChoiceSetResponse::Run() {
- LOG4CXX_INFO(logger_, "DeleteInteractionChoiceSetResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
// check if response false
if (true == (*message_)[strings::msg_params].keyExists(strings::success)) {
diff --git a/src/components/application_manager/src/commands/mobile/delete_sub_menu_request.cc b/src/components/application_manager/src/commands/mobile/delete_sub_menu_request.cc
index d91e742687..6b6bd3fbda 100644
--- a/src/components/application_manager/src/commands/mobile/delete_sub_menu_request.cc
+++ b/src/components/application_manager/src/commands/mobile/delete_sub_menu_request.cc
@@ -48,7 +48,7 @@ DeleteSubMenuRequest::~DeleteSubMenuRequest() {
}
void DeleteSubMenuRequest::Run() {
- LOG4CXX_INFO(logger_, "DeleteSubMenuRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
(*message_)[strings::params][strings::connection_key].asUInt());
@@ -77,9 +77,10 @@ void DeleteSubMenuRequest::Run() {
}
void DeleteSubMenuRequest::DeleteSubMenuVRCommands(ApplicationConstSharedPtr app) {
- LOG4CXX_INFO(logger_, "DeleteSubMenuRequest::DeleteSubMenuVRCommands");
+ LOG4CXX_AUTO_TRACE(logger_);
- const CommandsMap& commands = app->commands_map();
+ const DataAccessor<CommandsMap> accessor = app->commands_map();
+ const CommandsMap& commands = accessor.GetData();
CommandsMap::const_iterator it = commands.begin();
for (; commands.end() != it; ++it) {
@@ -104,14 +105,16 @@ void DeleteSubMenuRequest::DeleteSubMenuVRCommands(ApplicationConstSharedPtr app
}
void DeleteSubMenuRequest::DeleteSubMenuUICommands(ApplicationSharedPtr const app) {
- LOG4CXX_INFO(logger_, "DeleteSubMenuRequest::DeleteSubMenuUICommands");
+ LOG4CXX_AUTO_TRACE(logger_);
- const CommandsMap& commands = app->commands_map();
+ const DataAccessor<CommandsMap> accessor(app->commands_map());
+ const CommandsMap& commands = accessor.GetData();
CommandsMap::const_iterator it = commands.begin();
while (commands.end() != it) {
-
if (!(*it->second).keyExists(strings::menu_params)) {
+ LOG4CXX_ERROR(logger_, "menu_params not exist");
+ ++it;
continue;
}
@@ -122,9 +125,7 @@ void DeleteSubMenuRequest::DeleteSubMenuUICommands(ApplicationSharedPtr const ap
smart_objects::SmartType_Map);
msg_params[strings::app_id] = app->app_id();
msg_params[strings::cmd_id] = (*it->second)[strings::cmd_id].asInt();
-
app->RemoveCommand((*it->second)[strings::cmd_id].asInt());
-
it = commands.begin(); // Can not relay on
// iterators after erase was called
@@ -136,7 +137,7 @@ void DeleteSubMenuRequest::DeleteSubMenuUICommands(ApplicationSharedPtr const ap
}
void DeleteSubMenuRequest::on_event(const event_engine::Event& event) {
- LOG4CXX_INFO(logger_, "DeleteSubMenuRequest::on_event");
+ LOG4CXX_AUTO_TRACE(logger_);
const smart_objects::SmartObject& message = event.smart_object();
switch (event.id()) {
diff --git a/src/components/application_manager/src/commands/mobile/delete_sub_menu_response.cc b/src/components/application_manager/src/commands/mobile/delete_sub_menu_response.cc
index 0a25a11610..05795e5908 100644
--- a/src/components/application_manager/src/commands/mobile/delete_sub_menu_response.cc
+++ b/src/components/application_manager/src/commands/mobile/delete_sub_menu_response.cc
@@ -46,7 +46,7 @@ DeleteSubMenuResponse::~DeleteSubMenuResponse() {
}
void DeleteSubMenuResponse::Run() {
- LOG4CXX_INFO(logger_, "DeleteSubMenuResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
diff --git a/src/components/application_manager/src/commands/mobile/diagnostic_message_request.cc b/src/components/application_manager/src/commands/mobile/diagnostic_message_request.cc
index 75016c05fb..7b5cf5fd9a 100644
--- a/src/components/application_manager/src/commands/mobile/diagnostic_message_request.cc
+++ b/src/components/application_manager/src/commands/mobile/diagnostic_message_request.cc
@@ -48,7 +48,7 @@ DiagnosticMessageRequest::~DiagnosticMessageRequest() {
}
void DiagnosticMessageRequest::Run() {
- LOG4CXX_INFO(logger_, "DiagnosticMessageRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
connection_key());
@@ -68,7 +68,7 @@ void DiagnosticMessageRequest::Run() {
}
void DiagnosticMessageRequest::on_event(const event_engine::Event& event) {
- LOG4CXX_INFO(logger_, "DiagnosticMessageRequest::on_event");
+ LOG4CXX_AUTO_TRACE(logger_);
const smart_objects::SmartObject& message = event.smart_object();
switch (event.id()) {
diff --git a/src/components/application_manager/src/commands/mobile/diagnostic_message_response.cc b/src/components/application_manager/src/commands/mobile/diagnostic_message_response.cc
index 2a8b234fff..9c399a00c8 100644
--- a/src/components/application_manager/src/commands/mobile/diagnostic_message_response.cc
+++ b/src/components/application_manager/src/commands/mobile/diagnostic_message_response.cc
@@ -46,7 +46,7 @@ DiagnosticMessageResponse::~DiagnosticMessageResponse() {
}
void DiagnosticMessageResponse::Run() {
- LOG4CXX_INFO(logger_, "DiagnosticMessageResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
}
diff --git a/src/components/application_manager/src/commands/mobile/dial_number_request.cc b/src/components/application_manager/src/commands/mobile/dial_number_request.cc
index 140f43128d..749b19a520 100644
--- a/src/components/application_manager/src/commands/mobile/dial_number_request.cc
+++ b/src/components/application_manager/src/commands/mobile/dial_number_request.cc
@@ -47,7 +47,7 @@ DialNumberRequest::~DialNumberRequest() {
}
void DialNumberRequest::Run() {
- LOG4CXX_INFO(logger_, "DialNumberRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendResponse(false, mobile_apis::Result::UNSUPPORTED_REQUEST);
}
diff --git a/src/components/application_manager/src/commands/mobile/end_audio_pass_thru_request.cc b/src/components/application_manager/src/commands/mobile/end_audio_pass_thru_request.cc
index eedc9f813e..78a867a6d8 100644
--- a/src/components/application_manager/src/commands/mobile/end_audio_pass_thru_request.cc
+++ b/src/components/application_manager/src/commands/mobile/end_audio_pass_thru_request.cc
@@ -47,13 +47,13 @@ EndAudioPassThruRequest::~EndAudioPassThruRequest() {
}
void EndAudioPassThruRequest::Run() {
- LOG4CXX_INFO(logger_, "EndAudioPassThruRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendHMIRequest(hmi_apis::FunctionID::UI_EndAudioPassThru, NULL, true);
}
void EndAudioPassThruRequest::on_event(const event_engine::Event& event) {
- LOG4CXX_INFO(logger_, "EndAudioPassThruRequest::on_event");
+ LOG4CXX_AUTO_TRACE(logger_);
const smart_objects::SmartObject& message = event.smart_object();
switch (event.id()) {
diff --git a/src/components/application_manager/src/commands/mobile/end_audio_pass_thru_response.cc b/src/components/application_manager/src/commands/mobile/end_audio_pass_thru_response.cc
index 128d921f9f..0ac1a00bd4 100644
--- a/src/components/application_manager/src/commands/mobile/end_audio_pass_thru_response.cc
+++ b/src/components/application_manager/src/commands/mobile/end_audio_pass_thru_response.cc
@@ -47,7 +47,7 @@ EndAudioPassThruResponse::~EndAudioPassThruResponse() {
}
void EndAudioPassThruResponse::Run() {
- LOG4CXX_INFO(logger_, "EndAudioPassThruResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
}
diff --git a/src/components/application_manager/src/commands/mobile/get_dtcs_request.cc b/src/components/application_manager/src/commands/mobile/get_dtcs_request.cc
index 9a81f94db1..8e2a0222f7 100644
--- a/src/components/application_manager/src/commands/mobile/get_dtcs_request.cc
+++ b/src/components/application_manager/src/commands/mobile/get_dtcs_request.cc
@@ -48,7 +48,7 @@ GetDTCsRequest::~GetDTCsRequest() {
}
void GetDTCsRequest::Run() {
- LOG4CXX_INFO(logger_, "GetDTCsRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
(*message_)[strings::params][strings::connection_key].asUInt());
@@ -82,7 +82,7 @@ void GetDTCsRequest::Run() {
}
void GetDTCsRequest::on_event(const event_engine::Event& event) {
- LOG4CXX_INFO(logger_, "GetDTCsRequest::on_event");
+ LOG4CXX_AUTO_TRACE(logger_);
const smart_objects::SmartObject& message = event.smart_object();
switch (event.id()) {
diff --git a/src/components/application_manager/src/commands/mobile/get_dtcs_response.cc b/src/components/application_manager/src/commands/mobile/get_dtcs_response.cc
index 2ed7a92952..523711c975 100644
--- a/src/components/application_manager/src/commands/mobile/get_dtcs_response.cc
+++ b/src/components/application_manager/src/commands/mobile/get_dtcs_response.cc
@@ -46,7 +46,7 @@ GetDTCsResponse::~GetDTCsResponse() {
}
void GetDTCsResponse::Run() {
- LOG4CXX_INFO(logger_, "GetDTCsResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
}
diff --git a/src/components/application_manager/src/commands/mobile/get_vehicle_data_request.cc b/src/components/application_manager/src/commands/mobile/get_vehicle_data_request.cc
index a3d08a15ff..546b14853c 100644
--- a/src/components/application_manager/src/commands/mobile/get_vehicle_data_request.cc
+++ b/src/components/application_manager/src/commands/mobile/get_vehicle_data_request.cc
@@ -54,7 +54,7 @@ GetVehicleDataRequest::~GetVehicleDataRequest() {
}
void GetVehicleDataRequest::Run() {
- LOG4CXX_INFO(logger_, "GetVehicleDataRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
int32_t app_id = (*message_)[strings::params][strings::connection_key].asUInt();
ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id);
@@ -213,7 +213,7 @@ GetVehicleDataRequest::~GetVehicleDataRequest() {
}
void GetVehicleDataRequest::Run() {
- LOG4CXX_INFO(logger_, "GetVehicleDataRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
int32_t app_id = (*message_)[strings::params][strings::connection_key].asUInt();
ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id);
@@ -260,7 +260,7 @@ void GetVehicleDataRequest::Run() {
}
void GetVehicleDataRequest::on_event(const event_engine::Event& event) {
- LOG4CXX_INFO(logger_, "GetVehicleDataRequest::on_event");
+ LOG4CXX_AUTO_TRACE(logger_);
smart_objects::SmartObject message = event.smart_object();
switch (event.id()) {
diff --git a/src/components/application_manager/src/commands/mobile/get_vehicle_data_response.cc b/src/components/application_manager/src/commands/mobile/get_vehicle_data_response.cc
index d9087fdc61..5491e9b1aa 100644
--- a/src/components/application_manager/src/commands/mobile/get_vehicle_data_response.cc
+++ b/src/components/application_manager/src/commands/mobile/get_vehicle_data_response.cc
@@ -47,7 +47,7 @@ GetVehicleDataResponse::~GetVehicleDataResponse() {
}
void GetVehicleDataResponse::Run() {
- LOG4CXX_INFO(logger_, "GetVehicleDataResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
}
diff --git a/src/components/application_manager/src/commands/mobile/list_files_request.cc b/src/components/application_manager/src/commands/mobile/list_files_request.cc
index d0fa71d466..427443e3e9 100644
--- a/src/components/application_manager/src/commands/mobile/list_files_request.cc
+++ b/src/components/application_manager/src/commands/mobile/list_files_request.cc
@@ -50,7 +50,7 @@ ListFilesRequest::~ListFilesRequest() {
}
void ListFilesRequest::Run() {
- LOG4CXX_INFO(logger_, "ListFilesRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr application =
ApplicationManagerImpl::instance()->application(connection_key());
diff --git a/src/components/application_manager/src/commands/mobile/list_files_response.cc b/src/components/application_manager/src/commands/mobile/list_files_response.cc
index 6ffbec1ac4..42bd1e6f07 100644
--- a/src/components/application_manager/src/commands/mobile/list_files_response.cc
+++ b/src/components/application_manager/src/commands/mobile/list_files_response.cc
@@ -47,7 +47,7 @@ ListFilesResponse::~ListFilesResponse() {
}
void ListFilesResponse::Run() {
- LOG4CXX_INFO(logger_, "ListFilesResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
}
diff --git a/src/components/application_manager/src/commands/mobile/on_app_interface_unregistered_notification.cc b/src/components/application_manager/src/commands/mobile/on_app_interface_unregistered_notification.cc
index ebd0d6aac1..e3e51faa6e 100644
--- a/src/components/application_manager/src/commands/mobile/on_app_interface_unregistered_notification.cc
+++ b/src/components/application_manager/src/commands/mobile/on_app_interface_unregistered_notification.cc
@@ -47,7 +47,7 @@ OnAppInterfaceUnregisteredNotification::~OnAppInterfaceUnregisteredNotification(
}
void OnAppInterfaceUnregisteredNotification::Run() {
- LOG4CXX_INFO(logger_, "OnAppInterfaceUnregisteredNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendNotification();
}
diff --git a/src/components/application_manager/src/commands/mobile/on_audio_pass_thru_notification.cc b/src/components/application_manager/src/commands/mobile/on_audio_pass_thru_notification.cc
index 2515f591b1..d1329bf8ea 100644
--- a/src/components/application_manager/src/commands/mobile/on_audio_pass_thru_notification.cc
+++ b/src/components/application_manager/src/commands/mobile/on_audio_pass_thru_notification.cc
@@ -45,7 +45,7 @@ OnAudioPassThruNotification::~OnAudioPassThruNotification() {
}
void OnAudioPassThruNotification::Run() {
- LOG4CXX_INFO(logger_, "OnAudioPassThruNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendNotification();
}
diff --git a/src/components/application_manager/src/commands/mobile/on_button_event_notification.cc b/src/components/application_manager/src/commands/mobile/on_button_event_notification.cc
index 55b9b8818d..62cf11d76d 100644
--- a/src/components/application_manager/src/commands/mobile/on_button_event_notification.cc
+++ b/src/components/application_manager/src/commands/mobile/on_button_event_notification.cc
@@ -51,7 +51,7 @@ OnButtonEventNotification::~OnButtonEventNotification() {
}
void OnButtonEventNotification::Run() {
- LOG4CXX_INFO(logger_, "OnButtonEventNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
const uint32_t btn_id =
static_cast<uint32_t>(
@@ -124,18 +124,19 @@ void OnButtonEventNotification::Run() {
}
void OnButtonEventNotification::SendButtonEvent(ApplicationConstSharedPtr app) {
- smart_objects::SmartObject* on_btn_event = new smart_objects::SmartObject();
-
- if (!on_btn_event) {
+ if (!app) {
LOG4CXX_ERROR_EXT(logger_, "OnButtonEvent NULL pointer");
return;
}
- if (!app) {
+ smart_objects::SmartObjectSPtr on_btn_event = new smart_objects::SmartObject();
+
+ if (!on_btn_event) {
LOG4CXX_ERROR_EXT(logger_, "OnButtonEvent NULL pointer");
return;
}
+
(*on_btn_event)[strings::params][strings::connection_key] = app->app_id();
(*on_btn_event)[strings::params][strings::function_id] =
@@ -152,7 +153,7 @@ void OnButtonEventNotification::SendButtonEvent(ApplicationConstSharedPtr app) {
(*message_)[strings::msg_params][strings::custom_button_id];
}
- message_.reset(on_btn_event);
+ message_ = on_btn_event;
SendNotification();
}
diff --git a/src/components/application_manager/src/commands/mobile/on_button_press_notification.cc b/src/components/application_manager/src/commands/mobile/on_button_press_notification.cc
index cfafc7af1c..86fe664f86 100644
--- a/src/components/application_manager/src/commands/mobile/on_button_press_notification.cc
+++ b/src/components/application_manager/src/commands/mobile/on_button_press_notification.cc
@@ -51,7 +51,7 @@ OnButtonPressNotification::~OnButtonPressNotification() {
}
void OnButtonPressNotification::Run() {
- LOG4CXX_INFO(logger_, "OnButtonPressNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
const uint32_t btn_id =
static_cast<uint32_t>(
@@ -124,18 +124,19 @@ void OnButtonPressNotification::Run() {
}
void OnButtonPressNotification::SendButtonPress(ApplicationConstSharedPtr app) {
- smart_objects::SmartObject* on_btn_press = new smart_objects::SmartObject();
-
- if (!on_btn_press) {
+ if (!app) {
LOG4CXX_ERROR_EXT(logger_, "OnButtonPress NULL pointer");
return;
}
- if (!app) {
+ smart_objects::SmartObjectSPtr on_btn_press = new smart_objects::SmartObject();
+
+ if (!on_btn_press) {
LOG4CXX_ERROR_EXT(logger_, "OnButtonPress NULL pointer");
return;
}
+
(*on_btn_press)[strings::params][strings::connection_key] = app->app_id();
(*on_btn_press)[strings::params][strings::function_id] =
@@ -152,7 +153,7 @@ void OnButtonPressNotification::SendButtonPress(ApplicationConstSharedPtr app) {
(*message_)[strings::msg_params][strings::custom_button_id];
}
- message_.reset(on_btn_press);
+ message_ = on_btn_press;
SendNotification();
}
diff --git a/src/components/application_manager/src/commands/mobile/on_command_notification.cc b/src/components/application_manager/src/commands/mobile/on_command_notification.cc
index 8342d05a45..9bba1851f6 100644
--- a/src/components/application_manager/src/commands/mobile/on_command_notification.cc
+++ b/src/components/application_manager/src/commands/mobile/on_command_notification.cc
@@ -47,7 +47,7 @@ OnCommandNotification::~OnCommandNotification() {
}
void OnCommandNotification::Run() {
- LOG4CXX_INFO(logger_, "OnCommandNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
(*message_)[strings::msg_params][strings::app_id].asInt());
diff --git a/src/components/application_manager/src/commands/mobile/on_driver_distraction_notification.cc b/src/components/application_manager/src/commands/mobile/on_driver_distraction_notification.cc
index fc92c17e94..e9145520f4 100644
--- a/src/components/application_manager/src/commands/mobile/on_driver_distraction_notification.cc
+++ b/src/components/application_manager/src/commands/mobile/on_driver_distraction_notification.cc
@@ -51,7 +51,7 @@ OnDriverDistractionNotification::~OnDriverDistractionNotification() {
}
void OnDriverDistractionNotification::Run() {
- LOG4CXX_INFO(logger_, "OnDriverDistractionNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendNotification();
}
diff --git a/src/components/application_manager/src/commands/mobile/on_hash_change_notification.cc b/src/components/application_manager/src/commands/mobile/on_hash_change_notification.cc
index b9ee1339bb..10f3eb1ab6 100644
--- a/src/components/application_manager/src/commands/mobile/on_hash_change_notification.cc
+++ b/src/components/application_manager/src/commands/mobile/on_hash_change_notification.cc
@@ -37,7 +37,6 @@
#include "application_manager/application_impl.h"
#include "interfaces/MOBILE_API.h"
#include <string>
-#include <sstream>
namespace application_manager {
@@ -54,7 +53,7 @@ OnHashChangeNotification::~OnHashChangeNotification() {
}
void OnHashChangeNotification::Run() {
- LOG4CXX_INFO(logger_, "OnHashChangeNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
(*message_)[strings::params][strings::message_type] =
static_cast<int32_t>(application_manager::MessageType::kNotification);
@@ -62,10 +61,13 @@ void OnHashChangeNotification::Run() {
int32_t app_id;
app_id = (*message_)[strings::params][strings::connection_key].asInt();
ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id);
- std::stringstream stream;
- stream << app->curHash();
- (*message_)[strings::msg_params][strings::hash_id] = stream.str();
- SendNotification();
+ if (app) {
+ (*message_)[strings::msg_params][strings::hash_id] = app->curHash();
+ SendNotification();
+ } else {
+ LOG4CXX_WARN(logger_, "Application with app_id " << app_id << " does not exist");
+ }
+
}
} //namespace mobile
diff --git a/src/components/application_manager/src/commands/mobile/on_hmi_status_notification.cc b/src/components/application_manager/src/commands/mobile/on_hmi_status_notification.cc
index 9c03c0f623..e4a2d7c340 100644
--- a/src/components/application_manager/src/commands/mobile/on_hmi_status_notification.cc
+++ b/src/components/application_manager/src/commands/mobile/on_hmi_status_notification.cc
@@ -49,16 +49,17 @@ OnHMIStatusNotification::~OnHMIStatusNotification() {
}
void OnHMIStatusNotification::Run() {
- LOG4CXX_INFO(logger_, "OnHMIStatusNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
(*message_)[strings::params][strings::message_type] = static_cast<int32_t> (
application_manager::MessageType::kNotification);
ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
- (*message_)[strings::params][strings::connection_key].asUInt());
+ connection_key());
if (!app.valid()) {
LOG4CXX_ERROR(logger_, "OnHMIStatusNotification application doesn't exist");
return;
}
+
mobile_apis::HMILevel::eType hmi_level =
static_cast<mobile_apis::HMILevel::eType>(
(*message_)[strings::msg_params][strings::hmi_level].asInt());
@@ -74,7 +75,8 @@ void OnHMIStatusNotification::Run() {
(mobile_apis::HMILevel::HMI_LIMITED == hmi_level)) {
if (!(app->tts_properties_in_full())) {
app->set_tts_properties_in_full(true);
- LOG4CXX_INFO(logger_, "OnHMIStatusNotification AddAppToTTSGlobalPropertiesList");
+ LOG4CXX_INFO(logger_,
+ "OnHMIStatusNotification AddAppToTTSGlobalPropertiesList");
ApplicationManagerImpl::instance()->AddAppToTTSGlobalPropertiesList(
app->app_id());
}
diff --git a/src/components/application_manager/src/commands/mobile/on_hmi_status_notification_from_mobile.cc b/src/components/application_manager/src/commands/mobile/on_hmi_status_notification_from_mobile.cc
new file mode 100644
index 0000000000..443175a5ee
--- /dev/null
+++ b/src/components/application_manager/src/commands/mobile/on_hmi_status_notification_from_mobile.cc
@@ -0,0 +1,81 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/on_hmi_status_notification_from_mobile.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/message_helper.h"
+#include "application_manager/message.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+namespace commands {
+
+bool OnHMIStatusNotificationFromMobile::is_apps_requested_ = false;
+
+OnHMIStatusNotificationFromMobile::OnHMIStatusNotificationFromMobile(
+ const MessageSharedPtr& message)
+ : CommandNotificationFromMobileImpl(message) {
+}
+
+OnHMIStatusNotificationFromMobile::~OnHMIStatusNotificationFromMobile() {
+}
+
+void OnHMIStatusNotificationFromMobile::Run() {
+ LOG4CXX_AUTO_TRACE(logger_);
+
+ (*message_)[strings::params][strings::message_type] = static_cast<int32_t> (
+ application_manager::MessageType::kNotification);
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
+ connection_key());
+ if (!app.valid()) {
+ LOG4CXX_ERROR(logger_,
+ "OnHMIStatusNotificationFromMobile application doesn't exist");
+ return;
+ }
+
+ // In case if this notification will be received from mobile side, it will
+ // mean, that app is in foreground on mobile. This should trigger remote
+ // apps list query for SDL 4.0 app
+ if (is_apps_requested_) {
+ LOG4CXX_DEBUG(logger_, "Remote apps list had been requested already.");
+ return;
+ }
+ if (ProtocolVersion::kV4 == app->protocol_version()) {
+ MessageHelper::SendQueryApps(connection_key());
+ is_apps_requested_ = true;
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/src/components/application_manager/src/commands/mobile/on_keyboard_input_notification.cc b/src/components/application_manager/src/commands/mobile/on_keyboard_input_notification.cc
index 969885ab16..b8c6d6f114 100644
--- a/src/components/application_manager/src/commands/mobile/on_keyboard_input_notification.cc
+++ b/src/components/application_manager/src/commands/mobile/on_keyboard_input_notification.cc
@@ -51,7 +51,7 @@ OnKeyBoardInputNotification::~OnKeyBoardInputNotification() {
}
void OnKeyBoardInputNotification::Run() {
- LOG4CXX_INFO(logger_, "OnKeyBoardInputNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
const std::vector<ApplicationSharedPtr>& applications =
ApplicationManagerImpl::instance()->applications_with_navi();
diff --git a/src/components/application_manager/src/commands/mobile/on_language_change_notification.cc b/src/components/application_manager/src/commands/mobile/on_language_change_notification.cc
index f550df8748..43b1b5b921 100644
--- a/src/components/application_manager/src/commands/mobile/on_language_change_notification.cc
+++ b/src/components/application_manager/src/commands/mobile/on_language_change_notification.cc
@@ -46,7 +46,7 @@ OnLanguageChangeNotification::~OnLanguageChangeNotification() {
}
void OnLanguageChangeNotification::Run() {
- LOG4CXX_INFO(logger_, "OnLanguageChangeNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendNotification();
}
diff --git a/src/components/application_manager/src/commands/mobile/on_permissions_change_notification.cc b/src/components/application_manager/src/commands/mobile/on_permissions_change_notification.cc
index 37c81085eb..62ea1af1fc 100644
--- a/src/components/application_manager/src/commands/mobile/on_permissions_change_notification.cc
+++ b/src/components/application_manager/src/commands/mobile/on_permissions_change_notification.cc
@@ -48,7 +48,7 @@ OnPermissionsChangeNotification::~OnPermissionsChangeNotification() {
}
void OnPermissionsChangeNotification::Run() {
- LOG4CXX_INFO(logger_, "OnPermissionsChangeNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
(*message_)[strings::params][strings::message_type] =
static_cast<int32_t>(application_manager::MessageType::kNotification);
diff --git a/src/components/application_manager/src/commands/mobile/on_system_request_notification.cc b/src/components/application_manager/src/commands/mobile/on_system_request_notification.cc
index ebf98cd7e8..7e5c381bef 100644
--- a/src/components/application_manager/src/commands/mobile/on_system_request_notification.cc
+++ b/src/components/application_manager/src/commands/mobile/on_system_request_notification.cc
@@ -50,7 +50,7 @@ OnSystemRequestNotification::~OnSystemRequestNotification() {
}
void OnSystemRequestNotification::Run() {
- LOG4CXX_INFO(logger_, "OnSystemRequestNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
mobile_apis::RequestType::eType request_type = static_cast<mobile_apis::RequestType::eType>
((*message_)[strings::msg_params][strings::request_type].asInt());
diff --git a/src/components/application_manager/src/commands/mobile/on_tbt_client_state_notification.cc b/src/components/application_manager/src/commands/mobile/on_tbt_client_state_notification.cc
index 05494c6144..99a5d665db 100644
--- a/src/components/application_manager/src/commands/mobile/on_tbt_client_state_notification.cc
+++ b/src/components/application_manager/src/commands/mobile/on_tbt_client_state_notification.cc
@@ -49,7 +49,7 @@ OnTBTClientStateNotification::~OnTBTClientStateNotification() {
}
void OnTBTClientStateNotification::Run() {
- LOG4CXX_INFO(logger_, "OnTBTClientStateNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
(*message_)[strings::params][strings::message_type] =
static_cast<int32_t>(application_manager::MessageType::kNotification);
diff --git a/src/components/application_manager/src/commands/mobile/on_touch_event_notification.cc b/src/components/application_manager/src/commands/mobile/on_touch_event_notification.cc
index 250faa8f38..6db54289eb 100644
--- a/src/components/application_manager/src/commands/mobile/on_touch_event_notification.cc
+++ b/src/components/application_manager/src/commands/mobile/on_touch_event_notification.cc
@@ -50,7 +50,7 @@ OnTouchEventNotification::~OnTouchEventNotification() {
}
void OnTouchEventNotification::Run() {
- LOG4CXX_INFO(logger_, "OnTouchEventNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
const std::vector<ApplicationSharedPtr>& applications =
ApplicationManagerImpl::instance()->applications_with_navi();
diff --git a/src/components/application_manager/src/commands/mobile/on_vehicle_data_notification.cc b/src/components/application_manager/src/commands/mobile/on_vehicle_data_notification.cc
index 420c42f30c..044bb16b40 100644
--- a/src/components/application_manager/src/commands/mobile/on_vehicle_data_notification.cc
+++ b/src/components/application_manager/src/commands/mobile/on_vehicle_data_notification.cc
@@ -50,7 +50,7 @@ OnVehicleDataNotification::~OnVehicleDataNotification() {
}
void OnVehicleDataNotification::Run() {
- LOG4CXX_INFO(logger_, "OnVehicleDataNotification::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
const VehicleData& vehicle_data = MessageHelper::vehicle_data();
VehicleData::const_iterator it = vehicle_data.begin();
diff --git a/src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_request.cc b/src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_request.cc
index a730995f5d..b3d57d6be0 100644
--- a/src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_request.cc
+++ b/src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_request.cc
@@ -55,7 +55,7 @@ PerformAudioPassThruRequest::~PerformAudioPassThruRequest() {
}
void PerformAudioPassThruRequest::onTimeOut() {
- LOG4CXX_INFO(logger_, "PerformAudioPassThruRequest::onTimeOut");
+ LOG4CXX_AUTO_TRACE(logger_);
if (ApplicationManagerImpl::instance()->end_audio_pass_thru()) {
ApplicationManagerImpl::instance()->StopAudioPassThru(connection_key());
@@ -73,7 +73,7 @@ bool PerformAudioPassThruRequest::Init() {
}
void PerformAudioPassThruRequest::Run() {
- LOG4CXX_INFO(logger_, "PerformAudioPassThruRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr app =
ApplicationManagerImpl::instance()->application(connection_key());
@@ -111,7 +111,7 @@ void PerformAudioPassThruRequest::Run() {
}
void PerformAudioPassThruRequest::on_event(const event_engine::Event& event) {
- LOG4CXX_INFO(logger_, "PerformAudioPassThruRequest::on_event");
+ LOG4CXX_AUTO_TRACE(logger_);
const smart_objects::SmartObject& message = event.smart_object();
switch (event.id()) {
@@ -177,8 +177,10 @@ void PerformAudioPassThruRequest::on_event(const event_engine::Event& event) {
void PerformAudioPassThruRequest::SendSpeakRequest() {
// crate HMI TTS speak request
- smart_objects::SmartObject msg_params = smart_objects::SmartObject(
- smart_objects::SmartType_Map);
+ using namespace hmi_apis;
+ using namespace smart_objects;
+
+ SmartObject msg_params = smart_objects::SmartObject(SmartType_Map);
if ((*message_)[str::msg_params].keyExists(str::initial_prompt) &&
(0 < (*message_)[str::msg_params][str::initial_prompt].length())) {
@@ -192,8 +194,9 @@ void PerformAudioPassThruRequest::SendSpeakRequest() {
}
// app_id
msg_params[strings::app_id] = connection_key();
+ msg_params[hmi_request::speak_type] = Common_MethodName::AUDIO_PASS_THRU;
is_active_tts_speak_ = true;
- SendHMIRequest(hmi_apis::FunctionID::TTS_Speak, &msg_params, true);
+ SendHMIRequest(FunctionID::TTS_Speak, &msg_params, true);
}
}
@@ -260,7 +263,7 @@ void PerformAudioPassThruRequest::StartMicrophoneRecording() {
}
bool PerformAudioPassThruRequest::IsWhiteSpaceExist() {
- LOG4CXX_INFO(logger_, "PerformAudioPassThruRequest::IsWhiteSpaceExist");
+ LOG4CXX_AUTO_TRACE(logger_);
const char* str = NULL;
if ((*message_)[strings::msg_params].keyExists(strings::initial_prompt)) {
diff --git a/src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_response.cc b/src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_response.cc
index a10eaac9f3..585383889d 100644
--- a/src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_response.cc
+++ b/src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_response.cc
@@ -48,7 +48,7 @@ PerformAudioPassThruResponse::~PerformAudioPassThruResponse() {
}
void PerformAudioPassThruResponse::Run() {
- LOG4CXX_INFO(logger_, "PerformAudioPassThruResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
}
diff --git a/src/components/application_manager/src/commands/mobile/perform_interaction_request.cc b/src/components/application_manager/src/commands/mobile/perform_interaction_request.cc
index 12514626a6..949fcab015 100644
--- a/src/components/application_manager/src/commands/mobile/perform_interaction_request.cc
+++ b/src/components/application_manager/src/commands/mobile/perform_interaction_request.cc
@@ -49,11 +49,11 @@ namespace commands {
PerformInteractionRequest::PerformInteractionRequest(
const MessageSharedPtr& message)
: CommandRequestImpl(message),
- timer_("PerformInteractionReq", this, &PerformInteractionRequest::onTimer),
vr_perform_interaction_code_(mobile_apis::Result::INVALID_ENUM),
interaction_mode_(mobile_apis::InteractionMode::INVALID_ENUM),
- ui_response_recived(false),
- vr_response_recived(false) {
+ ui_response_recived_(false),
+ vr_response_recived_(false),
+ app_pi_was_active_before_(false) {
subscribe_on_event(hmi_apis::FunctionID::UI_OnResetTimeout);
subscribe_on_event(hmi_apis::FunctionID::VR_OnCommand);
@@ -63,10 +63,6 @@ PerformInteractionRequest::PerformInteractionRequest(
PerformInteractionRequest::~PerformInteractionRequest() {
}
-void PerformInteractionRequest::onTimer() {
- LOG4CXX_INFO(logger_, "PerformInteractionRequest::onTimer");
-}
-
bool PerformInteractionRequest::Init() {
/* Timeout in milliseconds.
@@ -75,19 +71,19 @@ bool PerformInteractionRequest::Init() {
default_timeout_ =
(*message_)[strings::msg_params][strings::timeout].asUInt();
}
- mobile_apis::InteractionMode::eType mode =
- static_cast<mobile_apis::InteractionMode::eType>(
+
+ interaction_mode_ = static_cast<mobile_apis::InteractionMode::eType>(
(*message_)[strings::msg_params][strings::interaction_mode].asInt());
- if (mobile_apis::InteractionMode::BOTH == mode ||
- mobile_apis::InteractionMode::MANUAL_ONLY == mode) {
- default_timeout_ *= 2;
- }
+ if (mobile_apis::InteractionMode::BOTH == interaction_mode_ ||
+ mobile_apis::InteractionMode::MANUAL_ONLY == interaction_mode_) {
+ default_timeout_ *= 2;
+ }
return true;
}
void PerformInteractionRequest::Run() {
- LOG4CXX_INFO(logger_, "PerformInteractionRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr app =
ApplicationManagerImpl::instance()->application(connection_key());
@@ -98,52 +94,51 @@ void PerformInteractionRequest::Run() {
return;
}
+ if (app->is_perform_interaction_active()) {
+ LOG4CXX_INFO(logger_, "Application has active PerformInteraction");
+ app_pi_was_active_before_ = true;
+ }
+
+ smart_objects::SmartObject& msg_params = (*message_)[strings::msg_params];
mobile_apis::LayoutMode::eType interaction_layout =
mobile_apis::LayoutMode::INVALID_ENUM;
- if ((*message_)[strings::msg_params].keyExists(
- hmi_request::interaction_layout)) {
+
+ if (msg_params.keyExists(hmi_request::interaction_layout)) {
interaction_layout = static_cast<mobile_apis::LayoutMode::eType>(
- (*message_)[strings::msg_params][hmi_request::interaction_layout].asInt());
+ msg_params[hmi_request::interaction_layout].asInt());
}
- if ((mobile_apis::InteractionMode::VR_ONLY ==
- static_cast<mobile_apis::InteractionMode::eType>(
- (*message_)[strings::msg_params][strings::interaction_mode].asInt())) &&
+ if ((mobile_apis::InteractionMode::VR_ONLY == interaction_mode_) &&
(mobile_apis::LayoutMode::KEYBOARD == interaction_layout)) {
- LOG4CXX_ERROR_EXT(
- logger_,
- "PerformInteraction contains InteractionMode = VR_ONLY and "
- "interactionLayout=KEYBOARD");
+ LOG4CXX_ERROR_EXT(logger_, "PerformInteraction contains InteractionMode"
+ "=VR_ONLY and interactionLayout=KEYBOARD");
SendResponse(false, mobile_apis::Result::INVALID_DATA);
return;
}
- if ((0 == (*message_)
- [strings::msg_params][strings::interaction_choice_set_id_list].length()) &&
- (mobile_apis::InteractionMode::BOTH ==
- static_cast<mobile_apis::InteractionMode::eType>(
- (*message_)[strings::msg_params][strings::interaction_mode].asInt()))) {
- LOG4CXX_ERROR_EXT(
- logger_,
- "interactionChoiceSetIDList is empty and InteractionMode=BOTH");
- SendResponse(false, mobile_apis::Result::INVALID_DATA);
- return;
- }
+ const size_t choice_set_id_list_length =
+ msg_params[strings::interaction_choice_set_id_list].length();
- if ((0 == (*message_)
- [strings::msg_params][strings::interaction_choice_set_id_list].length()) &&
- (mobile_apis::LayoutMode::KEYBOARD != interaction_layout)) {
- LOG4CXX_ERROR_EXT(
- logger_,
- "interactionChoiceSetIDList is empty and without parameter"
- "interactionLayout=KEYBOARD");
- SendResponse(false, mobile_apis::Result::INVALID_DATA);
- return;
+ if (0 == choice_set_id_list_length) {
+ if (mobile_apis::LayoutMode::KEYBOARD == interaction_layout) {
+ if (mobile_apis::InteractionMode::BOTH == interaction_mode_) {
+ LOG4CXX_ERROR_EXT(logger_,"interactionChoiceSetIDList is empty,"
+ " InteractionMode=BOTH and"
+ " interactionLayout=KEYBOARD");
+ SendResponse(false, mobile_apis::Result::INVALID_DATA);
+ return;
+ }
+ } else {
+ LOG4CXX_ERROR_EXT(logger_,"interactionChoiceSetIDList is empty"
+ " and interactionLayout!=KEYBOARD");
+ SendResponse(false, mobile_apis::Result::INVALID_DATA);
+ return;
+ }
}
- if ((*message_)[strings::msg_params].keyExists(strings::vr_help)) {
+ if (msg_params.keyExists(strings::vr_help)) {
if (mobile_apis::Result::SUCCESS != MessageHelper::VerifyImageVrHelpItems(
- (*message_)[strings::msg_params][strings::vr_help], app)) {
+ msg_params[strings::vr_help], app)) {
LOG4CXX_ERROR_EXT(
logger_,
"MessageHelper::VerifyImageVrHelpItems return INVALID_DATA!");
@@ -153,7 +148,7 @@ void PerformInteractionRequest::Run() {
}
smart_objects::SmartObject& choice_list =
- (*message_)[strings::msg_params][strings::interaction_choice_set_id_list];
+ msg_params[strings::interaction_choice_set_id_list];
for (size_t i = 0; i < choice_list.length(); ++i) {
if (!app->FindChoiceSet(choice_list[i].asInt())) {
@@ -170,67 +165,31 @@ void PerformInteractionRequest::Run() {
return;
}
- int32_t mode =
- (*message_)[strings::msg_params][strings::interaction_mode].asInt();
-
- app->set_perform_interaction_mode(mode);
-
- interaction_mode_ = static_cast<mobile_apis::InteractionMode::eType>(mode);
-
switch (interaction_mode_) {
case mobile_apis::InteractionMode::BOTH: {
LOG4CXX_INFO(logger_, "Interaction Mode: BOTH");
- if (!CheckChoiceSetVRSynonyms(app)) {
- return;
- }
-
- if (!CheckChoiceSetMenuNames(app)) {
+ if (!CheckChoiceSetVRSynonyms(app) ||
+ !CheckChoiceSetMenuNames(app) ||
+ !CheckVrHelpItemPositions(app)) {
return;
}
-
- if (!CheckVrHelpItemPositions(app)) {
- return;
- }
-
- app->set_perform_interaction_active(correlation_id());
- SendVRPerformInteractionRequest(app);
- SendUIPerformInteractionRequest(app);
break;
}
case mobile_apis::InteractionMode::MANUAL_ONLY: {
LOG4CXX_INFO(logger_, "Interaction Mode: MANUAL_ONLY");
-
- if (!CheckChoiceSetVRSynonyms(app)) {
- return;
- }
-
- if (!CheckChoiceSetMenuNames(app)) {
- return;
- }
-
- if (!CheckVrHelpItemPositions(app)) {
+ if (!CheckChoiceSetVRSynonyms(app) ||
+ !CheckChoiceSetMenuNames(app) ||
+ !CheckVrHelpItemPositions(app)) {
return;
}
-
- app->set_perform_interaction_active(correlation_id());
- SendVRPerformInteractionRequest(app);
- SendUIPerformInteractionRequest(app);
break;
}
case mobile_apis::InteractionMode::VR_ONLY: {
LOG4CXX_INFO(logger_, "Interaction Mode: VR_ONLY");
- if (!CheckChoiceSetVRSynonyms(app)) {
- return;
- }
-
- if (!CheckVrHelpItemPositions(app)) {
+ if (!CheckChoiceSetVRSynonyms(app) ||
+ !CheckVrHelpItemPositions(app)) {
return;
}
-
- // TODO(DK): need to implement timeout
- app->set_perform_interaction_active(correlation_id());
- SendVRPerformInteractionRequest(app);
- SendUIPerformInteractionRequest(app);
break;
}
default: {
@@ -239,27 +198,32 @@ void PerformInteractionRequest::Run() {
}
}
- // TODO(DK): need to implement timeout TTS speak request.
+ app->set_perform_interaction_mode(static_cast<int32_t>(interaction_mode_));
+ app->set_perform_interaction_active(true);
+ SendVRPerformInteractionRequest(app);
+ SendUIPerformInteractionRequest(app);
}
void PerformInteractionRequest::on_event(const event_engine::Event& event) {
- LOG4CXX_INFO(logger_, "PerformInteractionRequest::on_event");
+ LOG4CXX_AUTO_TRACE(logger_);
switch (event.id()) {
case hmi_apis::FunctionID::UI_OnResetTimeout: {
LOG4CXX_INFO(logger_, "Received UI_OnResetTimeout event");
ApplicationManagerImpl::instance()->updateRequestTimeout(connection_key(),
- correlation_id(),
- default_timeout());
+ correlation_id(),
+ default_timeout());
break;
}
case hmi_apis::FunctionID::UI_PerformInteraction: {
LOG4CXX_INFO(logger_, "Received UI_PerformInteraction event");
+ ui_response_recived_ = true;
ProcessPerformInteractionResponse(event.smart_object());
break;
}
case hmi_apis::FunctionID::VR_PerformInteraction: {
- LOG4CXX_INFO(logger_, "Received TTS_PerformInteraction");
+ LOG4CXX_INFO(logger_, "Received VR_PerformInteraction");
+ vr_response_recived_ = true;
ProcessVRResponse(event.smart_object());
break;
}
@@ -271,11 +235,11 @@ void PerformInteractionRequest::on_event(const event_engine::Event& event) {
}
void PerformInteractionRequest::onTimeOut() {
- LOG4CXX_INFO(logger_, "PerformInteractionRequest::onTimeOut");
+ LOG4CXX_AUTO_TRACE(logger_);
switch (interaction_mode_) {
case mobile_apis::InteractionMode::BOTH: {
- if (true == vr_response_recived) {
+ if (true == vr_response_recived_) {
unsubscribe_from_event(hmi_apis::FunctionID::UI_PerformInteraction);
DisablePerformInteraction();
CommandRequestImpl::onTimeOut();
@@ -308,37 +272,56 @@ void PerformInteractionRequest::onTimeOut() {
void PerformInteractionRequest::ProcessVRResponse(
const smart_objects::SmartObject& message) {
- LOG4CXX_INFO(logger_, "PerformInteractionRequest::ProcessVRResponse");
- const uint32_t app_id = connection_key();
- ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id);
+ LOG4CXX_AUTO_TRACE(logger_);
+ using namespace mobile_apis;
+ using namespace mobile_apis::Result;
+ using namespace smart_objects;
+
+ ApplicationSharedPtr app =
+ ApplicationManagerImpl::instance()->application(connection_key());
+
if (!app.get()) {
LOG4CXX_ERROR(logger_, "NULL pointer");
return;
}
- vr_response_recived = true;
- vr_perform_interaction_code_ = static_cast<mobile_apis::Result::eType>(
+ vr_perform_interaction_code_ = static_cast<eType>(
message[strings::params][hmi_response::code].asInt());
- if (mobile_apis::Result::ABORTED == vr_perform_interaction_code_ ||
- mobile_apis::Result::TIMED_OUT == vr_perform_interaction_code_) {
+ if (ABORTED == vr_perform_interaction_code_ ||
+ TIMED_OUT == vr_perform_interaction_code_) {
LOG4CXX_INFO(logger_, "VR response aborted");
- if (mobile_apis::InteractionMode::VR_ONLY == interaction_mode_) {
+ if (InteractionMode::VR_ONLY == interaction_mode_) {
LOG4CXX_INFO(logger_, "Aborted or Timeout Send Close Popup");
TerminatePerformInteraction();
SendResponse(false, vr_perform_interaction_code_);
return;
} else {
LOG4CXX_INFO(logger_, "Update timeout for UI");
- ApplicationManagerImpl::instance()->updateRequestTimeout(connection_key(),
- correlation_id(),
- default_timeout());
+ ApplicationManagerImpl::instance()->
+ updateRequestTimeout(connection_key(),
+ correlation_id(),
+ default_timeout());
return;
}
}
- smart_objects::SmartObject msg_params =
- smart_objects::SmartObject(smart_objects::SmartType_Map);
- smart_objects::SmartObject* ptr_msg_params = NULL;
+ if (REJECTED == vr_perform_interaction_code_) {
+ LOG4CXX_INFO(logger_, "VR had been rejected.");
+ TerminatePerformInteraction();
+ SendResponse(false, vr_perform_interaction_code_);
+ return;
+ }
+
+ if (SUCCESS == vr_perform_interaction_code_ &&
+ InteractionMode::MANUAL_ONLY == interaction_mode_) {
+ LOG4CXX_INFO(logger_, "VR response SUCCESS in MANUAL_ONLY mode " <<
+ "Wait for UI response");
+ // in case MANUAL_ONLY mode VR.PI SUCCESS just return
+ return;
+ }
+
+ SmartObject msg_params = SmartObject(SmartType_Map);
+ SmartObject* ptr_msg_params = NULL;
if (message[strings::msg_params].keyExists(strings::choice_id)) {
if (CheckChoiceIDFromResponse(
app, message[strings::msg_params][strings::choice_id].asInt())) {
@@ -348,22 +331,21 @@ void PerformInteractionRequest::ProcessVRResponse(
} else {
LOG4CXX_ERROR(logger_, "Wrong choiceID was received from HMI");
TerminatePerformInteraction();
- SendResponse(false, mobile_apis::Result::GENERIC_ERROR,
- "Wrong choiceID was received from HMI");
+ SendResponse(false, GENERIC_ERROR,"Wrong choiceID was received from HMI");
return;
}
}
- mobile_apis::Result::eType result_code = mobile_apis::Result::INVALID_ENUM;
- if (mobile_apis::Result::UNSUPPORTED_RESOURCE ==
- vr_perform_interaction_code_) {
+ eType result_code = INVALID_ENUM;
+
+ if (UNSUPPORTED_RESOURCE == vr_perform_interaction_code_) {
LOG4CXX_INFO(logger_, "VR response WARNINGS");
- result_code = mobile_apis::Result::WARNINGS;
+ result_code = WARNINGS;
} else {
LOG4CXX_INFO(logger_, "VR response SUCCESS");
- result_code = mobile_apis::Result::SUCCESS;
+ result_code = SUCCESS;
msg_params[strings::trigger_source] =
- static_cast<int32_t>(mobile_apis::TriggerSource::TS_VR);
+ static_cast<int32_t>(TriggerSource::TS_VR);
ptr_msg_params = &msg_params;
}
TerminatePerformInteraction();
@@ -372,60 +354,57 @@ void PerformInteractionRequest::ProcessVRResponse(
void PerformInteractionRequest::ProcessPerformInteractionResponse(
const smart_objects::SmartObject& message) {
- LOG4CXX_INFO(logger_,
- "PerformInteractionRequest::ProcessPerformInteractionResponse");
- const uint32_t app_id = connection_key();
- ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id);
+ LOG4CXX_AUTO_TRACE(logger_);
+
+ ApplicationSharedPtr app =
+ ApplicationManagerImpl::instance()->application(connection_key());
if (!app.get()) {
LOG4CXX_ERROR(logger_, "NULL pointer");
return;
}
- ui_response_recived = true;
+
+ bool result = false;
+ std::string info;
smart_objects::SmartObject msg_params =
smart_objects::SmartObject(smart_objects::SmartType_Map);
- msg_params = message[strings::msg_params];
- bool result = false;
mobile_apis::Result::eType result_code =
GetMobileResultCode(static_cast<hmi_apis::Common_Result::eType>(
message[strings::params][hmi_response::code].asUInt()));
- if ((mobile_apis::Result::SUCCESS == result_code) ||
- (mobile_apis::Result::UNSUPPORTED_RESOURCE == result_code)) {
- if (message[strings::msg_params].keyExists(strings::choice_id) &&
- !(CheckChoiceIDFromResponse(
- app, message[strings::msg_params][strings::choice_id].asInt()))) {
- DisablePerformInteraction();
- SendResponse(false, mobile_apis::Result::GENERIC_ERROR,
- "Wrong choiceID was received from HMI");
- return;
- }
- if (message[strings::msg_params].keyExists(strings::manual_text_entry)) {
- msg_params[strings::trigger_source] = mobile_apis::TriggerSource::TS_KEYBOARD;
- } else {
- msg_params[strings::trigger_source] = mobile_apis::TriggerSource::TS_MENU;
- }
- DisablePerformInteraction();
+ if (mobile_apis::Result::SUCCESS == result_code) {
+ result = true;
+ }
+
+ if (mobile_apis::Result::UNSUPPORTED_RESOURCE == result_code) {
result = true;
- } else if (mobile_apis::Result::REJECTED == result_code) {
- LOG4CXX_ERROR(logger_, "Request was rejected");
+ result_code = mobile_apis::Result::WARNINGS;
+ info = "Unsupported phoneme type was sent in an item";
}
- const char* return_info = NULL;
if (result) {
- if (mobile_apis::Result::UNSUPPORTED_RESOURCE == result_code) {
- result_code = mobile_apis::Result::WARNINGS;
- return_info =
- std::string("Unsupported phoneme type sent in any item").c_str();
+ // result code must be GENERIC_ERROR in case wrong choice_id
+ if (message[strings::msg_params].keyExists(strings::choice_id)) {
+ if (!CheckChoiceIDFromResponse(app, message[strings::msg_params]
+ [strings::choice_id].asInt())) {
+ result_code = mobile_apis::Result::GENERIC_ERROR;
+ info = "Wrong choiceID was received from HMI";
+ } else {
+ msg_params = message[strings::msg_params];
+ msg_params[strings::trigger_source] = mobile_apis::TriggerSource::TS_MENU;
+ if (message[strings::msg_params].keyExists(strings::manual_text_entry)) {
+ msg_params[strings::trigger_source] = mobile_apis::TriggerSource::TS_KEYBOARD;
+ }
+ }
}
}
- if (mobile_apis::Result::TIMED_OUT == result_code) {
- DisablePerformInteraction();
- }
+ DisablePerformInteraction();
- SendResponse(result, result_code, return_info, &(msg_params));
+ const char* return_info = (info.empty()) ? NULL : info.c_str();
+ const smart_objects::SmartObject* response_params = (msg_params.empty()) ? NULL : &msg_params;
+ SendResponse(result, result_code, return_info, response_params);
}
void PerformInteractionRequest::SendUIPerformInteractionRequest(
@@ -565,6 +544,7 @@ void PerformInteractionRequest::SendVRPerformInteractionRequest(
smart_objects::SmartObject item(smart_objects::SmartType_Map);
// Since there is no custom data from application side, SDL should
// construct prompt and append delimiter to each item
+ item[strings::type] = hmi_apis::Common_SpeechCapabilities::SC_TEXT;
item[strings::text] = vr_commands[0].asString() +
profile::Profile::instance()->tts_delimiter();
msg_params[strings::help_prompt][index++] = item;
@@ -744,15 +724,16 @@ void PerformInteractionRequest::DisablePerformInteraction() {
return;
}
- if (app->is_perform_interaction_active()) {
- app->set_perform_interaction_active(0);
+ if (app->is_perform_interaction_active() &&
+ (!app_pi_was_active_before_)) {
+ app->set_perform_interaction_active(false);
app->set_perform_interaction_mode(-1);
app->DeletePerformInteractionChoiceSetMap();
}
}
bool PerformInteractionRequest::IsWhiteSpaceExist() {
- LOG4CXX_INFO(logger_, "PerformInteractionRequest::IsWhiteSpaceExist");
+ LOG4CXX_AUTO_TRACE(logger_);
const char* str = NULL;
str = (*message_)[strings::msg_params][strings::initial_text].asCharArray();
@@ -847,9 +828,10 @@ void PerformInteractionRequest::TerminatePerformInteraction() {
bool PerformInteractionRequest::CheckChoiceIDFromResponse(
ApplicationSharedPtr app, int32_t choice_id) {
- LOG4CXX_INFO(logger_, "PerformInteractionRequest::CheckChoiceIDFromResponse");
- const PerformChoiceSetMap& choice_set_map = app
- ->performinteraction_choice_set_map();
+ LOG4CXX_AUTO_TRACE(logger_);
+ const DataAccessor<PerformChoiceSetMap> accessor =
+ app->performinteraction_choice_set_map();
+ const PerformChoiceSetMap& choice_set_map = accessor.GetData();
for (PerformChoiceSetMap::const_iterator it = choice_set_map.begin();
choice_set_map.end() != it; ++it) {
diff --git a/src/components/application_manager/src/commands/mobile/perform_interaction_response.cc b/src/components/application_manager/src/commands/mobile/perform_interaction_response.cc
index 4ceb4ce3b3..59d706926d 100644
--- a/src/components/application_manager/src/commands/mobile/perform_interaction_response.cc
+++ b/src/components/application_manager/src/commands/mobile/perform_interaction_response.cc
@@ -47,7 +47,7 @@ PerformInteractionResponse::~PerformInteractionResponse() {
}
void PerformInteractionResponse::Run() {
- LOG4CXX_INFO(logger_, "PerformInteractionResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
}
diff --git a/src/components/application_manager/src/commands/mobile/put_file_request.cc b/src/components/application_manager/src/commands/mobile/put_file_request.cc
index 1da7e08e47..88743e3668 100644
--- a/src/components/application_manager/src/commands/mobile/put_file_request.cc
+++ b/src/components/application_manager/src/commands/mobile/put_file_request.cc
@@ -55,7 +55,7 @@ PutFileRequest::~PutFileRequest() {
}
void PutFileRequest::Run() {
- LOG4CXX_INFO(logger_, "PutFileRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr application =
ApplicationManagerImpl::instance()->application(connection_key());
@@ -224,7 +224,7 @@ void PutFileRequest::Run() {
break;
}
default:
- LOG4CXX_INFO(logger_, "Save in unsuccessful. Result = " << save_result);
+ LOG4CXX_WARN(logger_, "Save in unsuccessful. Result = " << save_result);
SendResponse(false, save_result, "Can't save file", &response_params);
break;
}
@@ -232,7 +232,7 @@ void PutFileRequest::Run() {
void PutFileRequest::SendOnPutFileNotification() {
LOG4CXX_INFO(logger_, "SendOnPutFileNotification" );
- smart_objects::SmartObject* notification = new smart_objects::SmartObject(
+ smart_objects::SmartObjectSPtr notification = new smart_objects::SmartObject(
smart_objects::SmartType_Map);
smart_objects::SmartObject& message = *notification;
@@ -250,7 +250,7 @@ void PutFileRequest::SendOnPutFileNotification() {
message[strings::msg_params][strings::length] = length_;
message[strings::msg_params][strings::persistent_file] = is_persistent_file_;
message[strings::msg_params][strings::file_type] = file_type_;
- ApplicationManagerImpl::instance()->ManageHMICommand(&message);
+ ApplicationManagerImpl::instance()->ManageHMICommand(notification);
}
} // namespace commands
diff --git a/src/components/application_manager/src/commands/mobile/put_file_response.cc b/src/components/application_manager/src/commands/mobile/put_file_response.cc
index 4ab950d7a8..52598fda16 100644
--- a/src/components/application_manager/src/commands/mobile/put_file_response.cc
+++ b/src/components/application_manager/src/commands/mobile/put_file_response.cc
@@ -48,7 +48,7 @@ PutFileResponse::~PutFileResponse() {
}
void PutFileResponse::Run() {
- LOG4CXX_INFO(logger_, "PutFileResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
uint32_t app_id = (*message_)[strings::params][strings::connection_key]
.asUInt();
ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id);
diff --git a/src/components/application_manager/src/commands/mobile/read_did_request.cc b/src/components/application_manager/src/commands/mobile/read_did_request.cc
index 1de080df4c..5a066aab4d 100644
--- a/src/components/application_manager/src/commands/mobile/read_did_request.cc
+++ b/src/components/application_manager/src/commands/mobile/read_did_request.cc
@@ -49,7 +49,7 @@ ReadDIDRequest::~ReadDIDRequest() {
}
void ReadDIDRequest::Run() {
- LOG4CXX_INFO(logger_, "ReadDIDRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
uint32_t app_id = (*message_)[strings::params][strings::connection_key]
.asUInt();
@@ -96,7 +96,7 @@ void ReadDIDRequest::Run() {
}
void ReadDIDRequest::on_event(const event_engine::Event& event) {
- LOG4CXX_INFO(logger_, "ReadDIDRequest::on_event");
+ LOG4CXX_AUTO_TRACE(logger_);
const smart_objects::SmartObject& message = event.smart_object();
switch (event.id()) {
diff --git a/src/components/application_manager/src/commands/mobile/read_did_response.cc b/src/components/application_manager/src/commands/mobile/read_did_response.cc
index 888b590758..1133fe89ed 100644
--- a/src/components/application_manager/src/commands/mobile/read_did_response.cc
+++ b/src/components/application_manager/src/commands/mobile/read_did_response.cc
@@ -46,7 +46,7 @@ ReadDIDResponse::~ReadDIDResponse() {
}
void ReadDIDResponse::Run() {
- LOG4CXX_INFO(logger_, "ReadDIDResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
}
diff --git a/src/components/application_manager/src/commands/mobile/register_app_interface_request.cc b/src/components/application_manager/src/commands/mobile/register_app_interface_request.cc
index f62e0d4b84..0c4070611c 100644
--- a/src/components/application_manager/src/commands/mobile/register_app_interface_request.cc
+++ b/src/components/application_manager/src/commands/mobile/register_app_interface_request.cc
@@ -1,6 +1,6 @@
-/*
+/*
- Copyright (c) 2013, Ford Motor Company
+ Copyright (c) 2015, Ford Motor Company
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -116,6 +116,18 @@ struct CheckMissedTypes {
const policy::StringArray& policy_app_types_;
std::string& log_;
};
+
+struct IsSameNickname {
+ IsSameNickname(const std::string& app_id):
+ app_id_(app_id) {
+ }
+ bool operator()(const policy::StringArray::value_type nickname) const {
+ return !strcasecmp(app_id_.c_str(), nickname.c_str());
+ }
+
+private:
+ const std::string& app_id_;
+};
}
namespace application_manager {
@@ -124,14 +136,15 @@ namespace commands {
RegisterAppInterfaceRequest::RegisterAppInterfaceRequest(
const MessageSharedPtr& message)
- : CommandRequestImpl(message) {
+ : CommandRequestImpl(message),
+ result_checking_app_hmi_type_(mobile_apis::Result::INVALID_ENUM) {
}
RegisterAppInterfaceRequest::~RegisterAppInterfaceRequest() {
}
bool RegisterAppInterfaceRequest::Init() {
- LOG4CXX_INFO(logger_, "RegisterAppInterfaceRequest::Init");
+ LOG4CXX_AUTO_TRACE(logger_);
return true;
}
@@ -139,8 +152,9 @@ void RegisterAppInterfaceRequest::Run() {
LOG4CXX_INFO(logger_, "RegisterAppInterfaceRequest::Run " << connection_key());
// Fix problem with SDL and HMI HTML. This problem is not actual for HMI PASA.
- // Flag conditional compilation "CUSTOMER_PASA" is used in order to exclude hit code
+ // Flag conditional compilation specific to customer is used in order to exclude hit code
// to RTC
+ // FIXME(EZamakhov): on shutdown - get freez
if (true == profile::Profile::instance()->launch_hmi()) {
// wait till HMI started
while (!ApplicationManagerImpl::instance()->IsHMICooperating()) {
@@ -189,13 +203,6 @@ void RegisterAppInterfaceRequest::Run() {
return;
}
- mobile_apis::Result::eType restriction_result = CheckRestrictions();
- if (mobile_apis::Result::SUCCESS != restriction_result) {
- LOG4CXX_ERROR_EXT(logger_, "Param names restrictions check failed.");
- SendResponse(false, restriction_result);
- return;
- }
-
if (IsWhiteSpaceExist()) {
LOG4CXX_INFO(logger_,
"Incoming register app interface has contains \t\n \\t \\n");
@@ -254,7 +261,7 @@ void RegisterAppInterfaceRequest::Run() {
if (mobile_apis::AppHMIType::NAVIGATION ==
static_cast<mobile_apis::AppHMIType::eType>(
app_type.getElement(i).asUInt())) {
- app->set_allowed_support_navigation(true);
+ app->set_is_navi(true);
}
if (mobile_apis::AppHMIType::COMMUNICATION ==
static_cast<mobile_apis::AppHMIType::eType>(
@@ -281,38 +288,12 @@ void RegisterAppInterfaceRequest::Run() {
device_info);
SendRegisterAppInterfaceResponseToMobile();
-
- MessageHelper::SendLockScreenIconUrlNotification(
- (*message_)[strings::params][strings::connection_key].asInt());
-
- policy::PolicyHandler::instance()->PTExchangeAtRegistration(mobile_app_id);
- }
-}
-
-void RegisterAppInterfaceRequest::on_event(const event_engine::Event& event) {
- LOG4CXX_INFO(logger_, "RegisterAppInterfaceRequest::on_event");
- switch (event.id()) {
- case hmi_apis::FunctionID::TTS_Speak: {
- const smart_objects::SmartObject& message = event.smart_object();
-
- mobile_apis::Result::eType tts_result =
- static_cast<mobile_apis::Result::eType>(
- message[strings::params][hmi_response::code].asInt());
-
- SendRegisterAppInterfaceResponseToMobile(tts_result);
- break;
- }
- default: {
- LOG4CXX_ERROR(logger_, "Received unknown event" << event.id());
- break;
- }
}
}
void RegisterAppInterfaceRequest::SendRegisterAppInterfaceResponseToMobile(
mobile_apis::Result::eType result) {
- smart_objects::SmartObject* params = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
+ smart_objects::SmartObject response_params(smart_objects::SmartType_Map);
ApplicationManagerImpl* app_manager = ApplicationManagerImpl::instance();
const HMICapabilities& hmi_capabilities = app_manager->hmi_capabilities();
@@ -320,14 +301,12 @@ void RegisterAppInterfaceRequest::SendRegisterAppInterfaceResponseToMobile(
ApplicationSharedPtr application =
ApplicationManagerImpl::instance()->application(key);
- if (!application.valid()) {
+ if (!application) {
LOG4CXX_ERROR(logger_, "There is no application for such connection key" <<
key);
return;
}
- smart_objects::SmartObject& response_params = *params;
-
response_params[strings::sync_msg_version][strings::major_version] =
APIVersion::kAPIV3;
response_params[strings::sync_msg_version][strings::minor_version] =
@@ -467,17 +446,17 @@ void RegisterAppInterfaceRequest::SendRegisterAppInterfaceResponseToMobile(
}
ResumeCtrl& resumer = ApplicationManagerImpl::instance()->resume_controller();
- uint32_t hash_id = 0;
+ std::string hash_id = "";
- const char* add_info = "";
- const bool resumption = (*message_)[strings::msg_params].keyExists(strings::hash_id);
+ std::string add_info("");
+ bool resumption = (*message_)[strings::msg_params].keyExists(strings::hash_id);
bool need_restore_vr = resumption;
if (resumption) {
- hash_id = (*message_)[strings::msg_params][strings::hash_id].asUInt();
+ hash_id = (*message_)[strings::msg_params][strings::hash_id].asString();
if (!resumer.CheckApplicationHash(application, hash_id)) {
- LOG4CXX_WARN(logger_, "Hash does not matches");
+ LOG4CXX_WARN(logger_, "Hash does not match");
result = mobile_apis::Result::RESUME_FAILED;
- add_info = "Hash does not matches";
+ add_info = "Hash does not match";
need_restore_vr = false;
} else if (!resumer.CheckPersistenceFilesForResumption(application)) {
LOG4CXX_WARN(logger_, "Persistent data is missed");
@@ -488,8 +467,16 @@ void RegisterAppInterfaceRequest::SendRegisterAppInterfaceResponseToMobile(
add_info = " Resume Succeed";
}
}
+ if ((mobile_apis::Result::SUCCESS == result) &&
+ (mobile_apis::Result::INVALID_ENUM != result_checking_app_hmi_type_)) {
+ add_info += response_info_;
+ result = result_checking_app_hmi_type_;
+ }
- SendResponse(true, result, add_info, params);
+ // in case application exist in resumption we need to send resumeVrgrammars
+ if (false == resumption) {
+ resumption = resumer.IsApplicationSaved(application->mobile_app_id());
+ }
MessageHelper::SendOnAppRegisteredNotificationToHMI(*(application.get()),
resumption,
@@ -497,6 +484,7 @@ void RegisterAppInterfaceRequest::SendRegisterAppInterfaceResponseToMobile(
MessageHelper::SendChangeRegistrationRequestToHMI(application);
+ SendResponse(true, result, add_info.c_str(), &response_params);
if (result != mobile_apis::Result::RESUME_FAILED) {
resumer.StartResumption(application, hash_id);
} else {
@@ -506,17 +494,17 @@ void RegisterAppInterfaceRequest::SendRegisterAppInterfaceResponseToMobile(
mobile_apis::Result::eType
RegisterAppInterfaceRequest::CheckCoincidence() {
- LOG4CXX_TRACE_ENTER(logger_);
+ LOG4CXX_AUTO_TRACE(logger_);
const smart_objects::SmartObject& msg_params =
(*message_)[strings::msg_params];
ApplicationManagerImpl::ApplicationListAccessor accessor;
- const std::set<ApplicationSharedPtr> applications = accessor.applications();
- std::set<ApplicationSharedPtr>::const_iterator it = applications.begin();
+ ApplicationManagerImpl::ApplictionSetConstIt it =
+ accessor.begin();
const std::string app_name = msg_params[strings::app_name].asString();
- for (; applications.end() != it; ++it) {
+ for (; accessor.end() != it; ++it) {
// name check
const std::string& cur_name = (*it)->name();
@@ -577,9 +565,10 @@ mobile_apis::Result::eType RegisterAppInterfaceRequest::CheckWithPolicyData() {
}
if (!app_nicknames.empty()) {
- policy::StringArray::const_iterator it = std::find(
- app_nicknames.begin(), app_nicknames.end(),
+ IsSameNickname compare(
message[strings::msg_params][strings::app_name].asString());
+ policy::StringArray::const_iterator it = std::find_if(
+ app_nicknames.begin(), app_nicknames.end(), compare);
if (app_nicknames.end() == it) {
LOG4CXX_WARN(logger_,
"Application name was not found in nicknames list.");
@@ -608,7 +597,7 @@ mobile_apis::Result::eType RegisterAppInterfaceRequest::CheckWithPolicyData() {
if (!log.empty()) {
response_info_ = "Following AppHMITypes are not present in policy "
"table:" + log;
- result = mobile_apis::Result::WARNINGS;
+ result_checking_app_hmi_type_ = mobile_apis::Result::WARNINGS;
}
}
// Replace AppHMITypes in request with values allowed by policy table
@@ -661,91 +650,22 @@ void RegisterAppInterfaceRequest::FillDeviceInfo(
}
}
-mobile_apis::Result::eType RegisterAppInterfaceRequest::CheckRestrictions() const {
-
- LOG4CXX_INFO(logger_, "RegisterAppInterfaceRequest::CheckRestrictions");
-
- const smart_objects::SmartObject& msg_params =
- (*message_)[strings::msg_params];
-
- const std::string& app_name = msg_params[strings::app_name].asString();
-
- if (ClearParamName(app_name).empty()) {
- printf("Application name is empty.\n");
- return mobile_apis::Result::INVALID_DATA;
- }
-
- if ((app_name[0] == '\n') ||
- ((app_name[0] == '\\') && (app_name[1] == 'n'))) {
-
- printf("Application name has invalid characters.");
- return mobile_apis::Result::INVALID_DATA;
- }
-
- if (msg_params.keyExists(strings::tts_name)) {
-
- const smart_objects::SmartArray* tts =
- msg_params[strings::tts_name].asArray();
-
- smart_objects::SmartArray::const_iterator it = tts->begin();
- smart_objects::SmartArray::const_iterator it_end = tts->end();
-
- for (; it != it_end; ++it) {
-
- const std::string& tts_name = (*it)[strings::text].asString();
-
- if (ClearParamName(tts_name).empty()) {
- printf("TTS value is empty.");
- return mobile_apis::Result::INVALID_DATA;
- }
-
- if ((tts_name[0] == '\n') ||
- ((tts_name[0] == '\\') && (tts_name[1] == 'n'))) {
-
- printf("TTS value(s) has invalid characters.");
- return mobile_apis::Result::INVALID_DATA;
- }
- }
- }
-
- return mobile_apis::Result::SUCCESS;
-}
-
-std::string
-RegisterAppInterfaceRequest::ClearParamName(std::string param_name) const {
-
- // Expecting for chars different from newlines and spaces in the appName
- //
- // There is an agreement, that "\n" is not allowed symbols, so we have to
- // check for this case also
-
- std::string newline = "\\n";
- while (std::string::npos != param_name.find(newline)) {
- param_name.erase(param_name.find(newline), newline.length());
- }
-
- std::string::iterator param_name_new_end =
- std::remove_if(param_name.begin(), param_name.end(), ::isspace);
-
- return std::string(param_name.begin(), param_name_new_end);
-}
-
bool RegisterAppInterfaceRequest::IsApplicationWithSameAppIdRegistered() {
LOG4CXX_INFO(logger_, "RegisterAppInterfaceRequest::"
"IsApplicationWithSameAppIdRegistered");
const std::string mobile_app_id = (*message_)[strings::msg_params]
- [strings::app_id].asString();
+ [strings::app_id].asString();
ApplicationManagerImpl::ApplicationListAccessor accessor;
- const std::set<ApplicationSharedPtr> applications = accessor.applications();
+ const ApplicationManagerImpl::ApplictionSet applications = accessor.applications();
- std::set<ApplicationSharedPtr>::const_iterator it = applications.begin();
- std::set<ApplicationSharedPtr>::const_iterator it_end = applications.end();
+ ApplicationManagerImpl::ApplictionSetConstIt it = applications.begin();
+ ApplicationManagerImpl::ApplictionSetConstIt it_end = applications.end();
for (; it != it_end; ++it) {
- if (mobile_app_id == (*it)->mobile_app_id()->asString()) {
+ if (!strcasecmp(mobile_app_id.c_str(),(*it)->mobile_app_id().c_str())) {
return true;
}
}
@@ -754,7 +674,7 @@ bool RegisterAppInterfaceRequest::IsApplicationWithSameAppIdRegistered() {
}
bool RegisterAppInterfaceRequest::IsWhiteSpaceExist() {
- LOG4CXX_INFO(logger_, "RegisterAppInterfaceRequest::IsWhiteSpaceExist");
+ LOG4CXX_AUTO_TRACE(logger_);
const char* str = NULL;
str = (*message_)[strings::msg_params][strings::app_name].asCharArray();
diff --git a/src/components/application_manager/src/commands/mobile/register_app_interface_response.cc b/src/components/application_manager/src/commands/mobile/register_app_interface_response.cc
index fe6f3a925a..25de8d3ef4 100644
--- a/src/components/application_manager/src/commands/mobile/register_app_interface_response.cc
+++ b/src/components/application_manager/src/commands/mobile/register_app_interface_response.cc
@@ -42,7 +42,7 @@ namespace application_manager {
namespace commands {
void RegisterAppInterfaceResponse::Run() {
- LOG4CXX_INFO(logger_, "RegisterAppInterfaceResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
mobile_apis::Result::eType result_code = mobile_apis::Result::INVALID_ENUM;
bool success = (*message_)[strings::msg_params][strings::success].asBool();
@@ -67,7 +67,7 @@ void RegisterAppInterfaceResponse::Run() {
application(connection_key);
if (app.valid()) {
policy::PolicyHandler *policy_handler = policy::PolicyHandler::instance();
- std::string mobile_app_id = app->mobile_app_id()->asString();
+ std::string mobile_app_id = app->mobile_app_id();
policy_handler->AddApplication(mobile_app_id);
SetHeartBeatTimeout(connection_key, mobile_app_id);
}
@@ -75,10 +75,11 @@ void RegisterAppInterfaceResponse::Run() {
void RegisterAppInterfaceResponse::SetHeartBeatTimeout(
uint32_t connection_key, const std::string& mobile_app_id) {
- LOG4CXX_TRACE_ENTER(logger_);
+ LOG4CXX_AUTO_TRACE(logger_);
policy::PolicyHandler *policy_handler = policy::PolicyHandler::instance();
if (policy_handler->PolicyEnabled()) {
- const int32_t timeout = policy_handler->HeartBeatTimeout(mobile_app_id);
+ const int32_t timeout = policy_handler->HeartBeatTimeout(mobile_app_id) /
+ date_time::DateTime::MILLISECONDS_IN_SECOND;
if (timeout > 0) {
application_manager::ApplicationManagerImpl::instance()->
connection_handler()->SetHeartBeatTimeout(connection_key, timeout);
@@ -86,7 +87,6 @@ void RegisterAppInterfaceResponse::SetHeartBeatTimeout(
} else {
LOG4CXX_INFO(logger_, "Policy is turn off");
}
- LOG4CXX_TRACE_EXIT(logger_);
}
} // namespace commands
diff --git a/src/components/application_manager/src/commands/mobile/reset_global_properties_request.cc b/src/components/application_manager/src/commands/mobile/reset_global_properties_request.cc
index 5e62b789d8..9f6e84b55b 100644
--- a/src/components/application_manager/src/commands/mobile/reset_global_properties_request.cc
+++ b/src/components/application_manager/src/commands/mobile/reset_global_properties_request.cc
@@ -58,7 +58,7 @@ ResetGlobalPropertiesRequest::~ResetGlobalPropertiesRequest() {
}
void ResetGlobalPropertiesRequest::Run() {
- LOG4CXX_INFO(logger_, "ResetGlobalPropertiesRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
uint32_t app_id = (*message_)[strings::params][strings::connection_key].asUInt();
ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id);
@@ -125,7 +125,7 @@ void ResetGlobalPropertiesRequest::Run() {
smart_objects::SmartType_Map);
if (vr_help_title_items) {
- smart_objects::SmartObject* vr_help = MessageHelper::CreateAppVrHelp(app);
+ smart_objects::SmartObjectSPtr vr_help = MessageHelper::CreateAppVrHelp(app);
if (!vr_help) {
return;
}
@@ -236,7 +236,7 @@ bool ResetGlobalPropertiesRequest::ResetVrHelpTitleItems(
}
void ResetGlobalPropertiesRequest::on_event(const event_engine::Event& event) {
- LOG4CXX_INFO(logger_, "ResetGlobalPropertiesRequest::on_event");
+ LOG4CXX_AUTO_TRACE(logger_);
const smart_objects::SmartObject& message = event.smart_object();
switch (event.id()) {
diff --git a/src/components/application_manager/src/commands/mobile/reset_global_properties_response.cc b/src/components/application_manager/src/commands/mobile/reset_global_properties_response.cc
index aeacabf9d5..8e562956ae 100644
--- a/src/components/application_manager/src/commands/mobile/reset_global_properties_response.cc
+++ b/src/components/application_manager/src/commands/mobile/reset_global_properties_response.cc
@@ -47,7 +47,7 @@ ResetGlobalPropertiesResponse::~ResetGlobalPropertiesResponse() {
}
void ResetGlobalPropertiesResponse::Run() {
- LOG4CXX_INFO(logger_, "ResetGlobalPropertiesResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
}
diff --git a/src/components/application_manager/src/commands/mobile/scrollable_message_request.cc b/src/components/application_manager/src/commands/mobile/scrollable_message_request.cc
index 5b3cfa67ac..10f080e0e7 100644
--- a/src/components/application_manager/src/commands/mobile/scrollable_message_request.cc
+++ b/src/components/application_manager/src/commands/mobile/scrollable_message_request.cc
@@ -68,7 +68,7 @@ bool ScrollableMessageRequest::Init() {
}
void ScrollableMessageRequest::Run() {
- LOG4CXX_INFO(logger_, "ScrollableMessageRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr app = application_manager::ApplicationManagerImpl::instance()
->application((*message_)[strings::params][strings::connection_key].asUInt());
@@ -113,7 +113,7 @@ void ScrollableMessageRequest::Run() {
}
void ScrollableMessageRequest::on_event(const event_engine::Event& event) {
- LOG4CXX_INFO(logger_, "ScrollableMessageRequest::on_event");
+ LOG4CXX_AUTO_TRACE(logger_);
const smart_objects::SmartObject& message = event.smart_object();
switch (event.id()) {
@@ -133,8 +133,7 @@ void ScrollableMessageRequest::on_event(const event_engine::Event& event) {
HMICapabilities& hmi_capabilities =
ApplicationManagerImpl::instance()->hmi_capabilities();
bool result = false;
- if (mobile_apis::Result::SUCCESS == result_code ||
- mobile_apis::Result::ABORTED == result_code) {
+ if (mobile_apis::Result::SUCCESS == result_code) {
result = true;
} else if ((mobile_apis::Result::UNSUPPORTED_RESOURCE == result_code) &&
hmi_capabilities.is_ui_cooperating()) {
diff --git a/src/components/application_manager/src/commands/mobile/scrollable_message_response.cc b/src/components/application_manager/src/commands/mobile/scrollable_message_response.cc
index d9692359d0..212a3ba912 100644
--- a/src/components/application_manager/src/commands/mobile/scrollable_message_response.cc
+++ b/src/components/application_manager/src/commands/mobile/scrollable_message_response.cc
@@ -46,7 +46,7 @@ ScrollableMessageResponse::ScrollableMessageResponse(
}
void ScrollableMessageResponse::Run() {
- LOG4CXX_INFO(logger_, "ScrollableMessageResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
mobile_apis::Result::eType result_code = static_cast<mobile_apis::Result::eType>(
(*message_)[strings::msg_params][strings::result_code].asInt());
ApplicationSharedPtr application =
diff --git a/src/components/application_manager/src/commands/mobile/send_location_request.cc b/src/components/application_manager/src/commands/mobile/send_location_request.cc
index b5c2e8a9a5..b77b4afd0f 100644
--- a/src/components/application_manager/src/commands/mobile/send_location_request.cc
+++ b/src/components/application_manager/src/commands/mobile/send_location_request.cc
@@ -46,17 +46,39 @@ SendLocationRequest::~SendLocationRequest() {
}
void SendLocationRequest::Run() {
- LOG4CXX_INFO(logger_, "SendLocationRequest::Run");
+ using namespace hmi_apis;
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr app = application_manager::ApplicationManagerImpl::instance()
->application(connection_key());
if (!app) {
- LOG4CXX_ERROR_EXT(
- logger_, "An application " << app->name() << " is not registered.");
+ LOG4CXX_ERROR_EXT(logger_,
+ "An application with connection key " << connection_key()
+ << " is not registered.");
SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
return;
}
+ const smart_objects::SmartObject& msg_params = (*message_)[strings::msg_params];
+
+ std::list<Common_TextFieldName::eType> fields_to_check;
+ if (msg_params.keyExists(strings::location_name)) {
+ fields_to_check.push_back(Common_TextFieldName::locationName);
+ }
+ if (msg_params.keyExists(strings::location_description)) {
+ fields_to_check.push_back(Common_TextFieldName::locationDescription);
+ }
+ if (msg_params.keyExists(strings::address_lines)) {
+ fields_to_check.push_back(Common_TextFieldName::addressLines);
+ }
+ if (msg_params.keyExists(strings::phone_number)) {
+ fields_to_check.push_back(Common_TextFieldName::phoneNumber);
+ }
+
+ if (!CheckHMICapabilities(fields_to_check)) {
+ SendResponse(false, mobile_apis::Result::UNSUPPORTED_RESOURCE);
+ return;
+ }
if (IsWhiteSpaceExist()) {
LOG4CXX_ERROR(logger_, "Strings contain invalid characters");
@@ -90,7 +112,10 @@ void SendLocationRequest::on_event(const event_engine::Event& event) {
mobile_apis::Result::eType result_code = GetMobileResultCode(
static_cast<hmi_apis::Common_Result::eType>(
message[strings::params][hmi_response::code].asUInt()));
- bool result = mobile_apis::Result::SUCCESS == result_code;
+ bool result =
+ mobile_apis::Result::SUCCESS == result_code ||
+ mobile_apis::Result::WARNINGS == result_code ||
+ mobile_apis::Result::UNSUPPORTED_RESOURCE == result_code ;
SendResponse(result, result_code, NULL, &(message[strings::msg_params]));
break;
}
@@ -161,6 +186,39 @@ bool SendLocationRequest::IsWhiteSpaceExist() {
return false;
}
+bool SendLocationRequest::CheckHMICapabilities(std::list<hmi_apis::Common_TextFieldName::eType>& fields_names) {
+ using namespace smart_objects;
+ using namespace hmi_apis;
+
+ ApplicationManagerImpl* instance = ApplicationManagerImpl::instance();
+ const HMICapabilities& hmi_capabilities = instance->hmi_capabilities();
+ if (!hmi_capabilities.is_ui_cooperating()) {
+ LOG4CXX_ERROR_EXT(logger_, "UI is not supported.");
+ return false;
+ }
+ const size_t size_before = fields_names.size();
+ if (hmi_capabilities.display_capabilities()) {
+ const SmartObject disp_cap = (*hmi_capabilities.display_capabilities());
+ const SmartObject& text_fields = disp_cap.getElement(hmi_response::text_fields);
+ const size_t len = text_fields.length();
+ for (size_t i = 0; i < len; ++i) {
+ const SmartObject& text_field = text_fields[i];
+ const Common_TextFieldName::eType filed_name =
+ static_cast<Common_TextFieldName::eType>(text_field.getElement(strings::name).asInt());
+ const std::list<Common_TextFieldName::eType>::iterator it =
+ std::find(fields_names.begin(), fields_names.end(), filed_name);
+ if (it != fields_names.end()) {
+ fields_names.erase(it);
+ }
+ }
+ }
+ if (fields_names.size() == size_before) {
+ LOG4CXX_ERROR_EXT(logger_, "Some fields are not supported by capabilities");
+ return false;
+ }
+ return true;
+}
+
} // namespace commands
} // namespace application_manager
diff --git a/src/components/application_manager/src/commands/mobile/send_location_response.cc b/src/components/application_manager/src/commands/mobile/send_location_response.cc
index a13b67dc06..32756c999d 100644
--- a/src/components/application_manager/src/commands/mobile/send_location_response.cc
+++ b/src/components/application_manager/src/commands/mobile/send_location_response.cc
@@ -48,7 +48,7 @@ SendLocationResponse::~SendLocationResponse() {
}
void SendLocationResponse::Run() {
- LOG4CXX_INFO(logger_, "SendLocationResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
}
diff --git a/src/components/application_manager/src/commands/mobile/set_app_icon_request.cc b/src/components/application_manager/src/commands/mobile/set_app_icon_request.cc
new file mode 100644
index 0000000000..9851bce3f2
--- /dev/null
+++ b/src/components/application_manager/src/commands/mobile/set_app_icon_request.cc
@@ -0,0 +1,235 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/set_app_icon_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "config_profile/profile.h"
+#include "interfaces/MOBILE_API.h"
+#include "interfaces/HMI_API.h"
+#include "utils/file_system.h"
+
+namespace application_manager {
+
+namespace commands {
+
+SetAppIconRequest::SetAppIconRequest(const MessageSharedPtr& message)
+ : CommandRequestImpl(message) {
+}
+
+SetAppIconRequest::~SetAppIconRequest() {
+}
+
+void SetAppIconRequest::Run() {
+ LOG4CXX_AUTO_TRACE(logger_);
+
+ ApplicationSharedPtr app =
+ ApplicationManagerImpl::instance()->application(connection_key());
+
+ if (!app) {
+ LOG4CXX_ERROR(logger_, "Application is not registered");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return;
+ }
+
+ const std::string& sync_file_name =
+ (*message_)[strings::msg_params][strings::sync_file_name].asString();
+
+ std::string full_file_path =
+ file_system::CurrentWorkingDirectory() + "/" +
+ profile::Profile::instance()->app_storage_folder() + "/";
+ full_file_path += app->folder_name();
+ full_file_path += "/";
+ full_file_path += sync_file_name;
+
+ if (!file_system::FileExists(full_file_path)) {
+ LOG4CXX_ERROR(logger_, "No such file " << full_file_path);
+ SendResponse(false, mobile_apis::Result::INVALID_DATA);
+ return;
+ }
+
+ CopyToIconStorage(full_file_path);
+
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ msg_params[strings::app_id] = app->app_id();
+ msg_params[strings::sync_file_name] = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+// Panasonic requres unchanged path value without encoded special characters
+ const std::string full_file_path_for_hmi = file_system::ConvertPathForURL(
+ full_file_path);
+
+ msg_params[strings::sync_file_name][strings::value] = full_file_path_for_hmi;
+
+ // TODO(VS): research why is image_type hardcoded
+ msg_params[strings::sync_file_name][strings::image_type] =
+ static_cast<int32_t> (SetAppIconRequest::ImageType::DYNAMIC);
+
+ // for further use in on_event function
+ (*message_)[strings::msg_params][strings::sync_file_name] =
+ msg_params[strings::sync_file_name];
+
+ SendHMIRequest(hmi_apis::FunctionID::UI_SetAppIcon, &msg_params, true);
+}
+
+void SetAppIconRequest::CopyToIconStorage(
+ const std::string& path_to_file) const {
+ if (!profile::Profile::instance()->enable_protocol_4()) {
+ LOG4CXX_WARN(logger_,
+ "Icon copying skipped, since protocol ver. 4 is not enabled.");
+ return;
+ }
+
+ std::vector<uint8_t> file_content;
+ if(!file_system::ReadBinaryFile(path_to_file, file_content)) {
+ LOG4CXX_ERROR(logger_, "Can't read icon file: " << path_to_file);
+ return;
+ }
+
+ const std::string icon_storage =
+ profile::Profile::instance()->app_icons_folder();
+ const uint64_t storage_max_size =
+ static_cast<uint64_t>(
+ profile::Profile::instance()->app_icons_folder_max_size());
+ const uint64_t file_size = file_system::FileSize(path_to_file);
+ const uint64_t storage_size = static_cast<uint64_t>(
+ file_system::DirectorySize(icon_storage));
+ if (storage_max_size < (file_size + storage_size)) {
+ RemoveOldestIcons(icon_storage,
+ profile::Profile::instance()->
+ app_icons_amount_to_remove());
+ }
+ ApplicationConstSharedPtr app =
+ application_manager::ApplicationManagerImpl::instance()->
+ application(connection_key());
+
+ if (!app) {
+ LOG4CXX_ERROR(logger_, "Can't get application for connection key: "
+ << connection_key());
+ return;
+ }
+
+ const std::string icon_path =
+ icon_storage + "/" + app->mobile_app_id();
+ if (!file_system::CreateFile(icon_path)) {
+ LOG4CXX_ERROR(logger_, "Can't create icon: " << icon_path);
+ return;
+ }
+
+ if (!file_system::Write(icon_path, file_content)) {
+ LOG4CXX_ERROR(logger_, "Can't write icon: " << icon_path);
+ return;
+ }
+
+ LOG4CXX_DEBUG(logger_, "Icon was successfully copied from :" << path_to_file
+ << " to " << icon_path);
+
+ return;
+}
+
+void SetAppIconRequest::RemoveOldestIcons(const std::string& storage,
+ const uint32_t icons_amount) const {
+ if (!icons_amount) {
+ LOG4CXX_DEBUG(logger_,
+ "No icons will be deleted, since amount of files is zero.");
+ return;
+ }
+ const std::vector<std::string> icons_list = file_system::ListFiles(storage);
+ std::map<uint64_t, std::string> icon_modification_time;
+ std::vector<std::string>::const_iterator it = icons_list.begin();
+ for (;it != icons_list.end(); ++it) {
+ const std::string file_name = *it;
+ const std::string file_path = storage + "/" + file_name;
+ if (!file_system::FileExists(file_path)) {
+ continue;
+ }
+ const uint64_t time = file_system::GetFileModificationTime(file_path);
+ icon_modification_time[time] = file_name;
+ }
+
+ for (size_t counter = 0; counter < icons_amount; ++counter) {
+ const std::string file_name = icon_modification_time.begin()->second;
+ const std::string file_path = storage + "/" + file_name;
+ if (!file_system::DeleteFile(file_path)) {
+ LOG4CXX_DEBUG(logger_, "Error while deleting icon " << file_path);
+ }
+ LOG4CXX_DEBUG(logger_, "Old icon " << file_path
+ << " was deleted successfully.");
+ }
+}
+
+void SetAppIconRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ const smart_objects::SmartObject& message = event.smart_object();
+
+ switch (event.id()) {
+ case hmi_apis::FunctionID::UI_SetAppIcon: {
+ mobile_apis::Result::eType result_code =
+ static_cast<mobile_apis::Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+
+ bool result = mobile_apis::Result::SUCCESS == result_code;
+
+ if (result) {
+ ApplicationSharedPtr app =
+ ApplicationManagerImpl::instance()->application(connection_key());
+
+ if (!message_.valid() || !app.valid()) {
+ LOG4CXX_ERROR(logger_, "NULL pointer.");
+ return;
+ }
+
+ const std::string path = (*message_)[strings::msg_params]
+ [strings::sync_file_name]
+ [strings::value].asString();
+ app->set_app_icon_path(path);
+
+ LOG4CXX_INFO(logger_,
+ "Icon path was set to '" << app->app_icon_path() << "'");
+ }
+
+ SendResponse(result, result_code, NULL, &(message[strings::msg_params]));
+ break;
+ }
+ default: {
+ LOG4CXX_ERROR(logger_, "Received unknown event" << event.id());
+ return;
+ }
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/src/components/application_manager/src/commands/mobile/set_app_icon_response.cc b/src/components/application_manager/src/commands/mobile/set_app_icon_response.cc
new file mode 100644
index 0000000000..563490bd46
--- /dev/null
+++ b/src/components/application_manager/src/commands/mobile/set_app_icon_response.cc
@@ -0,0 +1,56 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/set_app_icon_response.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+SetAppIconResponse::SetAppIconResponse(const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+SetAppIconResponse::~SetAppIconResponse() {
+}
+
+void SetAppIconResponse::Run() {
+ LOG4CXX_AUTO_TRACE(logger_);
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/src/components/application_manager/src/commands/mobile/set_display_layout_request.cc b/src/components/application_manager/src/commands/mobile/set_display_layout_request.cc
index 60a2583287..b59a631d8d 100644
--- a/src/components/application_manager/src/commands/mobile/set_display_layout_request.cc
+++ b/src/components/application_manager/src/commands/mobile/set_display_layout_request.cc
@@ -49,7 +49,7 @@ SetDisplayLayoutRequest::~SetDisplayLayoutRequest() {
}
void SetDisplayLayoutRequest::Run() {
- LOG4CXX_INFO(logger_, "SetDisplayLayoutRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationConstSharedPtr app = ApplicationManagerImpl::instance()
->application(connection_key());
@@ -66,7 +66,7 @@ void SetDisplayLayoutRequest::Run() {
}
void SetDisplayLayoutRequest::on_event(const event_engine::Event& event) {
- LOG4CXX_INFO(logger_, "SetDisplayLayoutRequest::on_event");
+ LOG4CXX_AUTO_TRACE(logger_);
const smart_objects::SmartObject& message = event.smart_object();
switch (event.id()) {
diff --git a/src/components/application_manager/src/commands/mobile/set_display_layout_response.cc b/src/components/application_manager/src/commands/mobile/set_display_layout_response.cc
index 51f8c1f35b..3844b3bf05 100644
--- a/src/components/application_manager/src/commands/mobile/set_display_layout_response.cc
+++ b/src/components/application_manager/src/commands/mobile/set_display_layout_response.cc
@@ -48,7 +48,7 @@ SetDisplayLayoutResponse::~SetDisplayLayoutResponse() {
}
void SetDisplayLayoutResponse::Run() {
- LOG4CXX_INFO(logger_, "SetDisplayLayoutResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
diff --git a/src/components/application_manager/src/commands/mobile/set_global_properties_request.cc b/src/components/application_manager/src/commands/mobile/set_global_properties_request.cc
index f7216c818c..ff46e041ff 100644
--- a/src/components/application_manager/src/commands/mobile/set_global_properties_request.cc
+++ b/src/components/application_manager/src/commands/mobile/set_global_properties_request.cc
@@ -59,7 +59,7 @@ SetGlobalPropertiesRequest::~SetGlobalPropertiesRequest() {
}
void SetGlobalPropertiesRequest::Run() {
- LOG4CXX_INFO(logger_, "SetGlobalPropertiesRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
const smart_objects::SmartObject& msg_params =
(*message_)[strings::msg_params];
@@ -197,7 +197,8 @@ void SetGlobalPropertiesRequest::Run() {
SendHMIRequest(hmi_apis::FunctionID::UI_SetGlobalProperties,
&params, true);
} else if (!is_vr_help_title_present && !is_vr_help_present) {
- const CommandsMap& cmdMap = app->commands_map();
+ const DataAccessor<CommandsMap> accessor = app->commands_map();
+ const CommandsMap& cmdMap = accessor.GetData();
CommandsMap::const_iterator command_it = cmdMap.begin();
int32_t index = 0;
@@ -304,7 +305,7 @@ bool SetGlobalPropertiesRequest::CheckVrHelpItemsOrder() {
}
void SetGlobalPropertiesRequest::on_event(const event_engine::Event& event) {
- LOG4CXX_INFO(logger_, "SetGlobalPropertiesRequest::on_event");
+ LOG4CXX_AUTO_TRACE(logger_);
const smart_objects::SmartObject& message = event.smart_object();
ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(CommandRequestImpl::connection_key());
@@ -383,7 +384,7 @@ bool SetGlobalPropertiesRequest::ValidateConditionalMandatoryParameters(
}
bool SetGlobalPropertiesRequest::IsWhiteSpaceExist() {
- LOG4CXX_INFO(logger_, "SetGlobalPropertiesRequest::IsWhiteSpaceExist");
+ LOG4CXX_AUTO_TRACE(logger_);
const char* str;
const smart_objects::SmartObject& msg_params =
diff --git a/src/components/application_manager/src/commands/mobile/set_global_properties_response.cc b/src/components/application_manager/src/commands/mobile/set_global_properties_response.cc
index 5f0b62fb4d..759333385d 100644
--- a/src/components/application_manager/src/commands/mobile/set_global_properties_response.cc
+++ b/src/components/application_manager/src/commands/mobile/set_global_properties_response.cc
@@ -48,7 +48,7 @@ SetGlobalPropertiesResponse::~SetGlobalPropertiesResponse() {
}
void SetGlobalPropertiesResponse::Run() {
- LOG4CXX_INFO(logger_, "SetGlobalPropertiesResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
}
diff --git a/src/components/application_manager/src/commands/mobile/set_media_clock_timer_request.cc b/src/components/application_manager/src/commands/mobile/set_media_clock_timer_request.cc
index c9b2eb5ef5..536bb755ed 100644
--- a/src/components/application_manager/src/commands/mobile/set_media_clock_timer_request.cc
+++ b/src/components/application_manager/src/commands/mobile/set_media_clock_timer_request.cc
@@ -49,7 +49,7 @@ SetMediaClockRequest::~SetMediaClockRequest() {
}
void SetMediaClockRequest::Run() {
- LOG4CXX_INFO(logger_, "SetMediaClockRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr app =
ApplicationManagerImpl::instance()->application(connection_key());
@@ -81,7 +81,7 @@ void SetMediaClockRequest::Run() {
}
void SetMediaClockRequest::on_event(const event_engine::Event& event) {
- LOG4CXX_INFO(logger_, "SetMediaClockRequest::on_event");
+ LOG4CXX_AUTO_TRACE(logger_);
const smart_objects::SmartObject& message = event.smart_object();
switch (event.id()) {
diff --git a/src/components/application_manager/src/commands/mobile/set_media_clock_timer_response.cc b/src/components/application_manager/src/commands/mobile/set_media_clock_timer_response.cc
index 73923b0021..da6f204da4 100644
--- a/src/components/application_manager/src/commands/mobile/set_media_clock_timer_response.cc
+++ b/src/components/application_manager/src/commands/mobile/set_media_clock_timer_response.cc
@@ -47,7 +47,7 @@ SetMediaClockTimerResponse::~SetMediaClockTimerResponse() {
}
void SetMediaClockTimerResponse::Run() {
- LOG4CXX_INFO(logger_, "SetMediaClockTimerResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
}
diff --git a/src/components/application_manager/src/commands/mobile/show_constant_tbt_request.cc b/src/components/application_manager/src/commands/mobile/show_constant_tbt_request.cc
index f4e70c53ac..1e861d14ce 100644
--- a/src/components/application_manager/src/commands/mobile/show_constant_tbt_request.cc
+++ b/src/components/application_manager/src/commands/mobile/show_constant_tbt_request.cc
@@ -51,7 +51,7 @@ ShowConstantTBTRequest::~ShowConstantTBTRequest() {
}
void ShowConstantTBTRequest::Run() {
- LOG4CXX_INFO(logger_, "ShowConstantTBTRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
(*message_)[strings::params][strings::connection_key].asUInt());
@@ -175,7 +175,7 @@ void ShowConstantTBTRequest::Run() {
void ShowConstantTBTRequest::on_event(const event_engine::Event& event) {
- LOG4CXX_INFO(logger_, "ShowConstantTBTRequest::on_event");
+ LOG4CXX_AUTO_TRACE(logger_);
const smart_objects::SmartObject& message = event.smart_object();
switch (event.id()) {
@@ -206,7 +206,7 @@ void ShowConstantTBTRequest::on_event(const event_engine::Event& event) {
}
bool ShowConstantTBTRequest::IsWhiteSpaceExist() {
- LOG4CXX_INFO(logger_, "ShowConstantTBTRequest::IsWhiteSpaceExist");
+ LOG4CXX_AUTO_TRACE(logger_);
const char* str = NULL;
if ((*message_)[strings::msg_params].keyExists(strings::turn_icon)) {
diff --git a/src/components/application_manager/src/commands/mobile/show_constant_tbt_response.cc b/src/components/application_manager/src/commands/mobile/show_constant_tbt_response.cc
index d5539d148c..e45cd760df 100644
--- a/src/components/application_manager/src/commands/mobile/show_constant_tbt_response.cc
+++ b/src/components/application_manager/src/commands/mobile/show_constant_tbt_response.cc
@@ -48,7 +48,7 @@ ShowConstantTBTResponse::~ShowConstantTBTResponse() {
}
void ShowConstantTBTResponse::Run() {
- LOG4CXX_INFO(logger_, "ShowConstantTBTResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
}
diff --git a/src/components/application_manager/src/commands/mobile/show_request.cc b/src/components/application_manager/src/commands/mobile/show_request.cc
index eeef60101e..0a136e0ac2 100644
--- a/src/components/application_manager/src/commands/mobile/show_request.cc
+++ b/src/components/application_manager/src/commands/mobile/show_request.cc
@@ -50,7 +50,7 @@ ShowRequest::~ShowRequest() {
}
void ShowRequest::Run() {
- LOG4CXX_INFO(logger_, "ShowRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr app = application_manager::ApplicationManagerImpl::instance()
->application(
@@ -216,7 +216,7 @@ void ShowRequest::Run() {
}
void ShowRequest::on_event(const event_engine::Event& event) {
- LOG4CXX_INFO(logger_, "ShowRequest::on_event");
+ LOG4CXX_AUTO_TRACE(logger_);
const smart_objects::SmartObject& message = event.smart_object();
switch (event.id()) {
@@ -251,7 +251,7 @@ void ShowRequest::on_event(const event_engine::Event& event) {
}
bool ShowRequest::CheckStringsOfShowRequest() {
- LOG4CXX_INFO(logger_, "ShowRequest::CheckStringsOfShowRequest");
+ LOG4CXX_AUTO_TRACE(logger_);
const char* str;
if ((*message_)[strings::msg_params].keyExists(strings::main_field_4)) {
diff --git a/src/components/application_manager/src/commands/mobile/show_response.cc b/src/components/application_manager/src/commands/mobile/show_response.cc
index 1f9c59c6fc..0c46cdd83c 100644
--- a/src/components/application_manager/src/commands/mobile/show_response.cc
+++ b/src/components/application_manager/src/commands/mobile/show_response.cc
@@ -48,7 +48,7 @@ ShowResponse::~ShowResponse() {
}
void ShowResponse::Run() {
- LOG4CXX_INFO(logger_, "ShowResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
}
diff --git a/src/components/application_manager/src/commands/mobile/slider_request.cc b/src/components/application_manager/src/commands/mobile/slider_request.cc
index 52f3c7dee7..78a9bb6aac 100644
--- a/src/components/application_manager/src/commands/mobile/slider_request.cc
+++ b/src/components/application_manager/src/commands/mobile/slider_request.cc
@@ -60,7 +60,7 @@ bool SliderRequest::Init() {
}
void SliderRequest::Run() {
- LOG4CXX_INFO(logger_, "SliderRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr application =
application_manager::ApplicationManagerImpl::instance()->application(
@@ -110,7 +110,7 @@ void SliderRequest::Run() {
}
void SliderRequest::on_event(const event_engine::Event& event) {
- LOG4CXX_INFO(logger_, "SliderRequest::on_event");
+ LOG4CXX_AUTO_TRACE(logger_);
const smart_objects::SmartObject& message = event.smart_object();
const event_engine::Event::EventID event_id = event.id();
@@ -131,18 +131,16 @@ void SliderRequest::on_event(const event_engine::Event& event) {
const int response_code =
message[strings::params][hmi_response::code].asInt();
-
smart_objects::SmartObject response_msg_params = message[strings::msg_params];
- if (response_code == hmi_apis::Common_Result::ABORTED) {
+ if (response_code == hmi_apis::Common_Result::ABORTED &&
+ message[strings::params][strings::data].keyExists(strings::slider_position)) {
//Copy slider_position info to msg_params section
- response_msg_params[strings::slider_position] =
+ response_msg_params[strings::slider_position] =
message[strings::params][strings::data][strings::slider_position];
}
const bool is_response_success =
- (mobile_apis::Result::SUCCESS == response_code) ||
- //Aborted has slider_position data
- (mobile_apis::Result::ABORTED == response_code);
+ (mobile_apis::Result::SUCCESS == response_code);
SendResponse(is_response_success,
mobile_apis::Result::eType(response_code),
diff --git a/src/components/application_manager/src/commands/mobile/slider_response.cc b/src/components/application_manager/src/commands/mobile/slider_response.cc
index bfb6b0a1e6..7f0c10b068 100644
--- a/src/components/application_manager/src/commands/mobile/slider_response.cc
+++ b/src/components/application_manager/src/commands/mobile/slider_response.cc
@@ -46,7 +46,7 @@ SliderResponse::~SliderResponse() {
}
void SliderResponse::Run() {
- LOG4CXX_INFO(logger_, "SliderResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
}
diff --git a/src/components/application_manager/src/commands/mobile/speak_request.cc b/src/components/application_manager/src/commands/mobile/speak_request.cc
index de37e8b49e..b2f112a64a 100644
--- a/src/components/application_manager/src/commands/mobile/speak_request.cc
+++ b/src/components/application_manager/src/commands/mobile/speak_request.cc
@@ -49,7 +49,7 @@ SpeakRequest::~SpeakRequest() {
}
void SpeakRequest::Run() {
- LOG4CXX_INFO(logger_, "SpeakRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr app = application_manager::ApplicationManagerImpl::instance()
->application(connection_key());
@@ -70,13 +70,13 @@ void SpeakRequest::Run() {
(*message_)[strings::msg_params][strings::app_id] = app->app_id();
(*message_)[strings::msg_params][hmi_request::speak_type] =
- hmi_apis::Common_SpeakType::SPEAK;
+ hmi_apis::Common_MethodName::SPEAK;
SendHMIRequest(hmi_apis::FunctionID::TTS_Speak,
&message_->getElement(strings::msg_params), true);
}
void SpeakRequest::on_event(const event_engine::Event& event) {
- LOG4CXX_INFO(logger_, "SpeakRequest::on_event");
+ LOG4CXX_AUTO_TRACE(logger_);
switch (event.id()) {
case hmi_apis::FunctionID::TTS_Speak: {
LOG4CXX_INFO(logger_, "Received TTS_Speak event");
@@ -100,7 +100,7 @@ void SpeakRequest::on_event(const event_engine::Event& event) {
void SpeakRequest::ProcessTTSSpeakResponse(
const smart_objects::SmartObject& message) {
- LOG4CXX_INFO(logger_, "SpeakRequest::ProcessTTSSpeakResponse");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr application = ApplicationManagerImpl::instance()->application(
connection_key());
@@ -134,7 +134,7 @@ void SpeakRequest::ProcessTTSSpeakResponse(
}
bool SpeakRequest::IsWhiteSpaceExist() {
- LOG4CXX_INFO(logger_, "SpeakRequest::IsWhiteSpaceExist");
+ LOG4CXX_AUTO_TRACE(logger_);
const char* str = NULL;
if ((*message_)[strings::msg_params].keyExists(strings::tts_chunks)) {
diff --git a/src/components/application_manager/src/commands/mobile/speak_response.cc b/src/components/application_manager/src/commands/mobile/speak_response.cc
index 92b85bbb84..d99b1d0952 100644
--- a/src/components/application_manager/src/commands/mobile/speak_response.cc
+++ b/src/components/application_manager/src/commands/mobile/speak_response.cc
@@ -48,7 +48,7 @@ SpeakResponse::~SpeakResponse() {
}
void SpeakResponse::Run() {
- LOG4CXX_INFO(logger_, "SpeakResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
}
diff --git a/src/components/application_manager/src/commands/mobile/subscribe_button_request.cc b/src/components/application_manager/src/commands/mobile/subscribe_button_request.cc
index b6a4d8a28e..abd0662547 100644
--- a/src/components/application_manager/src/commands/mobile/subscribe_button_request.cc
+++ b/src/components/application_manager/src/commands/mobile/subscribe_button_request.cc
@@ -48,7 +48,7 @@ SubscribeButtonRequest::~SubscribeButtonRequest() {
}
void SubscribeButtonRequest::Run() {
- LOG4CXX_INFO(logger_, "SubscribeButtonRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr app =
ApplicationManagerImpl::instance()->application(connection_key());
diff --git a/src/components/application_manager/src/commands/mobile/subscribe_button_response.cc b/src/components/application_manager/src/commands/mobile/subscribe_button_response.cc
index 6253f8ca3d..a3452ef19f 100644
--- a/src/components/application_manager/src/commands/mobile/subscribe_button_response.cc
+++ b/src/components/application_manager/src/commands/mobile/subscribe_button_response.cc
@@ -46,7 +46,7 @@ SubscribeButtonResponse::~SubscribeButtonResponse() {
}
void SubscribeButtonResponse::Run() {
- LOG4CXX_INFO(logger_, "SubscribeButtonResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
// check if response false
if (true == (*message_)[strings::msg_params].keyExists(strings::success)) {
diff --git a/src/components/application_manager/src/commands/mobile/subscribe_vehicle_data_request.cc b/src/components/application_manager/src/commands/mobile/subscribe_vehicle_data_request.cc
index 35595c2df6..1640f0b497 100644
--- a/src/components/application_manager/src/commands/mobile/subscribe_vehicle_data_request.cc
+++ b/src/components/application_manager/src/commands/mobile/subscribe_vehicle_data_request.cc
@@ -84,7 +84,7 @@ namespace {
#endif // #ifdef HMI_DBUS_API
void SubscribeVehicleDataRequest::Run() {
- LOG4CXX_INFO(logger_, "SubscribeVehicleDataRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
CommandRequestImpl::connection_key());
@@ -172,7 +172,7 @@ void SubscribeVehicleDataRequest::Run() {
}
void SubscribeVehicleDataRequest::on_event(const event_engine::Event& event) {
- LOG4CXX_INFO(logger_, "SubscribeVehicleDataRequest::on_event");
+ LOG4CXX_AUTO_TRACE(logger_);
const smart_objects::SmartObject& message = event.smart_object();
diff --git a/src/components/application_manager/src/commands/mobile/subscribe_vehicle_data_response.cc b/src/components/application_manager/src/commands/mobile/subscribe_vehicle_data_response.cc
index 972a654188..c0554c62eb 100644
--- a/src/components/application_manager/src/commands/mobile/subscribe_vehicle_data_response.cc
+++ b/src/components/application_manager/src/commands/mobile/subscribe_vehicle_data_response.cc
@@ -48,7 +48,7 @@ SubscribeVehicleDataResponse::~SubscribeVehicleDataResponse() {
}
void SubscribeVehicleDataResponse::Run() {
- LOG4CXX_INFO(logger_, "SubscribeVehicleDataResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
}
diff --git a/src/components/application_manager/src/commands/mobile/system_request.cc b/src/components/application_manager/src/commands/mobile/system_request.cc
index 2765aad8d7..25fbe6e3fd 100644
--- a/src/components/application_manager/src/commands/mobile/system_request.cc
+++ b/src/components/application_manager/src/commands/mobile/system_request.cc
@@ -40,6 +40,8 @@ Copyright (c) 2013, Ford Motor Company
#include "interfaces/MOBILE_API.h"
#include "config_profile/profile.h"
#include "utils/file_system.h"
+#include "formatters/CFormatterJsonBase.hpp"
+#include "json/json.h"
namespace application_manager {
@@ -55,7 +57,7 @@ SystemRequest::~SystemRequest() {
}
void SystemRequest::Run() {
- LOG4CXX_INFO(logger_, "SystemRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr application =
ApplicationManagerImpl::instance()->application(connection_key());
@@ -66,12 +68,14 @@ void SystemRequest::Run() {
return;
}
- mobile_apis::RequestType::eType request_type =
+ const mobile_apis::RequestType::eType request_type =
static_cast<mobile_apis::RequestType::eType>(
(*message_)[strings::msg_params][strings::request_type].asInt());
if (!(*message_)[strings::params].keyExists(strings::binary_data) &&
- mobile_apis::RequestType::PROPRIETARY == request_type) {
+ (mobile_apis::RequestType::PROPRIETARY == request_type ||
+ mobile_apis::RequestType::QUERY_APPS == request_type)) {
+
LOG4CXX_ERROR(logger_, "Binary data empty");
SendResponse(false, mobile_apis::Result::INVALID_DATA);
@@ -83,6 +87,18 @@ void SystemRequest::Run() {
binary_data = (*message_)[strings::params][strings::binary_data].asBinary();
}
+ if (mobile_apis::RequestType::QUERY_APPS == request_type) {
+ using namespace NsSmartDeviceLink::NsJSONHandler::Formatters;
+
+ smart_objects::SmartObject sm_object;
+ CFormatterJsonBase::jsonValueToObj(Json::Value(
+ std::string(binary_data.begin(),
+ binary_data.end())),
+ sm_object);
+ ApplicationManagerImpl::instance()->ProcessQueryApp(sm_object);
+ return;
+ }
+
std::string file_path = profile::Profile::instance()->system_files_path();
if (!file_system::CreateDirectoryRecursively(file_path)) {
LOG4CXX_ERROR(logger_, "Cann't create folder.");
@@ -125,7 +141,7 @@ void SystemRequest::Run() {
}
if (mobile_apis::RequestType::PROPRIETARY != request_type) {
- msg_params[strings::app_id] = (application->mobile_app_id())->asString();
+ msg_params[strings::app_id] = (application->mobile_app_id());
}
msg_params[strings::request_type] =
(*message_)[strings::msg_params][strings::request_type];
diff --git a/src/components/application_manager/src/commands/mobile/system_response.cc b/src/components/application_manager/src/commands/mobile/system_response.cc
index e77ab08450..8b4fdafd1b 100644
--- a/src/components/application_manager/src/commands/mobile/system_response.cc
+++ b/src/components/application_manager/src/commands/mobile/system_response.cc
@@ -46,7 +46,7 @@ SystemResponse::~SystemResponse() {
}
void SystemResponse::Run() {
- LOG4CXX_INFO(logger_, "SystemResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
}
diff --git a/src/components/application_manager/src/commands/mobile/unregister_app_interface_request.cc b/src/components/application_manager/src/commands/mobile/unregister_app_interface_request.cc
index a07cfcd8f0..6199818dbe 100644
--- a/src/components/application_manager/src/commands/mobile/unregister_app_interface_request.cc
+++ b/src/components/application_manager/src/commands/mobile/unregister_app_interface_request.cc
@@ -40,7 +40,7 @@ namespace application_manager {
namespace commands {
void UnregisterAppInterfaceRequest::Run() {
- LOG4CXX_INFO(logger_, "UnregisterAppInterfaceRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl* app_manager = ApplicationManagerImpl::instance();
diff --git a/src/components/application_manager/src/commands/mobile/unregister_app_interface_response.cc b/src/components/application_manager/src/commands/mobile/unregister_app_interface_response.cc
index 8ef0eb3ed0..49d9276d35 100644
--- a/src/components/application_manager/src/commands/mobile/unregister_app_interface_response.cc
+++ b/src/components/application_manager/src/commands/mobile/unregister_app_interface_response.cc
@@ -38,7 +38,7 @@ namespace application_manager {
namespace commands {
void UnregisterAppInterfaceResponse::Run() {
- LOG4CXX_INFO(logger_, "UnregisterAppInterfaceResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
SendResponse((*message_)[strings::msg_params][strings::success].asBool());
}
diff --git a/src/components/application_manager/src/commands/mobile/unsubscribe_button_request.cc b/src/components/application_manager/src/commands/mobile/unsubscribe_button_request.cc
index f22d1c0a2f..08a27dedfa 100644
--- a/src/components/application_manager/src/commands/mobile/unsubscribe_button_request.cc
+++ b/src/components/application_manager/src/commands/mobile/unsubscribe_button_request.cc
@@ -50,7 +50,7 @@ UnsubscribeButtonRequest::~UnsubscribeButtonRequest() {
}
void UnsubscribeButtonRequest::Run() {
- LOG4CXX_INFO(logger_, "UnsubscribeButtonRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
(*message_)[str::params][str::connection_key].asUInt());
diff --git a/src/components/application_manager/src/commands/mobile/unsubscribe_button_response.cc b/src/components/application_manager/src/commands/mobile/unsubscribe_button_response.cc
index 1331eac27f..8bece66157 100644
--- a/src/components/application_manager/src/commands/mobile/unsubscribe_button_response.cc
+++ b/src/components/application_manager/src/commands/mobile/unsubscribe_button_response.cc
@@ -47,7 +47,7 @@ UnsubscribeButtonResponse::~UnsubscribeButtonResponse() {
}
void UnsubscribeButtonResponse::Run() {
- LOG4CXX_INFO(logger_, "UnsubscribeButtonResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
diff --git a/src/components/application_manager/src/commands/mobile/unsubscribe_vehicle_data_request.cc b/src/components/application_manager/src/commands/mobile/unsubscribe_vehicle_data_request.cc
index fc7145078f..7d05ce328f 100644
--- a/src/components/application_manager/src/commands/mobile/unsubscribe_vehicle_data_request.cc
+++ b/src/components/application_manager/src/commands/mobile/unsubscribe_vehicle_data_request.cc
@@ -88,7 +88,7 @@ namespace {
#endif // #ifdef HMI_DBUS_API
void UnsubscribeVehicleDataRequest::Run() {
- LOG4CXX_INFO(logger_, "UnsubscribeVehicleDataRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
CommandRequestImpl::connection_key());
@@ -176,7 +176,7 @@ void UnsubscribeVehicleDataRequest::Run() {
}
void UnsubscribeVehicleDataRequest::on_event(const event_engine::Event& event) {
- LOG4CXX_INFO(logger_, "UnsubscribeVehicleDataRequest::on_event");
+ LOG4CXX_AUTO_TRACE(logger_);
const smart_objects::SmartObject& message = event.smart_object();
diff --git a/src/components/application_manager/src/commands/mobile/unsubscribe_vehicle_data_response.cc b/src/components/application_manager/src/commands/mobile/unsubscribe_vehicle_data_response.cc
index 60f7077da7..87b2e6e5e1 100644
--- a/src/components/application_manager/src/commands/mobile/unsubscribe_vehicle_data_response.cc
+++ b/src/components/application_manager/src/commands/mobile/unsubscribe_vehicle_data_response.cc
@@ -45,7 +45,7 @@ UnsubscribeVehicleDataResponse::~UnsubscribeVehicleDataResponse() {
}
void UnsubscribeVehicleDataResponse::Run() {
- LOG4CXX_INFO(logger_, "UnsubscribeVehicleDataResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
diff --git a/src/components/application_manager/src/commands/mobile/update_turn_list_request.cc b/src/components/application_manager/src/commands/mobile/update_turn_list_request.cc
index 9447772568..650e698bf4 100644
--- a/src/components/application_manager/src/commands/mobile/update_turn_list_request.cc
+++ b/src/components/application_manager/src/commands/mobile/update_turn_list_request.cc
@@ -51,7 +51,7 @@ UpdateTurnListRequest::~UpdateTurnListRequest() {
}
void UpdateTurnListRequest::Run() {
- LOG4CXX_INFO(logger_, "UpdateTurnListRequest::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
(*message_)[strings::params][strings::connection_key].asUInt());
@@ -141,7 +141,7 @@ void UpdateTurnListRequest::Run() {
}
void UpdateTurnListRequest::on_event(const event_engine::Event& event) {
- LOG4CXX_INFO(logger_, "UpdateTurnListRequest::on_event");
+ LOG4CXX_AUTO_TRACE(logger_);
const smart_objects::SmartObject& message = event.smart_object();
switch (event.id()) {
@@ -188,7 +188,7 @@ bool UpdateTurnListRequest::CheckTurnListArray() {
}
bool UpdateTurnListRequest::IsWhiteSpaceExist() {
- LOG4CXX_INFO(logger_, "UpdateTurnListRequest::IsWhiteSpaceExist");
+ LOG4CXX_AUTO_TRACE(logger_);
const char* str = NULL;
if ((*message_)[strings::msg_params].keyExists(strings::turn_list)) {
diff --git a/src/components/application_manager/src/commands/mobile/update_turn_list_response.cc b/src/components/application_manager/src/commands/mobile/update_turn_list_response.cc
index ec1e0bce8a..26e5c460d3 100644
--- a/src/components/application_manager/src/commands/mobile/update_turn_list_response.cc
+++ b/src/components/application_manager/src/commands/mobile/update_turn_list_response.cc
@@ -47,7 +47,7 @@ UpdateTurnListResponse::~UpdateTurnListResponse() {
}
void UpdateTurnListResponse::Run() {
- LOG4CXX_INFO(logger_, "UpdateTurnListResponse::Run");
+ LOG4CXX_AUTO_TRACE(logger_);
ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
}
diff --git a/src/components/application_manager/src/event_engine/event.cc b/src/components/application_manager/src/event_engine/event.cc
index e454025df1..561e8a841f 100644
--- a/src/components/application_manager/src/event_engine/event.cc
+++ b/src/components/application_manager/src/event_engine/event.cc
@@ -48,7 +48,7 @@ void Event::raise() {
EventDispatcher::instance()->raise_event(*this);
}
-void Event::set_smart_object(smart_objects::SmartObject& so) {
+void Event::set_smart_object(const smart_objects::SmartObject& so) {
response_so_ = so;
}
diff --git a/src/components/application_manager/src/event_engine/event_dispatcher.cc b/src/components/application_manager/src/event_engine/event_dispatcher.cc
index a552ef6228..bac94431f0 100644
--- a/src/components/application_manager/src/event_engine/event_dispatcher.cc
+++ b/src/components/application_manager/src/event_engine/event_dispatcher.cc
@@ -39,37 +39,38 @@ namespace event_engine {
using namespace sync_primitives;
EventDispatcher::EventDispatcher()
- : observers_() {
+ : observer_list_lock_(true),
+ observers_() {
}
EventDispatcher::~EventDispatcher() {
}
void EventDispatcher::raise_event(const Event& event) {
- // create local list
- ObserverList list;
{
AutoLock auto_lock(state_lock_);
// check if event is notification
if (hmi_apis::messageType::notification == event.smart_object_type()) {
-
- //ObserversMap iterator
- ObserversMap::iterator it = observers_[event.id()].begin();
- for (; observers_[event.id()].end() != it; ++it) {
- list = it->second;
- }
+ const uint32_t notification_correlation_id = 0;
+ observers_list_ = observers_[event.id()][notification_correlation_id];
}
if (hmi_apis::messageType::response == event.smart_object_type()
|| hmi_apis::messageType::error_response == event.smart_object_type()) {
- list = observers_[event.id()][event.smart_object_correlation_id()];
+ observers_list_ = observers_[event.id()][event.smart_object_correlation_id()];
}
}
// Call observers
- ObserverList::iterator observers = list.begin();
- for (; list.end() != observers; ++observers) {
- (*observers)->on_event(event);
+ EventObserver* temp;
+ while (observers_list_.size() > 0) {
+ observer_list_lock_.Acquire();
+ if (!observers_list_.empty()) {
+ temp = observers_list_.front();
+ observers_list_.pop_front();
+ temp->on_event(event);
+ }
+ observer_list_lock_.Release();
}
}
@@ -81,43 +82,57 @@ void EventDispatcher::add_observer(const Event::EventID& event_id,
}
void EventDispatcher::remove_observer(const Event::EventID& event_id,
- EventObserver* const observer) {
+ EventObserver* const observer) {
+ remove_observer_from_list(observer);
AutoLock auto_lock(state_lock_);
ObserversMap::iterator it = observers_[event_id].begin();
for (; observers_[event_id].end() != it; ++it) {
//ObserverList iterator
- ObserverList::iterator observer_it = it->second.begin();
- while (it->second.end() != observer_it) {
- if (observer->id() == (*observer_it)->id()) {
- observer_it = it->second.erase(observer_it);
- } else {
- ++observer_it;
- }
- }
+ ObserverList::iterator observer_it = it->second.begin();
+ while (it->second.end() != observer_it) {
+ if (observer->id() == (*observer_it)->id()) {
+ observer_it = it->second.erase(observer_it);
+ } else {
+ ++observer_it;
+ }
+ }
}
}
void EventDispatcher::remove_observer(EventObserver* const observer) {
+ remove_observer_from_list(observer);
AutoLock auto_lock(state_lock_);
EventObserverMap::iterator event_map = observers_.begin();
for (; observers_.end() != event_map; ++event_map) {
-
ObserversMap::iterator it = event_map->second.begin();
- for (; event_map->second.end() != it; ++it) {
-
- //ObserverList iterator
- ObserverList::iterator observer_it = it->second.begin();
- while (it->second.end() != observer_it) {
- if (observer->id() == (*observer_it)->id()) {
- observer_it = it->second.erase(observer_it);
- } else {
- ++observer_it;
- }
+ for (; event_map->second.end() != it; ++it) {
+
+ //ObserverList iterator
+ ObserverList::iterator observer_it = it->second.begin();
+ while (it->second.end() != observer_it) {
+ if (observer->id() == (*observer_it)->id()) {
+ observer_it = it->second.erase(observer_it);
+ } else {
+ ++observer_it;
+ }
+ }
+ }
+ }
+}
+
+void EventDispatcher::remove_observer_from_list(EventObserver* const observer) {
+ AutoLock auto_lock(observer_list_lock_);
+ if (!observers_list_.empty()) {
+ ObserverList::iterator it_begin = observers_list_.begin();
+ for(; it_begin != observers_list_.end(); ++it_begin) {
+ if ((*it_begin)->id() == observer->id()) {
+ it_begin = observers_list_.erase(it_begin);
}
}
}
}
-}
-}
+} // namespace event_engine
+
+}// namespace application_manager
diff --git a/src/components/application_manager/src/hmi_capabilities.cc b/src/components/application_manager/src/hmi_capabilities.cc
index 5a3ce71ec6..57b210c828 100644
--- a/src/components/application_manager/src/hmi_capabilities.cc
+++ b/src/components/application_manager/src/hmi_capabilities.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -133,6 +133,11 @@ std::map<std::string, hmi_apis::Common_TextFieldName::eType> text_fields_enum_na
{"secondaryText" , hmi_apis::Common_TextFieldName::secondaryText},
{"tertiaryText" , hmi_apis::Common_TextFieldName::tertiaryText},
{"timeToDestination", hmi_apis::Common_TextFieldName::timeToDestination},
+ {"locationName" , hmi_apis::Common_TextFieldName::locationName},
+ {"locationDescription", hmi_apis::Common_TextFieldName::locationDescription},
+ {"addressLines" , hmi_apis::Common_TextFieldName::turnText},
+ {"turnText" , hmi_apis::Common_TextFieldName::addressLines},
+ {"phoneNumber" , hmi_apis::Common_TextFieldName::phoneNumber},
{"turnText" , hmi_apis::Common_TextFieldName::turnText},
{"menuTitle" , hmi_apis::Common_TextFieldName::menuTitle},
};
diff --git a/src/components/application_manager/src/hmi_command_factory.cc b/src/components/application_manager/src/hmi_command_factory.cc
index c9d241a9a4..53c82315fc 100644
--- a/src/components/application_manager/src/hmi_command_factory.cc
+++ b/src/components/application_manager/src/hmi_command_factory.cc
@@ -106,8 +106,8 @@
#include "application_manager/commands/hmi/ui_set_global_properties_response.h"
#include "application_manager/commands/hmi/ui_scrollable_message_request.h"
#include "application_manager/commands/hmi/ui_scrollable_message_response.h"
-#include "application_manager/commands/hmi/ui_set_icon_request.h"
-#include "application_manager/commands/hmi/ui_set_icon_response.h"
+#include "application_manager/commands/hmi/ui_set_app_icon_request.h"
+#include "application_manager/commands/hmi/ui_set_app_icon_response.h"
#include "application_manager/commands/hmi/ui_perform_audio_pass_thru_response.h"
#include "application_manager/commands/hmi/ui_perform_audio_pass_thru_request.h"
#include "application_manager/commands/hmi/ui_end_audio_pass_thru_response.h"
@@ -266,7 +266,7 @@ namespace application_manager {
CREATE_LOGGERPTR_GLOBAL(logger_, "ApplicationManager")
CommandSharedPtr HMICommandFactory::CreateCommand(
- const MessageSharedPtr& message) {
+ const commands::MessageSharedPtr& message) {
const int function_id = (*message)[strings::params][strings::function_id]
.asInt();
LOG4CXX_INFO(logger_,
@@ -455,9 +455,9 @@ CommandSharedPtr HMICommandFactory::CreateCommand(
}
case hmi_apis::FunctionID::UI_SetAppIcon: {
if (is_response) {
- command.reset(new commands::UISetIconResponse(message));
+ command.reset(new commands::UISetAppIconResponse(message));
} else {
- command.reset(new commands::UISetIconRequest(message));
+ command.reset(new commands::UISetAppIconRequest(message));
}
break;
}
diff --git a/src/components/application_manager/src/message.cc b/src/components/application_manager/src/message.cc
index 832016e874..bb500687dd 100644
--- a/src/components/application_manager/src/message.cc
+++ b/src/components/application_manager/src/message.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/src/message_helper.cc b/src/components/application_manager/src/message_helper.cc
index 8048b37dda..15e0d5365f 100644
--- a/src/components/application_manager/src/message_helper.cc
+++ b/src/components/application_manager/src/message_helper.cc
@@ -1,4 +1,4 @@
-/*
+/*
Copyright (c) 2013, Ford Motor Company
All rights reserved.
@@ -259,7 +259,8 @@ uint32_t MessageHelper::GetAppCommandLimit(const std::string& policy_app_id) {
void MessageHelper::SendHMIStatusNotification(
const Application& application_impl) {
- smart_objects::SmartObject* notification = new smart_objects::SmartObject;
+ LOG4CXX_AUTO_TRACE(logger_);
+ smart_objects::SmartObjectSPtr notification = new smart_objects::SmartObject;
if (!notification) {
// TODO(VS): please add logger.
return;
@@ -289,9 +290,9 @@ void MessageHelper::SendHMIStatusNotification(
void MessageHelper::SendOnAppRegisteredNotificationToHMI(
const Application& application_impl, bool resumption, bool need_restore_vr) {
- smart_objects::SmartObject* notification = new smart_objects::SmartObject;
+ smart_objects::SmartObjectSPtr notification = new smart_objects::SmartObject;
if (!notification) {
- // TODO(VS): please add logger.
+ LOG4CXX_ERROR(logger_, "Failed to create smart object");
return;
}
smart_objects::SmartObject& message = *notification;
@@ -352,7 +353,7 @@ void MessageHelper::SendOnAppRegisteredNotificationToHMI(
std::string priority;
policy::PolicyHandler::instance()->GetPriority(
- application_impl.mobile_app_id()->asString(), &priority);
+ application_impl.mobile_app_id(), &priority);
if (!priority.empty()) {
message[strings::msg_params][strings::priority] = GetPriorityCode(priority);
}
@@ -360,64 +361,38 @@ void MessageHelper::SendOnAppRegisteredNotificationToHMI(
DCHECK(ApplicationManagerImpl::instance()->ManageHMICommand(notification));
}
-smart_objects::SmartObject* MessageHelper::GetHashUpdateNotification(
+smart_objects::SmartObjectSPtr MessageHelper::GetHashUpdateNotification(
const uint32_t app_id) {
LOG4CXX_INFO(logger_, "GetHashUpdateNotification" << app_id);
ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
app_id);
- smart_objects::SmartObject* message = NULL;
- if (NULL == app.get()) {
- return message;
+ if (!app) {
+ return NULL;
}
- message = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
+ smart_objects::SmartObjectSPtr message = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
(*message)[strings::params][strings::function_id] =
- mobile_apis::FunctionID::OnHashChangeID;
+ mobile_apis::FunctionID::OnHashChangeID;
(*message)[strings::params][strings::connection_key] = app_id;
(*message)[strings::params][strings::message_type] =
- static_cast<int32_t>(kNotification);;
-
- return message;
-}
-
-smart_objects::SmartObject* MessageHelper::GetLockScreenIconUrlNotification(const uint32_t connection_key) {
- ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(connection_key);
- DCHECK(app.get());
-
- smart_objects::SmartObject* message = new smart_objects::SmartObject(smart_objects::SmartType_Map);
- (*message)[strings::params][strings::function_id] = mobile_apis::FunctionID::OnSystemRequestID;
- (*message)[strings::params][strings::connection_key] = connection_key;
- (*message)[strings::params][strings::message_type] = mobile_apis::messageType::notification;
- (*message)[strings::params][strings::protocol_type] = commands::CommandImpl::mobile_protocol_type_;
- (*message)[strings::params][strings::protocol_version] = commands::CommandImpl::protocol_version_;
-
- (*message)[strings::msg_params][strings::request_type] = mobile_apis::RequestType::LOCK_SCREEN_ICON_URL;
-
- (*message)[strings::msg_params][strings::url] = policy::PolicyHandler::instance()->GetLockScreenIconUrl();
-
+ static_cast<int32_t>(kNotification);
return message;
}
-void MessageHelper::SendLockScreenIconUrlNotification(const uint32_t connection_key) {
- LOG4CXX_INFO(logger_, "SendLockScreenIconUrlNotification");
-
- smart_objects::SmartObject* so = GetLockScreenIconUrlNotification(connection_key);
- PrintSmartObject(*so);
- DCHECK(ApplicationManagerImpl::instance()->ManageMobileCommand(so));
-}
-
void MessageHelper::SendHashUpdateNotification(const uint32_t app_id) {
- LOG4CXX_INFO(logger_, "SendHashUpdateNotification");
+ LOG4CXX_AUTO_TRACE(logger_);
- smart_objects::SmartObject* so = GetHashUpdateNotification(app_id);
+ smart_objects::SmartObjectSPtr so = GetHashUpdateNotification(app_id);
if (so) {
PrintSmartObject(*so);
if (!ApplicationManagerImpl::instance()->ManageMobileCommand(so)) {
LOG4CXX_ERROR_EXT(logger_, "Failed to send HashUpdate notification.");
+ } else {
+ ApplicationManagerImpl::instance()->resume_controller().ApplicationsDataUpdated();
}
}
}
@@ -425,11 +400,11 @@ void MessageHelper::SendHashUpdateNotification(const uint32_t app_id) {
void MessageHelper::SendOnAppInterfaceUnregisteredNotificationToMobile(
int32_t connection_key,
mobile_api::AppInterfaceUnregisteredReason::eType reason) {
- smart_objects::SmartObject* notification = new smart_objects::SmartObject;
- if (!notification) {
- // TODO(VS): please add logger.
- return;
- }
+
+ LOG4CXX_AUTO_TRACE(logger_);
+
+ smart_objects::SmartObjectSPtr notification = new smart_objects::SmartObject;
+ DCHECK(notification);
smart_objects::SmartObject& message = *notification;
message[strings::params][strings::function_id] =
@@ -442,7 +417,12 @@ void MessageHelper::SendOnAppInterfaceUnregisteredNotificationToMobile(
message[strings::msg_params][strings::reason] = static_cast<int32_t>(reason);
- DCHECK(ApplicationManagerImpl::instance()->ManageMobileCommand(notification));
+ if (ApplicationManagerImpl::instance()->ManageMobileCommand(notification)) {
+ LOG4CXX_DEBUG(logger_, "Mobile command sent");
+ }
+ else {
+ LOG4CXX_WARN(logger_, "Cannot send mobile command");
+ }
}
const VehicleData& MessageHelper::vehicle_data() {
@@ -473,6 +453,7 @@ std::string MessageHelper::StringifiedHMILevel(
std::string MessageHelper::StringifiedFunctionID(
mobile_apis::FunctionID::eType function_id) {
+ LOG4CXX_AUTO_TRACE(logger_);
using namespace NsSmartDeviceLink::NsSmartObjects;
const char* str = 0;
if (EnumConversionHelper<mobile_apis::FunctionID::eType>::EnumToCString(
@@ -521,11 +502,13 @@ static std::map<std::string, uint16_t> vehicle_data_args = create_get_vehicle_da
}
#endif
-void MessageHelper::CreateGetVehicleDataRequest(uint32_t correlation_id, const std::vector<std::string>& params) {
+void MessageHelper::CreateGetVehicleDataRequest(
+ uint32_t correlation_id, const std::vector<std::string>& params) {
+ LOG4CXX_AUTO_TRACE(logger_);
#ifdef HMI_DBUS_API
for (std::vector<std::string>::const_iterator it = params.begin();
it != params.end(); it++) {
- smart_objects::SmartObject* request = new smart_objects::SmartObject;
+ smart_objects::SmartObjectSPtr request = new smart_objects::SmartObject;
(*request)[strings::params][strings::message_type] = static_cast<int>(kRequest);
(*request)[strings::params][strings::correlation_id] = correlation_id;
@@ -538,7 +521,7 @@ void MessageHelper::CreateGetVehicleDataRequest(uint32_t correlation_id, const s
ApplicationManagerImpl::instance()->ManageHMICommand(request);
}
#else
- smart_objects::SmartObject* request = new smart_objects::SmartObject;
+ smart_objects::SmartObjectSPtr request = new smart_objects::SmartObject;
(*request)[strings::params][strings::message_type] = static_cast<int>(kRequest);
(*request)[strings::params][strings::function_id] =
@@ -557,14 +540,12 @@ void MessageHelper::CreateGetVehicleDataRequest(uint32_t correlation_id, const s
#endif
}
-smart_objects::SmartObject* MessageHelper::CreateBlockedByPoliciesResponse(
- mobile_apis::FunctionID::eType function_id,
- mobile_apis::Result::eType result, uint32_t correlation_id,
- uint32_t connection_key) {
- smart_objects::SmartObject* response = new smart_objects::SmartObject;
- if (!response) {
- return NULL;
- }
+smart_objects::SmartObjectSPtr MessageHelper::CreateBlockedByPoliciesResponse(
+ mobile_apis::FunctionID::eType function_id,
+ mobile_apis::Result::eType result, uint32_t correlation_id,
+ uint32_t connection_key) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ smart_objects::SmartObjectSPtr response = new smart_objects::SmartObject;
(*response)[strings::params][strings::function_id] =
static_cast<int>(function_id);
@@ -582,14 +563,11 @@ smart_objects::SmartObject* MessageHelper::CreateBlockedByPoliciesResponse(
return response;
}
-smart_objects::SmartObject* MessageHelper::CreateDeviceListSO(
+smart_objects::SmartObjectSPtr MessageHelper::CreateDeviceListSO(
const connection_handler::DeviceMap& devices) {
- smart_objects::SmartObject* device_list_so = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
-
- if (NULL == device_list_so) {
- return NULL;
- }
+ LOG4CXX_AUTO_TRACE(logger_);
+ smart_objects::SmartObjectSPtr device_list_so =
+ new smart_objects::SmartObject(smart_objects::SmartType_Map);
(*device_list_so)[strings::device_list] = smart_objects::SmartObject(
smart_objects::SmartType_Array);
@@ -607,15 +585,16 @@ smart_objects::SmartObject* MessageHelper::CreateDeviceListSO(
policy::PolicyHandler::instance()->GetUserConsentForDevice(it->second.mac_address());
list_so[index][strings::isSDLAllowed] =
policy::DeviceConsent::kDeviceAllowed == device_consent;
+ ++index;
}
- ++index;
return device_list_so;
}
-smart_objects::SmartObject* MessageHelper::CreateModuleInfoSO(
- uint32_t function_id) {
- smart_objects::SmartObject* module_info = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
+smart_objects::SmartObjectSPtr MessageHelper::CreateModuleInfoSO(
+ uint32_t function_id) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ smart_objects::SmartObjectSPtr module_info = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
smart_objects::SmartObject& object = *module_info;
object[strings::params][strings::message_type] = static_cast<int>(kRequest);
object[strings::params][strings::function_id] = static_cast<int>(function_id);
@@ -626,10 +605,11 @@ smart_objects::SmartObject* MessageHelper::CreateModuleInfoSO(
return module_info;
}
-smart_objects::SmartObject* MessageHelper::CreateSetAppIcon(
+smart_objects::SmartObjectSPtr MessageHelper::CreateSetAppIcon(
const std::string& path_to_icon, uint32_t app_id) {
- smart_objects::SmartObject* set_icon = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
+ LOG4CXX_AUTO_TRACE(logger_);
+ smart_objects::SmartObjectSPtr set_icon = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
if (!set_icon) {
return NULL;
@@ -646,34 +626,40 @@ smart_objects::SmartObject* MessageHelper::CreateSetAppIcon(
}
bool MessageHelper::SendIVISubscribtions(const uint32_t app_id) {
- LOG4CXX_INFO(logger_, " MessageHelper::SendIVISubscribtions ");
+ LOG4CXX_AUTO_TRACE(logger_);
- bool succes = true;
+ bool result = true;
ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
app_id);
- DCHECK(app.get());
- SmartObjectList requests = GetIVISubscribtionRequests(app_id);
- for (SmartObjectList::const_iterator it = requests.begin();
+ if (!app.valid()) {
+ LOG4CXX_ERROR(logger_, "Invalid application " << app_id);
+ return result;
+ }
+
+ smart_objects::SmartObjectList requests = GetIVISubscriptionRequests(app);
+ for (smart_objects::SmartObjectList::const_iterator it = requests.begin();
it != requests.end(); ++it) {
if (!ApplicationManagerImpl::instance()->ManageHMICommand(*it)) {
- succes = false;
+ result = false;
}
}
- return succes;
+ return result;
}
-MessageHelper::SmartObjectList MessageHelper::GetIVISubscribtionRequests(
- const uint32_t app_id) {
- LOG4CXX_INFO(logger_, " MessageHelper::GetIVISubscribtionRequests ");
+smart_objects::SmartObjectList MessageHelper::GetIVISubscriptionRequests(
+ ApplicationSharedPtr app) {
+ LOG4CXX_AUTO_TRACE(logger_);
- ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
- app_id);
- DCHECK(app);
+ smart_objects::SmartObjectList hmi_requests;
+ if (!app.valid()) {
+ LOG4CXX_ERROR(logger_, "Invalid application pointer ");
+ return hmi_requests;
+ }
smart_objects::SmartObject msg_params = smart_objects::SmartObject(
smart_objects::SmartType_Map);
- msg_params[strings::app_id] = app_id;
+ msg_params[strings::app_id] = app->app_id();
const VehicleData& vehicle_data = MessageHelper::vehicle_data_;
VehicleData::const_iterator ivi_it = vehicle_data.begin();
const std::set<uint32_t>& subscribes = app->SubscribesIVI();
@@ -686,10 +672,9 @@ MessageHelper::SmartObjectList MessageHelper::GetIVISubscribtionRequests(
}
}
- SmartObjectList hmi_requests;
#ifdef HMI_JSON_API
- smart_objects::SmartObject* request = MessageHelper::CreateModuleInfoSO(
- hmi_apis::FunctionID::VehicleInfo_SubscribeVehicleData);
+ smart_objects::SmartObjectSPtr request = MessageHelper::CreateModuleInfoSO(
+ hmi_apis::FunctionID::VehicleInfo_SubscribeVehicleData);
(*request)[strings::msg_params] = msg_params;
hmi_requests.push_back(request);
#endif // #ifdef HMI_JSON_API
@@ -699,7 +684,7 @@ MessageHelper::SmartObjectList MessageHelper::GetIVISubscribtionRequests(
const VehicleInfo_Requests& sr = ivi_subrequests[i];
if (true == msg_params.keyExists(sr.str)
&& true == msg_params[sr.str].asBool()) {
- smart_objects::SmartObject* request = MessageHelper::CreateModuleInfoSO(
+ smart_objects::SmartObjectSPtr request = MessageHelper::CreateModuleInfoSO(
sr.func_id);
(*request)[strings::msg_params] = msg_params;
hmi_requests.push_back(request);
@@ -709,13 +694,12 @@ MessageHelper::SmartObjectList MessageHelper::GetIVISubscribtionRequests(
return hmi_requests;
}
-void MessageHelper::SendAppDataToHMI(ApplicationConstSharedPtr app) {
- uint32_t id = app->app_id();
-
- utils::SharedPtr<smart_objects::SmartObject> set_app_icon(
- new smart_objects::SmartObject);
+void MessageHelper::SendSetAppIcon(uint32_t app_id,
+ const std::string& icon_path) {
+ using namespace smart_objects;
+ SmartObjectSPtr set_app_icon(new smart_objects::SmartObject);
if (set_app_icon) {
- smart_objects::SmartObject& so_to_send = *set_app_icon;
+ SmartObject& so_to_send = *set_app_icon;
so_to_send[strings::params][strings::function_id] =
static_cast<int>(hmi_apis::FunctionID::UI_SetAppIcon);
so_to_send[strings::params][strings::message_type] =
@@ -729,41 +713,52 @@ void MessageHelper::SendAppDataToHMI(ApplicationConstSharedPtr app) {
so_to_send[strings::msg_params] = smart_objects::SmartObject(
smart_objects::SmartType_Map);
- smart_objects::SmartObject* msg_params = MessageHelper::CreateSetAppIcon(
- app->app_icon_path(), id);
+ SmartObjectSPtr msg_params(MessageHelper::CreateSetAppIcon(icon_path, app_id));
if (msg_params) {
so_to_send[strings::msg_params] = *msg_params;
}
- // TODO(PV): appropriate handling of result
- DCHECK(ApplicationManagerImpl::instance()->ManageHMICommand(set_app_icon));
+ ApplicationManagerImpl::instance()->ManageHMICommand(set_app_icon);
}
+}
- SendGlobalPropertiesToHMI(app);
- SendShowRequestToHMI(app);
+void MessageHelper::SendAppDataToHMI(ApplicationConstSharedPtr app) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ if (app) {
+ SendSetAppIcon(app, app->app_icon_path());
+ SendGlobalPropertiesToHMI(app);
+ SendShowRequestToHMI(app);
+ }
}
void MessageHelper::SendGlobalPropertiesToHMI(ApplicationConstSharedPtr app) {
- DCHECK(app.get());
+ if (!app.valid()) {
+ LOG4CXX_ERROR(logger_, "Invalid application");
+ return;
+ }
- SmartObjectList requests = CreateGlobalPropertiesRequestsToHMI(app);
- for (SmartObjectList::const_iterator it = requests.begin();
+ smart_objects::SmartObjectList requests = CreateGlobalPropertiesRequestsToHMI(app);
+ for (smart_objects::SmartObjectList::const_iterator it = requests.begin();
it != requests.end(); ++it) {
DCHECK(ApplicationManagerImpl::instance()->ManageHMICommand(*it))
}
}
-MessageHelper::SmartObjectList MessageHelper::CreateGlobalPropertiesRequestsToHMI(
+smart_objects::SmartObjectList MessageHelper::CreateGlobalPropertiesRequestsToHMI(
ApplicationConstSharedPtr app) {
+ LOG4CXX_AUTO_TRACE(logger_);
- SmartObjectList requests;
- DCHECK(app.get());
+ smart_objects::SmartObjectList requests;
+ if (!app.valid()) {
+ LOG4CXX_ERROR(logger_, "Invalid application");
+ return requests;
+ }
// UI global properties
if (app->vr_help_title() || app->vr_help()) {
- smart_objects::SmartObject* ui_global_properties =
- new smart_objects::SmartObject(smart_objects::SmartType_Map);
+ smart_objects::SmartObjectSPtr ui_global_properties =
+ new smart_objects::SmartObject(smart_objects::SmartType_Map);
if (!ui_global_properties) {
return requests;
@@ -806,8 +801,8 @@ MessageHelper::SmartObjectList MessageHelper::CreateGlobalPropertiesRequestsToHM
// TTS global properties
if (app->help_prompt() || app->timeout_prompt()) {
- smart_objects::SmartObject* tts_global_properties =
- new smart_objects::SmartObject(smart_objects::SmartType_Map);
+ smart_objects::SmartObjectSPtr tts_global_properties =
+ new smart_objects::SmartObject(smart_objects::SmartType_Map);
if (!tts_global_properties) {
return requests;
@@ -843,10 +838,11 @@ MessageHelper::SmartObjectList MessageHelper::CreateGlobalPropertiesRequestsToHM
void MessageHelper::SendTTSGlobalProperties(
ApplicationSharedPtr app, bool default_help_prompt) {
- if (!app.valid()) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ if (!app) {
return;
}
- utils::SharedPtr<smart_objects::SmartObject> tts_global_properties(
+ smart_objects::SmartObjectSPtr tts_global_properties(
new smart_objects::SmartObject);
if (tts_global_properties) {
smart_objects::SmartObject& so_to_send = *tts_global_properties;
@@ -865,7 +861,8 @@ void MessageHelper::SendTTSGlobalProperties(
msg_params[strings::help_prompt] = smart_objects::SmartObject(
smart_objects::SmartType_Array);
if (default_help_prompt) {
- const CommandsMap& commands = app->commands_map();
+ const DataAccessor<CommandsMap> accessor = app->commands_map();
+ const CommandsMap& commands = accessor.GetData();
CommandsMap::const_iterator it = commands.begin();
uint32_t index = 0;
for (; commands.end() != it; ++it) {
@@ -886,10 +883,10 @@ void MessageHelper::SendTTSGlobalProperties(
}
}
-smart_objects::SmartObject* MessageHelper::CreateAppVrHelp(
+smart_objects::SmartObjectSPtr MessageHelper::CreateAppVrHelp(
ApplicationConstSharedPtr app) {
- smart_objects::SmartObject* result = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
+ smart_objects::SmartObjectSPtr result = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
if (!result) {
return NULL;
}
@@ -897,11 +894,11 @@ smart_objects::SmartObject* MessageHelper::CreateAppVrHelp(
vr_help[strings::vr_help_title] = app->name();
ApplicationManagerImpl::ApplicationListAccessor accessor;
- const std::set<ApplicationSharedPtr> apps = accessor.applications();
int32_t index = 0;
- std::set<ApplicationSharedPtr>::const_iterator it_app = apps.begin();
- for (; apps.end() != it_app; ++it_app) {
+ ApplicationManagerImpl::ApplictionSetConstIt it_app =
+ accessor.begin();
+ for (; accessor.end() != it_app; ++it_app) {
if ((*it_app)->vr_synonyms()) {
smart_objects::SmartObject item(smart_objects::SmartType_Map);
item[strings::text] = (*((*it_app)->vr_synonyms())).getElement(0);
@@ -911,7 +908,8 @@ smart_objects::SmartObject* MessageHelper::CreateAppVrHelp(
}
// copy all app VR commands
- const CommandsMap& commands = app->commands_map();
+ const DataAccessor<CommandsMap> cmd_accessor = app->commands_map();
+ const CommandsMap& commands = cmd_accessor.GetData();
CommandsMap::const_iterator it = commands.begin();
for (; commands.end() != it; ++it) {
@@ -923,14 +921,18 @@ smart_objects::SmartObject* MessageHelper::CreateAppVrHelp(
return result;
}
-MessageHelper::SmartObjectList MessageHelper::CreateShowRequestToHMI(
- ApplicationConstSharedPtr app) {
- DCHECK(app.get());
+smart_objects::SmartObjectList MessageHelper::CreateShowRequestToHMI(
+ ApplicationConstSharedPtr app) {
+
+ smart_objects::SmartObjectList requests;
+ if (!app) {
+ LOG4CXX_ERROR(logger_, "Invalid application");
+ return requests;
+ }
- SmartObjectList requests;
- smart_objects::SmartObject* ui_show = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
if (app->show_command()) {
+ smart_objects::SmartObjectSPtr ui_show = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
(*ui_show)[strings::params][strings::function_id] =
static_cast<int>(hmi_apis::FunctionID::UI_Show);
(*ui_show)[strings::params][strings::message_type] =
@@ -951,10 +953,10 @@ void MessageHelper::SendShowRequestToHMI(ApplicationConstSharedPtr app) {
if (!app) {
return;
}
- SmartObjectList shows = CreateShowRequestToHMI(app);
+ smart_objects::SmartObjectList shows = CreateShowRequestToHMI(app);
- for (SmartObjectList::const_iterator it = shows.begin(); it != shows.end();
- ++it) {
+ for (smart_objects::SmartObjectList::const_iterator it = shows.begin();
+ it != shows.end(); ++it) {
DCHECK(ApplicationManagerImpl::instance()->ManageHMICommand(*it));
}
@@ -966,14 +968,12 @@ void MessageHelper::SendShowConstantTBTRequestToHMI(
return;
}
- smart_objects::SmartObject* navi_show_tbt = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
-
- if (!navi_show_tbt) {
- return;
- }
-
if (app->tbt_show_command()) {
+ utils::SharedPtr<smart_objects::SmartObject> navi_show_tbt =
+ new smart_objects::SmartObject(smart_objects::SmartType_Map);
+ if (!navi_show_tbt) {
+ return;
+ }
(*navi_show_tbt)[strings::params][strings::function_id] =
static_cast<int>(hmi_apis::FunctionID::Navigation_ShowConstantTBT);
(*navi_show_tbt)[strings::params][strings::message_type] =
@@ -993,25 +993,30 @@ void MessageHelper::SendAddCommandRequestToHMI(ApplicationConstSharedPtr app) {
if (!app) {
return;
}
- SmartObjectList requests = CreateAddCommandRequestToHMI(app);
- for (SmartObjectList::iterator it = requests.begin(); it != requests.end();
+ smart_objects::SmartObjectList requests = CreateAddCommandRequestToHMI(app);
+ for (smart_objects::SmartObjectList::iterator it = requests.begin(); it != requests.end();
++it) {
DCHECK(ApplicationManagerImpl::instance()->ManageHMICommand(*it));
}
}
-MessageHelper::SmartObjectList MessageHelper::CreateAddCommandRequestToHMI(
+smart_objects::SmartObjectList MessageHelper::CreateAddCommandRequestToHMI(
ApplicationConstSharedPtr app) {
- DCHECK(app.get());
- SmartObjectList requests;
- const CommandsMap& commands = app->commands_map();
+ smart_objects::SmartObjectList requests;
+ if (!app) {
+ LOG4CXX_ERROR(logger_, "Invalid application");
+ return requests;
+ }
+
+ const DataAccessor<CommandsMap> accessor = app->commands_map();
+ const CommandsMap& commands = accessor.GetData();
CommandsMap::const_iterator i = commands.begin();
for (; commands.end() != i; ++i) {
// UI Interface
if ((*i->second).keyExists(strings::menu_params)) {
- smart_objects::SmartObject* ui_command = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
+ smart_objects::SmartObjectSPtr ui_command = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
if (!ui_command) {
return requests;
@@ -1053,10 +1058,11 @@ MessageHelper::SmartObjectList MessageHelper::CreateAddCommandRequestToHMI(
return requests;
}
-smart_objects::SmartObject* MessageHelper::CreateChangeRegistration(
- int32_t function_id, int32_t language, uint32_t app_id) {
- smart_objects::SmartObject* command = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
+smart_objects::SmartObjectSPtr MessageHelper::CreateChangeRegistration(
+ int32_t function_id, int32_t language, uint32_t app_id,
+ const smart_objects::SmartObject* app_types) {
+ smart_objects::SmartObjectSPtr command = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
if (!command) {
return NULL;
}
@@ -1079,16 +1085,37 @@ smart_objects::SmartObject* MessageHelper::CreateChangeRegistration(
msg_params[strings::language] = language;
msg_params[strings::app_id] = app_id;
+ if (app_types != NULL) {
+ msg_params[strings::app_hmi_type] = *app_types;
+ }
+
params[strings::msg_params] = msg_params;
return command;
}
+void MessageHelper::SendUIChangeRegistrationRequestToHMI(ApplicationConstSharedPtr app) {
+ if (!app.valid()) {
+ LOG4CXX_ERROR(logger_, "Application is not valid");
+ return;
+ }
+
+ if (NULL != app->app_types()) {
+ smart_objects::SmartObjectSPtr ui_command = CreateChangeRegistration(
+ hmi_apis::FunctionID::UI_ChangeRegistration, app->ui_language(),
+ app->app_id(), app->app_types());
+
+ if (ui_command) {
+ ApplicationManagerImpl::instance()->ManageHMICommand(ui_command);
+ }
+ }
+}
+
void MessageHelper::SendChangeRegistrationRequestToHMI(ApplicationConstSharedPtr app) {
if (!app.valid()) {
return;
}
if (mobile_apis::Language::INVALID_ENUM != app->language()) {
- smart_objects::SmartObject* vr_command = CreateChangeRegistration(
+ smart_objects::SmartObjectSPtr vr_command = CreateChangeRegistration(
hmi_apis::FunctionID::VR_ChangeRegistration, app->language(),
app->app_id());
@@ -1098,7 +1125,7 @@ void MessageHelper::SendChangeRegistrationRequestToHMI(ApplicationConstSharedPtr
}
if (mobile_apis::Language::INVALID_ENUM != app->language()) {
- smart_objects::SmartObject* tts_command = CreateChangeRegistration(
+ smart_objects::SmartObjectSPtr tts_command = CreateChangeRegistration(
hmi_apis::FunctionID::TTS_ChangeRegistration, app->language(),
app->app_id());
@@ -1108,7 +1135,7 @@ void MessageHelper::SendChangeRegistrationRequestToHMI(ApplicationConstSharedPtr
}
if (mobile_apis::Language::INVALID_ENUM != app->ui_language()) {
- smart_objects::SmartObject* ui_command = CreateChangeRegistration(
+ smart_objects::SmartObjectSPtr ui_command = CreateChangeRegistration(
hmi_apis::FunctionID::UI_ChangeRegistration, app->ui_language(),
app->app_id());
@@ -1122,18 +1149,17 @@ void MessageHelper::SendChangeRegistrationRequestToHMI(ApplicationConstSharedPtr
void MessageHelper::SendAddVRCommandToHMI(
uint32_t cmd_id, const smart_objects::SmartObject& vr_commands,
uint32_t app_id) {
- smart_objects::SmartObject* request = CreateAddVRCommandToHMI(cmd_id,
+ smart_objects::SmartObjectSPtr request = CreateAddVRCommandToHMI(cmd_id,
vr_commands,
app_id);
DCHECK(ApplicationManagerImpl::instance()->ManageHMICommand(request));
}
-smart_objects::SmartObject* MessageHelper::CreateAddVRCommandToHMI(
- uint32_t cmd_id,
- const NsSmartDeviceLink::NsSmartObjects::SmartObject& vr_commands,
- uint32_t app_id) {
- smart_objects::SmartObject* vr_command = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
+smart_objects::SmartObjectSPtr MessageHelper::CreateAddVRCommandToHMI(
+ uint32_t cmd_id, const smart_objects::SmartObject& vr_commands,
+ uint32_t app_id) {
+ smart_objects::SmartObjectSPtr vr_command = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
if (!vr_command) {
return NULL;
@@ -1170,8 +1196,8 @@ smart_objects::SmartObject* MessageHelper::CreateAddVRCommandToHMI(
bool MessageHelper::CreateHMIApplicationStruct(ApplicationConstSharedPtr app,
smart_objects::SmartObject& output) {
-
- if (false == app.valid()) {
+ if (!app) {
+ LOG4CXX_WARN(logger_, "Application is not valid");
return false;
}
@@ -1184,36 +1210,41 @@ bool MessageHelper::CreateHMIApplicationStruct(ApplicationConstSharedPtr app,
output[strings::app_name] = app->name();
output[strings::icon] = app->app_icon_path();
output[strings::device_name] = device_name;
- output[strings::app_id] = app->app_id();
+ output[strings::app_id] = app->hmi_app_id();
output[strings::hmi_display_language_desired] = app->ui_language();
output[strings::is_media_application] = app->is_media_application();
- if (NULL != ngn_media_screen_name) {
+ if (ngn_media_screen_name) {
output[strings::ngn_media_screen_app_name] = ngn_media_screen_name->asString();
}
- if (NULL != app_types) {
+ if (app_types) {
output[strings::app_type] = *app_types;
}
return true;
}
void MessageHelper::SendAddSubMenuRequestToHMI(ApplicationConstSharedPtr app) {
- DCHECK(app.get());
- SmartObjectList requests = CreateAddSubMenuRequestToHMI(app);
- for (SmartObjectList::iterator it = requests.begin(); it != requests.end();
- ++it) {
+ if (!app.valid()) {
+ LOG4CXX_ERROR(logger_, "Invalid application");
+ return;
+ }
+
+ smart_objects::SmartObjectList requests = CreateAddSubMenuRequestToHMI(app);
+ for (smart_objects::SmartObjectList::iterator it = requests.begin();
+ it != requests.end(); ++it) {
DCHECK(ApplicationManagerImpl::instance()->ManageHMICommand(*it));
}
}
-MessageHelper::SmartObjectList MessageHelper::CreateAddSubMenuRequestToHMI(
+smart_objects::SmartObjectList MessageHelper::CreateAddSubMenuRequestToHMI(
ApplicationConstSharedPtr app) {
- SmartObjectList requsets;
- const SubMenuMap& sub_menu = app->sub_menu_map();
+ smart_objects::SmartObjectList requsets;
+ const DataAccessor<SubMenuMap> accessor = app->sub_menu_map();
+ const SubMenuMap& sub_menu = accessor.GetData();
SubMenuMap::const_iterator i = sub_menu.begin();
for (; sub_menu.end() != i; ++i) {
- smart_objects::SmartObject* ui_sub_menu = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
+ smart_objects::SmartObjectSPtr ui_sub_menu = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
if (!ui_sub_menu) {
return requsets;
@@ -1247,8 +1278,8 @@ MessageHelper::SmartObjectList MessageHelper::CreateAddSubMenuRequestToHMI(
void MessageHelper::SendOnAppUnregNotificationToHMI(
ApplicationConstSharedPtr app, bool is_unexpected_disconnect) {
- smart_objects::SmartObject* notification = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
+ smart_objects::SmartObjectSPtr notification = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
if (!notification) {
return;
}
@@ -1264,22 +1295,23 @@ void MessageHelper::SendOnAppUnregNotificationToHMI(
message[strings::msg_params][strings::app_id] = app->hmi_app_id();
message[strings::msg_params][strings::unexpected_disconnect] =
is_unexpected_disconnect;
- ApplicationManagerImpl::instance()->ManageHMICommand(&message);
+ ApplicationManagerImpl::instance()->ManageHMICommand(notification);
}
void MessageHelper::SendActivateAppToHMI(uint32_t const app_id,
- hmi_apis::Common_HMILevel::eType level) {
- smart_objects::SmartObject* message = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
-
+ hmi_apis::Common_HMILevel::eType level,
+ bool send_policy_priority) {
application_manager::ApplicationConstSharedPtr app =
application_manager::ApplicationManagerImpl::instance()
->application(app_id);
- if (!app.valid()) {
+ if (!app) {
LOG4CXX_WARN(logger_, "Invalid app_id: " << app_id);
return;
}
+ utils::SharedPtr<smart_objects::SmartObject> message = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
(*message)[strings::params][strings::function_id] =
hmi_apis::FunctionID::BasicCommunication_ActivateApp;
(*message)[strings::params][strings::message_type] = MessageType::kRequest;
@@ -1287,23 +1319,25 @@ void MessageHelper::SendActivateAppToHMI(uint32_t const app_id,
ApplicationManagerImpl::instance()->GetNextHMICorrelationID();
(*message)[strings::msg_params][strings::app_id] = app_id;
- std::string priority;
- // TODO(KKolodiy): need remove method policy_manager
-
- policy::PolicyHandler::instance()->GetPriority(
- app->mobile_app_id()->asString(), &priority);
- // According SDLAQ-CRS-2794
- // SDL have to send ActivateApp without "proirity" parameter to HMI.
- // in case of unconsented device
- std::string mac_adress;
- connection_handler::DeviceHandle device_handle = app->device();
- connection_handler::ConnectionHandlerImpl::instance()->
- GetDataOnDeviceID(device_handle, NULL, NULL, &mac_adress, NULL);
-
- policy::DeviceConsent consent =
- policy::PolicyHandler::instance()->GetUserConsentForDevice(mac_adress);
- if (!priority.empty() && (policy::DeviceConsent::kDeviceAllowed == consent)) {
- (*message)[strings::msg_params]["priority"] = GetPriorityCode(priority);
+ if (send_policy_priority) {
+ std::string priority;
+ // TODO(KKolodiy): need remove method policy_manager
+
+ policy::PolicyHandler::instance()->GetPriority(
+ app->mobile_app_id(), &priority);
+ // According SDLAQ-CRS-2794
+ // SDL have to send ActivateApp without "proirity" parameter to HMI.
+ // in case of unconsented device
+ std::string mac_adress;
+ connection_handler::DeviceHandle device_handle = app->device();
+ connection_handler::ConnectionHandlerImpl::instance()->
+ GetDataOnDeviceID(device_handle, NULL, NULL, &mac_adress, NULL);
+
+ policy::DeviceConsent consent =
+ policy::PolicyHandler::instance()->GetUserConsentForDevice(mac_adress);
+ if (!priority.empty() && (policy::DeviceConsent::kDeviceAllowed == consent)) {
+ (*message)[strings::msg_params][strings::priority] = GetPriorityCode(priority);
+ }
}
// We haven't send HMI level to HMI in case it FULL.
@@ -1317,17 +1351,17 @@ void MessageHelper::SendActivateAppToHMI(uint32_t const app_id,
void MessageHelper::SendOnResumeAudioSourceToHMI(const uint32_t app_id) {
LOG4CXX_WARN(logger_, "SendOnResumeAudioSourceToHMI app_id: " << app_id);
-
- smart_objects::SmartObject* message = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
application_manager::ApplicationConstSharedPtr app =
application_manager::ApplicationManagerImpl::instance()
->application(app_id);
- if (!app.valid()) {
+ if (!app) {
LOG4CXX_WARN(logger_, "Invalid app_id: " << app_id);
return;
}
+ utils::SharedPtr<smart_objects::SmartObject> message = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
(*message)[strings::params][strings::function_id] =
hmi_apis::FunctionID::BasicCommunication_OnResumeAudioSource;
(*message)[strings::params][strings::message_type] = MessageType::kNotification;
@@ -1344,7 +1378,7 @@ std::string MessageHelper::GetDeviceMacAddressForHandle(
std::string device_mac_address = "";
connection_handler::ConnectionHandlerImpl::instance()->GetDataOnDeviceID(
device_handle, NULL, NULL, &device_mac_address);
-
+ LOG4CXX_DEBUG(logger_, "result : " << device_handle);
return device_mac_address;
}
@@ -1372,8 +1406,8 @@ void MessageHelper::GetDeviceInfoForApp(uint32_t connection_key,
void MessageHelper::SendSDLActivateAppResponse(policy::AppPermissions& permissions,
uint32_t correlation_id) {
- smart_objects::SmartObject* message = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
+ smart_objects::SmartObjectSPtr message = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
if (!message) {
return;
}
@@ -1418,21 +1452,12 @@ void MessageHelper::SendSDLActivateAppResponse(policy::AppPermissions& permissio
if (permissions.appRevoked || !permissions.isSDLAllowed) {
return;
}
-
- // Send HMI status notification to mobile
- ApplicationSharedPtr app = ApplicationManagerImpl::instance()
- ->application_by_policy_id(permissions.application_id);
- if (app) {
- ApplicationManagerImpl::instance()->ActivateApplication(app);
- } else {
- LOG4CXX_WARN(logger_, "Unable to find app_id: " << permissions.application_id);
- }
}
void MessageHelper::SendOnSDLConsentNeeded(
const policy::DeviceParams& device_info) {
- smart_objects::SmartObject* message = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
+ smart_objects::SmartObjectSPtr message = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
if (!message) {
return;
}
@@ -1452,8 +1477,8 @@ void MessageHelper::SendPolicyUpdate(
const std::string& file_path,
int timeout,
const std::vector<int>& retries) {
- smart_objects::SmartObject* message = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
+ smart_objects::SmartObjectSPtr message = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
smart_objects::SmartObject& object = *message;
object[strings::params][strings::function_id] =
hmi_apis::FunctionID::BasicCommunication_PolicyUpdate;
@@ -1478,8 +1503,8 @@ void MessageHelper::SendPolicyUpdate(
void MessageHelper::SendGetUserFriendlyMessageResponse(
const std::vector<policy::UserFriendlyMessage>& msg,
uint32_t correlation_id) {
- smart_objects::SmartObject* message = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
+ smart_objects::SmartObjectSPtr message = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
if (!message) {
return;
}
@@ -1543,8 +1568,8 @@ void MessageHelper::SendGetUserFriendlyMessageResponse(
void MessageHelper::SendGetListOfPermissionsResponse(
const std::vector<policy::FunctionalGroupPermission>& permissions,
uint32_t correlation_id) {
- smart_objects::SmartObject* message = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
+ smart_objects::SmartObjectSPtr message = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
if (!message) {
return;
}
@@ -1584,11 +1609,11 @@ void MessageHelper::SendGetListOfPermissionsResponse(
ApplicationManagerImpl::instance()->ManageHMICommand(message);
}
-smart_objects::SmartObject* MessageHelper::CreateNegativeResponse(
- uint32_t connection_key, int32_t function_id, uint32_t correlation_id,
- int32_t result_code) {
- smart_objects::SmartObject* response = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
+smart_objects::SmartObjectSPtr MessageHelper::CreateNegativeResponse(
+ uint32_t connection_key, int32_t function_id, uint32_t correlation_id,
+ int32_t result_code) {
+ smart_objects::SmartObjectSPtr response = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
smart_objects::SmartObject& response_data = *response;
response_data[strings::params][strings::function_id] = function_id;
response_data[strings::params][strings::message_type] =
@@ -1606,9 +1631,9 @@ smart_objects::SmartObject* MessageHelper::CreateNegativeResponse(
}
void MessageHelper::SendNaviStartStream(int32_t connection_key) {
- LOG4CXX_INFO(logger_, "MessageHelper::SendNaviStartStream");
- smart_objects::SmartObject* start_stream = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
+ LOG4CXX_AUTO_TRACE(logger_);
+ smart_objects::SmartObjectSPtr start_stream = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
if (!start_stream) {
return;
@@ -1655,8 +1680,8 @@ void MessageHelper::SendNaviStartStream(int32_t connection_key) {
}
void MessageHelper::SendNaviStopStream(int32_t connection_key) {
- smart_objects::SmartObject* stop_stream = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
+ smart_objects::SmartObjectSPtr stop_stream = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
if (!stop_stream) {
return;
@@ -1689,8 +1714,8 @@ void MessageHelper::SendNaviStopStream(int32_t connection_key) {
void MessageHelper::SendAudioStartStream(int32_t connection_key) {
- smart_objects::SmartObject* start_stream = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
+ smart_objects::SmartObjectSPtr start_stream = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
if (!start_stream) {
return;
@@ -1738,8 +1763,8 @@ void MessageHelper::SendAudioStartStream(int32_t connection_key) {
}
void MessageHelper::SendAudioStopStream(int32_t connection_key) {
- smart_objects::SmartObject* stop_stream = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
+ smart_objects::SmartObjectSPtr stop_stream = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
if (!stop_stream) {
return;
@@ -1773,11 +1798,10 @@ void MessageHelper::SendAudioStopStream(int32_t connection_key) {
bool MessageHelper::SendStopAudioPathThru() {
LOG4CXX_INFO(logger_, "MessageHelper::SendAudioStopAudioPathThru");
- NsSmartDeviceLink::NsSmartObjects::SmartObject* result =
- new NsSmartDeviceLink::NsSmartObjects::SmartObject;
+ smart_objects::SmartObjectSPtr result = new smart_objects::SmartObject;
const uint32_t hmi_correlation_id = ApplicationManagerImpl::instance()
->GetNextHMICorrelationID();
- NsSmartDeviceLink::NsSmartObjects::SmartObject& request = *result;
+ smart_objects::SmartObject& request = *result;
request[strings::params][strings::message_type] = MessageType::kRequest;
request[strings::params][strings::function_id] =
hmi_apis::FunctionID::UI_EndAudioPassThru;
@@ -1792,40 +1816,80 @@ bool MessageHelper::SendStopAudioPathThru() {
void MessageHelper::SendPolicySnapshotNotification(
unsigned int connection_key, const std::vector<uint8_t>& policy_data,
const std::string& url, int timeout) {
- smart_objects::SmartObject* pt_notification = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
- smart_objects::SmartObject& content = *pt_notification;
- ;
- content[strings::params][strings::function_id] =
- mobile_apis::FunctionID::OnSystemRequestID;
- content[strings::params][strings::message_type] =
- mobile_apis::messageType::notification;
- content[strings::params][strings::protocol_type] =
- commands::CommandImpl::mobile_protocol_type_;
- content[strings::params][strings::protocol_version] =
- commands::CommandImpl::protocol_version_;
- content[strings::params][strings::connection_key] = connection_key;
+
+ using namespace mobile_apis;
+ using namespace smart_objects;
+
+ SmartObject content (SmartType_Map);
if (!url.empty()) {
content[strings::msg_params][mobile_notification::syncp_url] = url;
}
- content[strings::msg_params][strings::file_type] =
- mobile_apis::FileType::BINARY;
- content[strings::msg_params][strings::request_type] =
- mobile_apis::RequestType::HTTP;
- /*if (-1 != timeout) {
- content[strings::msg_params][mobile_notification::syncp_timeout] = timeout;
- }*/
- content[strings::params][strings::binary_data] = smart_objects::SmartObject(
- policy_data);
- ApplicationManagerImpl::instance()->ManageMobileCommand(pt_notification);
+
+ content[strings::msg_params][strings::request_type] = RequestType::HTTP;
+ content[strings::params][strings::binary_data] = SmartObject(policy_data);
+ content[strings::msg_params][strings::file_type] = FileType::BINARY;
+
+ SendSystemRequestNotification(connection_key, content);
+}
+
+void MessageHelper::SendSystemRequestNotification (uint32_t connection_key,
+ smart_objects::SmartObject& content) {
+
+ using namespace mobile_apis;
+ using namespace commands;
+ using namespace smart_objects;
+
+ content[strings::params][strings::function_id] = FunctionID::OnSystemRequestID;
+ content[strings::params][strings::message_type] = messageType::notification;
+ content[strings::params][strings::protocol_type] = CommandImpl::mobile_protocol_type_;
+ content[strings::params][strings::protocol_version] = CommandImpl::protocol_version_;
+
+ content[strings::params][strings::connection_key] = connection_key;
+
+ ApplicationManagerImpl::instance()->ManageMobileCommand(new SmartObject(content));
+}
+
+void MessageHelper::SendLaunchApp(uint32_t connection_key,
+ const std::string& urlSchema,
+ const std::string& packageName) {
+
+ using namespace mobile_apis;
+ using namespace smart_objects;
+
+ SmartObject content (SmartType_Map);
+ content[strings::msg_params][strings::request_type] = RequestType::LAUNCH_APP;
+ content[strings::msg_params][strings::app_id] = connection_key;
+ if (!urlSchema.empty()) {
+ content[strings::msg_params][strings::urlSchema] = urlSchema;
+ } else if (!packageName.empty()) {
+ content[strings::msg_params][strings::packageName] = packageName;
+ }
+
+ SendSystemRequestNotification(connection_key, content);
+}
+
+void application_manager::MessageHelper::SendQueryApps(
+ uint32_t connection_key) {
+ using namespace mobile_apis;
+ using namespace smart_objects;
+
+ policy::PolicyHandler* policy_handler = policy::PolicyHandler::instance();
+
+ SmartObject content (SmartType_Map);
+ content[strings::msg_params][strings::request_type] = RequestType::QUERY_APPS;
+ content[strings::msg_params][strings::url] = policy_handler->RemoteAppsUrl();
+ content[strings::msg_params][strings::timeout] =
+ policy_handler->TimeoutExchange();
+
+ SendSystemRequestNotification(connection_key, content);
}
void MessageHelper::SendOnPermissionsChangeNotification(
uint32_t connection_key, const policy::Permissions& permissions) {
- smart_objects::SmartObject* notification = new smart_objects::SmartObject(
+ utils::SharedPtr<smart_objects::SmartObject> notification = new smart_objects::SmartObject(
smart_objects::SmartType_Map);
smart_objects::SmartObject& content = *notification;
- ;
+
content[strings::params][strings::function_id] =
mobile_apis::FunctionID::OnPermissionsChangeID;
content[strings::params][strings::message_type] =
@@ -1836,7 +1900,7 @@ void MessageHelper::SendOnPermissionsChangeNotification(
commands::CommandImpl::protocol_version_;
content[strings::params][strings::connection_key] = connection_key;
- smart_objects::SmartObject* p_msg_params = new smart_objects::SmartObject(
+ utils::SharedPtr<smart_objects::SmartObject> p_msg_params = new smart_objects::SmartObject(
smart_objects::SmartType_Map);
smart_objects::SmartObject& msg_params = *p_msg_params;
@@ -1964,8 +2028,8 @@ void MessageHelper::FillAppRevokedPermissions(
void MessageHelper::SendOnAppPermissionsChangedNotification(
uint32_t connection_key, const policy::AppPermissions& permissions) {
- smart_objects::SmartObject* notification = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
+ smart_objects::SmartObjectSPtr notification = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
if (!notification) {
return;
}
@@ -2002,13 +2066,13 @@ void MessageHelper::SendOnAppPermissionsChangedNotification(
permissions.priority);
}
- ApplicationManagerImpl::instance()->ManageHMICommand(&message);
+ ApplicationManagerImpl::instance()->ManageHMICommand(notification);
}
void MessageHelper::SendGetStatusUpdateResponse(const std::string& status,
uint32_t correlation_id) {
- smart_objects::SmartObject* message = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
+ smart_objects::SmartObjectSPtr message = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
if (!message) {
return;
}
@@ -2025,9 +2089,10 @@ void MessageHelper::SendGetStatusUpdateResponse(const std::string& status,
ApplicationManagerImpl::instance()->ManageHMICommand(message);
}
-void MessageHelper::SendUpdateSDLResponse(const std::string& result, uint32_t correlation_id) {
- smart_objects::SmartObject* message = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
+void MessageHelper::SendUpdateSDLResponse(const std::string& result,
+ uint32_t correlation_id) {
+ smart_objects::SmartObjectSPtr message = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
if (!message) {
return;
}
@@ -2044,11 +2109,9 @@ void MessageHelper::SendUpdateSDLResponse(const std::string& result, uint32_t co
ApplicationManagerImpl::instance()->ManageHMICommand(message);
}
-
-
void MessageHelper::SendOnStatusUpdate(const std::string& status) {
- smart_objects::SmartObject* message = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
+ smart_objects::SmartObjectSPtr message = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
if (!message) {
return;
}
@@ -2064,8 +2127,8 @@ void MessageHelper::SendOnStatusUpdate(const std::string& status) {
}
void MessageHelper::SendGetSystemInfoRequest() {
- smart_objects::SmartObject* message = new smart_objects::SmartObject(
- smart_objects::SmartType_Map);
+ smart_objects::SmartObjectSPtr message = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
if (!message) {
return;
}
@@ -2090,6 +2153,7 @@ mobile_apis::Result::eType MessageHelper::VerifyImageFiles(
for (uint32_t i = 0; i < message.length(); ++i) {
mobile_apis::Result::eType res = VerifyImageFiles(message[i], app);
if (mobile_apis::Result::SUCCESS != res) {
+ LOG4CXX_DEBUG(logger_, "VerifyImageFiles result:" << res);
return res;
}
}
@@ -2100,6 +2164,7 @@ mobile_apis::Result::eType MessageHelper::VerifyImageFiles(
app);
if (mobile_apis::Result::SUCCESS != verification_result) {
+ LOG4CXX_DEBUG(logger_, "VerifyImageFiles result:" << verification_result);
return verification_result; // exit point
}
} else {
@@ -2110,6 +2175,7 @@ mobile_apis::Result::eType MessageHelper::VerifyImageFiles(
if (strings::soft_buttons != (*key)) {
mobile_apis::Result::eType res = VerifyImageFiles(message[*key], app);
if (mobile_apis::Result::SUCCESS != res) {
+ LOG4CXX_DEBUG(logger_, "VerifyImageFiles result:" << res);
return res;
}
}
@@ -2139,12 +2205,25 @@ mobile_apis::Result::eType MessageHelper::VerifyImage(
return mobile_apis::Result::INVALID_DATA;
}
- std::string full_file_path =
- profile::Profile::instance()->app_storage_folder() + "/";
-
+ std::string full_file_path;
if (file_name.size() > 0 && file_name[0] == '/') {
full_file_path = file_name;
} else {
+ const std::string& app_storage_folder =
+ profile::Profile::instance()->app_storage_folder();
+ if (!app_storage_folder.empty()) {
+// TODO(nvaganov@luxoft.com): APPLINK-11293
+ if (app_storage_folder[0] == '/') { // absolute path
+ full_file_path = app_storage_folder + "/";
+ }
+ else { // relative path
+ full_file_path = file_system::CurrentWorkingDirectory() + "/" +
+ app_storage_folder + "/";
+ }
+ }
+ else { // empty app storage folder
+ full_file_path = file_system::CurrentWorkingDirectory() + "/";
+ }
full_file_path += app->folder_name();
full_file_path += "/";
@@ -2188,15 +2267,31 @@ bool MessageHelper::VerifySoftButtonString(const std::string& str) {
return true;
}
+bool MessageHelper::CheckWithPolicy(
+ mobile_api::SystemAction::eType system_action,
+ const std::string& app_mobile_id) {
+ using namespace mobile_apis;
+ bool result = true;
+ policy::PolicyHandler* policy_handler = policy::PolicyHandler::instance();
+ if (NULL != policy_handler && policy_handler->PolicyEnabled()) {
+ result = policy_handler->CheckSystemAction(system_action, app_mobile_id);
+ }
+
+ return result;
+}
+
mobile_apis::Result::eType MessageHelper::ProcessSoftButtons(
smart_objects::SmartObject& message_params, ApplicationConstSharedPtr app) {
+ using namespace mobile_apis;
+ using namespace smart_objects;
+
if (!message_params.keyExists(strings::soft_buttons)) {
return mobile_apis::Result::SUCCESS;
}
const HMICapabilities& hmi_capabilities = ApplicationManagerImpl::instance()
->hmi_capabilities();
- const smart_objects::SmartObject* soft_button_capabilities = hmi_capabilities
+ const SmartObject* soft_button_capabilities = hmi_capabilities
.soft_button_capabilities();
bool image_supported = false;
if (soft_button_capabilities) {
@@ -2204,31 +2299,27 @@ mobile_apis::Result::eType MessageHelper::ProcessSoftButtons(
.asBool();
}
- smart_objects::SmartObject& request_soft_buttons =
- message_params[strings::soft_buttons];
+ SmartObject& request_soft_buttons = message_params[strings::soft_buttons];
// Check whether soft buttons request is well-formed
if (!ValidateSoftButtons(request_soft_buttons)) {
- return mobile_apis::Result::INVALID_DATA;
+ return Result::INVALID_DATA;
}
- smart_objects::SmartObject soft_buttons = smart_objects::SmartObject(
- smart_objects::SmartType_Array);
-
- policy::PolicyHandler* policy_handler = policy::PolicyHandler::instance();
- std::string app_mobile_id = app->mobile_app_id()->asString();
+ SmartObject soft_buttons(SmartType_Array);
uint32_t j = 0;
size_t size = request_soft_buttons.length();
for (uint32_t i = 0; i < size; ++i) {
- int system_action = request_soft_buttons[i][strings::system_action].asInt();
- if (!policy_handler->CheckKeepContext(system_action, app_mobile_id) ||
- !policy_handler->CheckStealFocus(system_action, app_mobile_id)) {
- return mobile_apis::Result::DISALLOWED;
+ const int system_action = request_soft_buttons[i][strings::system_action].asInt();
+
+ if (!CheckWithPolicy(static_cast<SystemAction::eType>(system_action),
+ app->mobile_app_id())) {
+ return Result::DISALLOWED;
}
switch (request_soft_buttons[i][strings::type].asInt()) {
- case mobile_apis::SoftButtonType::SBT_IMAGE: {
+ case SoftButtonType::SBT_IMAGE: {
if (!image_supported) {
continue;
}
@@ -2237,46 +2328,46 @@ mobile_apis::Result::eType MessageHelper::ProcessSoftButtons(
request_soft_buttons[i].erase(strings::text);
}
if (request_soft_buttons[i].keyExists(strings::image)) {
- mobile_apis::Result::eType verification_result = VerifyImage(
+ Result::eType verification_result = VerifyImage(
request_soft_buttons[i][strings::image], app);
- if (mobile_apis::Result::SUCCESS != verification_result) {
- return mobile_apis::Result::INVALID_DATA;
+ if (Result::SUCCESS != verification_result) {
+ return Result::INVALID_DATA;
}
} else {
- return mobile_apis::Result::INVALID_DATA;
+ return Result::INVALID_DATA;
}
break;
}
- case mobile_apis::SoftButtonType::SBT_TEXT: {
+ case SoftButtonType::SBT_TEXT: {
if ((!request_soft_buttons[i].keyExists(strings::text)) ||
(!VerifySoftButtonString(
request_soft_buttons[i][strings::text].asString()))) {
- return mobile_apis::Result::INVALID_DATA;
+ return Result::INVALID_DATA;
}
break;
}
- case mobile_apis::SoftButtonType::SBT_BOTH: {
+ case SoftButtonType::SBT_BOTH: {
if ((!request_soft_buttons[i].keyExists(strings::text)) ||
((request_soft_buttons[i][strings::text].length())
&& (!VerifySoftButtonString(
request_soft_buttons[i][strings::text].asString())))) {
- return mobile_apis::Result::INVALID_DATA;
+ return Result::INVALID_DATA;
}
bool image_exist = false;
if (image_supported) {
image_exist = request_soft_buttons[i].keyExists(strings::image);
if (!image_exist) {
- return mobile_apis::Result::INVALID_DATA;
+ return Result::INVALID_DATA;
}
}
if (image_exist) {
- mobile_apis::Result::eType verification_result = VerifyImage(
+ Result::eType verification_result = VerifyImage(
request_soft_buttons[i][strings::image], app);
- if (mobile_apis::Result::SUCCESS != verification_result) {
- return mobile_apis::Result::INVALID_DATA;
+ if (Result::SUCCESS != verification_result) {
+ return Result::INVALID_DATA;
}
}
@@ -2297,7 +2388,7 @@ mobile_apis::Result::eType MessageHelper::ProcessSoftButtons(
if (0 == request_soft_buttons.length()) {
message_params.erase(strings::soft_buttons);
}
- return mobile_apis::Result::SUCCESS;
+ return Result::SUCCESS;
}
void MessageHelper::SubscribeApplicationToSoftButton(
diff --git a/src/components/application_manager/src/mobile_command_factory.cc b/src/components/application_manager/src/mobile_command_factory.cc
index 2d2e31f735..0d592e9562 100644
--- a/src/components/application_manager/src/mobile_command_factory.cc
+++ b/src/components/application_manager/src/mobile_command_factory.cc
@@ -67,6 +67,7 @@
#include "application_manager/commands/mobile/on_button_press_notification.h"
#include "application_manager/commands/mobile/on_driver_distraction_notification.h"
#include "application_manager/commands/mobile/on_hmi_status_notification.h"
+#include "application_manager/commands/mobile/on_hmi_status_notification_from_mobile.h"
#include "application_manager/commands/mobile/on_language_change_notification.h"
#include "application_manager/commands/mobile/on_command_notification.h"
#include "application_manager/commands/mobile/on_permissions_change_notification.h"
@@ -91,8 +92,8 @@
#include "application_manager/commands/mobile/set_display_layout_response.h"
#include "application_manager/commands/mobile/set_global_properties_request.h"
#include "application_manager/commands/mobile/set_global_properties_response.h"
-#include "application_manager/commands/mobile/set_icon_request.h"
-#include "application_manager/commands/mobile/set_icon_response.h"
+#include "application_manager/commands/mobile/set_app_icon_request.h"
+#include "application_manager/commands/mobile/set_app_icon_response.h"
#include "application_manager/commands/mobile/set_media_clock_timer_request.h"
#include "application_manager/commands/mobile/set_media_clock_timer_response.h"
#include "application_manager/commands/mobile/show_constant_tbt_request.h"
@@ -129,7 +130,8 @@
namespace application_manager {
commands::Command *MobileCommandFactory::CreateCommand(
- const MessageSharedPtr& message) {
+ const commands::MessageSharedPtr& message,
+ commands::Command::CommandOrigin origin) {
switch ((*message)[strings::params][strings::function_id].asInt()) {
case mobile_apis::FunctionID::RegisterAppInterfaceID: {
@@ -398,9 +400,9 @@ commands::Command *MobileCommandFactory::CreateCommand(
case mobile_apis::FunctionID::SetAppIconID: {
if ((*message)[strings::params][strings::message_type]
== static_cast<int>(application_manager::MessageType::kResponse)) {
- return new commands::SetIconResponse(message);
+ return new commands::SetAppIconResponse(message);
} else {
- return new commands::SetIconRequest(message);
+ return new commands::SetAppIconRequest(message);
}
break;
}
@@ -519,6 +521,9 @@ commands::Command *MobileCommandFactory::CreateCommand(
break;
}
case mobile_apis::FunctionID::OnHMIStatusID: {
+ if (origin == commands::Command::ORIGIN_MOBILE) {
+ return new commands::OnHMIStatusNotificationFromMobile(message);
+ }
return new commands::OnHMIStatusNotification(message);
break;
}
diff --git a/src/components/application_manager/src/mobile_message_handler.cc b/src/components/application_manager/src/mobile_message_handler.cc
index 22260e214e..a1c8385549 100644
--- a/src/components/application_manager/src/mobile_message_handler.cc
+++ b/src/components/application_manager/src/mobile_message_handler.cc
@@ -50,9 +50,36 @@ const uint8_t kUnknown = 0xF;
}
namespace application_manager {
+using protocol_handler::Extract;
CREATE_LOGGERPTR_GLOBAL(logger_, "MobileMessageHandler")
+application_manager::Message* MobileMessageHandler::HandleIncomingMessageProtocol(
+ const protocol_handler::RawMessagePtr message) {
+ if (message->protocol_version() == ProtocolVersion::kV1) {
+ return MobileMessageHandler::HandleIncomingMessageProtocolV1(message);
+ }
+ if ((message->protocol_version() == ProtocolVersion::kV2) ||
+ (message->protocol_version() == ProtocolVersion::kV3) ||
+ (message->protocol_version() == ProtocolVersion::kV4)) {
+ return MobileMessageHandler::HandleIncomingMessageProtocolV2(message);
+ }
+ return NULL;
+}
+
+protocol_handler::RawMessage* MobileMessageHandler::HandleOutgoingMessageProtocol(
+ const MobileMessage& message) {
+ if (message->protocol_version() == application_manager::kV1) {
+ return MobileMessageHandler::HandleOutgoingMessageProtocolV1(message);
+ }
+ if ((message->protocol_version() == application_manager::kV2) ||
+ (message->protocol_version() == application_manager::kV3) ||
+ (message->protocol_version() == application_manager::kV4)) {
+ return MobileMessageHandler::HandleOutgoingMessageProtocolV2(message);
+ }
+ return NULL;
+}
+
application_manager::Message*
MobileMessageHandler::HandleIncomingMessageProtocolV1(
@@ -78,6 +105,7 @@ MobileMessageHandler::HandleIncomingMessageProtocolV1(
message->data_size()));
if (outgoing_message->json_message().empty()) {
+ delete outgoing_message;
return NULL;
}
@@ -112,7 +140,7 @@ MobileMessageHandler::HandleIncomingMessageProtocolV2(
outgoing_message->set_function_id(payload.header.rpc_function_id);
outgoing_message->set_message_type(
MessageTypeFromRpcType(payload.header.rpc_type));
- outgoing_message->set_correlation_id(int32_t(payload.header.corellation_id));
+ outgoing_message->set_correlation_id(int32_t(payload.header.correlation_id));
outgoing_message->set_connection_key(message->connection_key());
outgoing_message->set_protocol_version(
static_cast<application_manager::ProtocolVersion>(message
@@ -145,6 +173,8 @@ MobileMessageHandler::HandleOutgoingMessageProtocolV1(
protocol_handler::RawMessage* result = new protocol_handler::RawMessage(
message->connection_key(), 1, rawMessage, messageString.length() + 1);
+ delete [] rawMessage;
+
return result;
}
@@ -216,6 +246,8 @@ MobileMessageHandler::HandleOutgoingMessageProtocolV2(
dataForSending,
dataForSendingSize);
+ delete [] dataForSending;
+
return msgToProtocolHandler;
}
} // namespace application_manager
diff --git a/src/components/application_manager/src/policies/policy_event_observer.cc b/src/components/application_manager/src/policies/policy_event_observer.cc
index 488097761a..09f97dd3f1 100644
--- a/src/components/application_manager/src/policies/policy_event_observer.cc
+++ b/src/components/application_manager/src/policies/policy_event_observer.cc
@@ -32,20 +32,31 @@
#include "application_manager/policies/policy_event_observer.h"
#include "application_manager/smart_object_keys.h"
+#include "application_manager/policies/policy_handler.h"
#include "utils/date_time.h"
-#include "policy/policy_manager.h"
#include "smart_objects/smart_object.h"
namespace policy {
namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
using namespace application_manager;
+class PolicyHandler;
-PolicyEventObserver::PolicyEventObserver(utils::SharedPtr<PolicyManager> policy_manager)
- : policy_manager_(policy_manager) {
+CREATE_LOGGERPTR_GLOBAL(logger_, "PolicyHandler")
+
+PolicyEventObserver::PolicyEventObserver(PolicyHandler* const policy_handler)
+ : policy_handler_(policy_handler) {
+}
+
+void PolicyEventObserver::set_policy_handler(policy::PolicyHandler* const policy_handler) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ sync_primitives::AutoLock auto_lock(policy_handler_lock_);
+ LOG4CXX_DEBUG(logger_, "Set policy handler " << policy_handler);
+ policy_handler_ = policy_handler;
}
void PolicyEventObserver::on_event(const event_engine::Event& event) {
- if (!policy_manager_) {
+ sync_primitives::AutoLock auto_lock(policy_handler_lock_);
+ if (!policy_handler_) {
return;
}
const smart_objects::SmartObject& message = event.smart_object();
@@ -67,7 +78,7 @@ void PolicyEventObserver::on_event(const event_engine::Event& event) {
break;
}
case hmi_apis::FunctionID::BasicCommunication_OnReady: {
- policy_manager_->OnSystemReady();
+ policy_handler_->OnSystemReady();
unsubscribe_from_event(hmi_apis::FunctionID::BasicCommunication_OnReady);
break;
}
@@ -88,8 +99,8 @@ void PolicyEventObserver::ProcessOdometerEvent(const smart_objects::SmartObject&
const int kSecondsInDay = 60 * 60 * 24;
int days_after_epoch = current_time.tv_sec / kSecondsInDay;
- if(policy_manager_) {
- policy_manager_->PTUpdatedAt(
+ if (policy_handler_) {
+ policy_handler_->PTUpdatedAt(
message[strings::msg_params][strings::odometer].asInt(),
days_after_epoch);
}
diff --git a/src/components/application_manager/src/policies/policy_handler.cc b/src/components/application_manager/src/policies/policy_handler.cc
index 8e73b4bdf4..457534302d 100644
--- a/src/components/application_manager/src/policies/policy_handler.cc
+++ b/src/components/application_manager/src/policies/policy_handler.cc
@@ -1,5 +1,5 @@
-/*
- Copyright (c) 2013, Ford Motor Company
+/*
+ Copyright (c) 2014, Ford Motor Company
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -35,9 +35,11 @@
#include <algorithm>
#include <vector>
#include "application_manager/smart_object_keys.h"
+
#include "application_manager/policies/policy_handler.h"
-#include "application_manager/policies/pt_exchange_handler_impl.h"
-#include "application_manager/policies/pt_exchange_handler_ext.h"
+
+#include "application_manager/policies/delegates/app_permission_delegate.h"
+
#include "application_manager/application_manager_impl.h"
#include "application_manager/message_helper.h"
#include "policy/policy_manager_impl.h"
@@ -54,34 +56,61 @@
namespace policy {
+using namespace application_manager;
+
#define POLICY_LIB_CHECK(return_value) {\
+ sync_primitives::AutoReadLock lock(policy_manager_lock_); \
if (!policy_manager_) {\
- LOG4CXX_WARN(logger_, "The shared library of policy is not loaded");\
+ LOG4CXX_DEBUG(logger_, "The shared library of policy is not loaded");\
return return_value;\
}\
}
#define POLICY_LIB_CHECK_VOID() {\
+ sync_primitives::AutoReadLock lock(policy_manager_lock_); \
if (!policy_manager_) {\
- LOG4CXX_WARN(logger_, "The shared library of policy is not loaded");\
+ LOG4CXX_DEBUG(logger_, "The shared library of policy is not loaded");\
return;\
}\
}
CREATE_LOGGERPTR_GLOBAL(logger_, "PolicyHandler")
-typedef std::set<application_manager::ApplicationSharedPtr> ApplicationList;
+
+struct ApplicationListHmiLevelSorter {
+ bool operator() (const application_manager::ApplicationSharedPtr& lhs,
+ const application_manager::ApplicationSharedPtr& rhs) {
+ if (lhs && rhs) {
+ mobile_apis::HMILevel::eType lhs_hmi_level = lhs->hmi_level();
+ mobile_apis::HMILevel::eType rhs_hmi_level = rhs->hmi_level();
+
+ if (lhs_hmi_level == rhs_hmi_level) {
+ return lhs->app_id() < rhs->app_id();
+ }
+ return lhs_hmi_level < rhs_hmi_level;
+ }
+ return false;
+ }
+};
+
+typedef std::set<application_manager::ApplicationSharedPtr, ApplicationListHmiLevelSorter>
+HmiLevelOrderedApplicationList;
struct DeactivateApplication {
explicit DeactivateApplication(
const connection_handler::DeviceHandle& device_id)
: device_id_(device_id) {}
- void operator()(const application_manager::ApplicationSharedPtr& app) {
+ void operator()(const ApplicationSharedPtr& app) {
if (device_id_ == app->device()) {
- app->set_hmi_level(mobile_apis::HMILevel::HMI_NONE);
- application_manager::MessageHelper::SendActivateAppToHMI(
- app->app_id(), hmi_apis::Common_HMILevel::NONE);
+ if (mobile_api::HMILevel::HMI_NONE != app->hmi_level()) {
+ ApplicationManagerImpl::instance()->ChangeAppsHMILevel(app->app_id(),
+ mobile_apis::HMILevel::HMI_NONE);
+ app->set_audio_streaming_state(mobile_api::AudioStreamingState::NOT_AUDIBLE);
+ MessageHelper::SendActivateAppToHMI(
+ app->app_id(), hmi_apis::Common_HMILevel::NONE);
+ MessageHelper::SendHMIStatusNotification(*app.get());
+ }
}
}
@@ -90,13 +119,12 @@ struct DeactivateApplication {
};
struct SDLAlowedNotification {
- explicit SDLAlowedNotification(
- const connection_handler::DeviceHandle& device_id,
- utils::SharedPtr<PolicyManager> policy_manager)
+ SDLAlowedNotification(const connection_handler::DeviceHandle& device_id,
+ PolicyManager* policy_manager)
: device_id_(device_id),
policy_manager_(policy_manager){}
- void operator()(const application_manager::ApplicationSharedPtr& app) {
+ void operator()(const ApplicationSharedPtr& app) {
if (!policy_manager_) {
return;
}
@@ -104,7 +132,7 @@ struct SDLAlowedNotification {
std::string hmi_level;
hmi_apis::Common_HMILevel::eType default_hmi;
mobile_apis::HMILevel::eType default_mobile_hmi;
- policy_manager_->GetDefaultHmi(app->mobile_app_id()->asString(), &hmi_level);
+ policy_manager_->GetDefaultHmi(app->mobile_app_id(), &hmi_level);
if ("BACKGROUND" == hmi_level) {
default_hmi = hmi_apis::Common_HMILevel::BACKGROUND;
default_mobile_hmi = mobile_apis::HMILevel::HMI_BACKGROUND;
@@ -121,17 +149,18 @@ struct SDLAlowedNotification {
return ;
}
if (app->hmi_level() == default_mobile_hmi) {
- LOG4CXX_INFO(logger_, "Application already in default hmi state.");
+ LOG4CXX_DEBUG(logger_, "Application already in default hmi state.");
} else {
- app->set_hmi_level(default_mobile_hmi);
- application_manager::MessageHelper::SendHMIStatusNotification(*app);
+ ApplicationManagerImpl::instance()->ChangeAppsHMILevel(app->app_id(),
+ default_mobile_hmi);
+ MessageHelper::SendHMIStatusNotification(*app);
}
- application_manager::MessageHelper::SendActivateAppToHMI(app->app_id(), default_hmi);
+ MessageHelper::SendActivateAppToHMI(app->app_id(), default_hmi);
}
}
private:
connection_handler::DeviceHandle device_id_;
- utils::SharedPtr<PolicyManager> policy_manager_;
+ PolicyManager* policy_manager_;
};
struct LinkAppToDevice {
@@ -141,17 +170,17 @@ struct LinkAppToDevice {
app_to_device_link_.clear();
}
- void operator()(const application_manager::ApplicationSharedPtr& app) {
+ void operator()(const ApplicationSharedPtr& app) {
if (!app.valid()) {
LOG4CXX_WARN(logger_, "Invalid pointer to application was passed."
"Skip current application.");
return;
}
DeviceParams device_params;
- application_manager::MessageHelper::GetDeviceInfoForApp(
+ MessageHelper::GetDeviceInfoForApp(
app->app_id(),
&device_params);
- const std::string app_id = app->mobile_app_id()->asString();
+ const std::string app_id = app->mobile_app_id();
if (device_params.device_mac_address.empty()) {
LOG4CXX_WARN(logger_, "Couldn't find device, which hosts application "
<< app_id);
@@ -208,13 +237,10 @@ const std::string PolicyHandler::kLibrary = "libPolicy.so";
PolicyHandler::PolicyHandler()
- : dl_handle_(0),
-// EXTENDED_POLICY
- exchange_handler_(new PTExchangeHandlerImpl(this)),
- on_ignition_check_done_(false),
+ : AsyncRunner("PolicyHandler async runner thread"),
+ dl_handle_(0),
last_activated_app_id_(0),
- registration_in_progress(false),
- is_user_requested_policy_table_update_(false),
+ app_to_device_link_lock_(true),
statistic_manager_impl_(new StatisticManagerImpl()) {
}
@@ -223,6 +249,8 @@ PolicyHandler::~PolicyHandler() {
}
bool PolicyHandler::LoadPolicyLibrary() {
+ LOG4CXX_AUTO_TRACE(logger_);
+ sync_primitives::AutoWriteLock lock(policy_manager_lock_);
if (!PolicyEnabled()) {
LOG4CXX_WARN(logger_, "System is configured to work without policy "
"functionality.");
@@ -235,7 +263,7 @@ bool PolicyHandler::LoadPolicyLibrary() {
if (error_string == NULL) {
if (CreateManager()) {
policy_manager_->set_listener(this);
- event_observer_= new PolicyEventObserver(policy_manager_);
+ event_observer_= new PolicyEventObserver(this);
}
} else {
LOG4CXX_ERROR(logger_, error_string);
@@ -257,22 +285,22 @@ bool PolicyHandler::CreateManager() {
} else {
LOG4CXX_WARN(logger_, error_string);
}
- return policy_manager_;
+ return policy_manager_.valid();
}
bool PolicyHandler::InitPolicyTable() {
- LOG4CXX_TRACE(logger_, "Init policy table from preloaded.");
+ LOG4CXX_AUTO_TRACE(logger_);
POLICY_LIB_CHECK(false);
// Subscribing to notification for system readiness to be able to get system
// info necessary for policy table
- event_observer_.get()->subscribe_on_event(
+ event_observer_->subscribe_on_event(
hmi_apis::FunctionID::BasicCommunication_OnReady);
std::string preloaded_file =
profile::Profile::instance()->preloaded_pt_file();
if (file_system::FileExists(preloaded_file)) {
return policy_manager_->InitPT(preloaded_file);
}
- LOG4CXX_WARN(logger_, "The file which contains preloaded PT is not exist");
+ LOG4CXX_FATAL(logger_, "The file which contains preloaded PT is not exist");
return false;
}
@@ -289,148 +317,60 @@ bool PolicyHandler::ResetPolicyTable() {
}
bool PolicyHandler::ClearUserConsent() {
- LOG4CXX_INFO(logger_, "Removing user consent records in policy table.");
+ LOG4CXX_AUTO_TRACE(logger_);
POLICY_LIB_CHECK(false);
return policy_manager_->ResetUserConsent();
}
uint32_t PolicyHandler::GetAppIdForSending() {
- // Get app.list
- application_manager::ApplicationManagerImpl::ApplicationListAccessor accessor;
- const ApplicationList app_list = accessor.applications();
+ ApplicationManagerImpl::ApplicationListAccessor accessor;
+ HmiLevelOrderedApplicationList app_list(accessor.begin(), accessor.end());
- if (app_list.empty()) {
- return 0;
- }
-
- // Choose application
- uint32_t selected_app_id = 0;
- AppIds app_ids_last_resort;
- AppIds app_ids_preferred;
+ LOG4CXX_INFO(logger_, "Apps size: " << app_list.size());
- ApplicationList::const_iterator it_app_list = app_list.begin();
- ApplicationList::const_iterator it_app_list_end = app_list.end();
- for (; it_app_list != it_app_list_end; ++it_app_list) {
- switch ((*it_app_list)->hmi_level()) {
- case mobile_apis::HMILevel::HMI_NONE:
- app_ids_last_resort.push_back((*it_app_list)->app_id());
- break;
- default:
- app_ids_preferred.push_back((*it_app_list)->app_id());
- break;
+ DeviceParams device_param;
+ for (HmiLevelOrderedApplicationList::const_iterator first = app_list.begin();
+ first != app_list.end(); ++first) {
+ if ((*first)->IsRegistered()) {
+ const uint32_t app_id = (*first)->app_id();
+ MessageHelper::GetDeviceInfoForApp(app_id, &device_param);
+ if (kDeviceAllowed ==
+ policy_manager_->GetUserConsentForDevice(device_param.device_mac_address)) {
+ return app_id;
+ }
}
}
- AppIds& app_ids_to_use =
- app_ids_preferred.empty() ? app_ids_last_resort : app_ids_preferred;
-
- // Checking, if some of currently known apps was not used already
- std::sort(last_used_app_ids_.begin(), last_used_app_ids_.end());
- std::sort(app_ids_to_use.begin(), app_ids_to_use.end());
-
- bool is_all_used = std::includes(last_used_app_ids_.begin(),
- last_used_app_ids_.end(),
- app_ids_to_use.begin(),
- app_ids_to_use.end());
-
- if (is_all_used) {
- last_used_app_ids_.clear();
- }
-
- // Leave only unused apps
- AppIds::iterator it_apps_to_use = app_ids_to_use.begin();
- AppIds::iterator it_apps_to_use_end = app_ids_to_use.end();
-
- AppIds::const_iterator it_last_used_app_ids = last_used_app_ids_.begin();
- AppIds::const_iterator it_last_used_app_ids_end = last_used_app_ids_.end();
-
- for (; it_last_used_app_ids != it_last_used_app_ids_end;
- ++it_last_used_app_ids) {
-
- std::remove(it_apps_to_use, it_apps_to_use_end, *it_last_used_app_ids);
- }
-
- // Random selection of filtered apps
- std::srand(time(0));
- selected_app_id =
- *(app_ids_to_use.begin() + (rand() % app_ids_to_use.size()));
-
- last_used_app_ids_.push_back(selected_app_id);
- return selected_app_id;
-}
-
-DeviceConsent PolicyHandler::GetDeviceForSending(DeviceParams& device_params) {
- POLICY_LIB_CHECK(kDeviceDisallowed);
- uint32_t app_id = 0;
- uint32_t app_id_previous = 0;
- while (true) {
- app_id = GetAppIdForSending();
- if (!app_id) {
- LOG4CXX_WARN(logger_,
- "There is no appropriate application for sending PTS.");
- return kDeviceDisallowed;
- }
-
- // If only one application is available, return its device params
- if (app_id == app_id_previous) {
- return kDeviceDisallowed;
- }
-
- app_id_previous = app_id;
- application_manager::MessageHelper::GetDeviceInfoForApp(app_id,
- &device_params);
-
- DeviceConsent consent = policy_manager_->GetUserConsentForDevice(
- device_params.device_mac_address);
- switch (consent) {
- case kDeviceAllowed:
- return consent;
- case kDeviceDisallowed:
- continue;
- case kDeviceHasNoConsent:
- return consent;
- default:
- LOG4CXX_WARN(logger_, "Consent result is not impelemented.");
- return consent;
- }
- }
- return kDeviceDisallowed;
+ return 0;
}
-const std::string PolicyHandler::ConvertUpdateStatus(PolicyTableStatus status) {
- switch (status) {
- case policy::StatusUpdatePending:
- return "UPDATING";
- case policy::StatusUpdateRequired:
- return "UPDATE_NEEDED";
- case policy::StatusUpToDate:
- return "UP_TO_DATE";
- default: {
- return "UNKNOWN";
- }
- }
+void PolicyHandler::OnAppPermissionConsent(const uint32_t connection_key,
+ const PermissionConsent& permissions) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ AsyncRun(new AppPermissionDelegate(connection_key, permissions));
}
void PolicyHandler::OnDeviceConsentChanged(const std::string& device_id,
bool is_allowed) {
POLICY_LIB_CHECK_VOID();
connection_handler::DeviceHandle device_handle;
- application_manager::ApplicationManagerImpl::instance()->connection_handler()
+ ApplicationManagerImpl::instance()->connection_handler()
->GetDeviceID(device_id, &device_handle);
// In case of changed consent for device, related applications will be
// limited to pre_DataConsent permissions, if device disallowed, or switch
// back to their own permissions, if device allowed again, and must be
// notified about these changes
- application_manager::ApplicationManagerImpl::ApplicationListAccessor accessor;
- ApplicationList app_list = accessor.applications();
- ApplicationList::const_iterator it_app_list = app_list.begin();
- ApplicationList::const_iterator it_app_list_end = app_list.end();
+ ApplicationManagerImpl::ApplicationListAccessor accessor;
+ ApplicationManagerImpl::ApplictionSetConstIt it_app_list =
+ accessor.begin();
+ ApplicationManagerImpl::ApplictionSetConstIt it_app_list_end =
+ accessor.end();
for (; it_app_list != it_app_list_end; ++it_app_list) {
if (device_handle == (*it_app_list).get()->device()) {
const std::string policy_app_id =
- (*it_app_list)->mobile_app_id()->asString();
+ (*it_app_list)->mobile_app_id();
// If app has predata policy, which is assigned without device consent or
// with negative data consent, there no necessity to change smth and send
@@ -448,33 +388,48 @@ void PolicyHandler::OnDeviceConsentChanged(const std::string& device_id,
}
}
+void PolicyHandler::OnPTExchangeNeeded() {
+ POLICY_LIB_CHECK_VOID();
+ policy_manager_->ForcePTExchange();
+}
+
+void PolicyHandler::GetAvailableApps(std::queue<std::string>& apps) {
+ LOG4CXX_INFO(logger_, "GetAvailable apps");
+ ApplicationManagerImpl::ApplicationListAccessor accessor;
+ const ApplicationManagerImpl::ApplictionSet app_list = accessor.applications();
+ ApplicationManagerImpl::ApplictionSetConstIt iter = app_list.begin();
+
+ for (;app_list.end() != iter; ++iter) {
+ LOG4CXX_INFO(logger_, "one more app");
+ apps.push((*iter)->mobile_app_id());
+ }
+}
+
void PolicyHandler::AddApplication(const std::string& application_id) {
- // TODO (AGaliuzov): remove this workaround during refactoring.
- registration_in_progress = true;
POLICY_LIB_CHECK_VOID();
policy_manager_->AddApplication(application_id);
}
void PolicyHandler::SetDeviceInfo(std::string& device_id,
const DeviceInfo& device_info) {
- LOG4CXX_INFO(logger_, "SetDeviceInfo");
+ LOG4CXX_AUTO_TRACE(logger_);
POLICY_LIB_CHECK_VOID();
policy_manager_->SetDeviceInfo(device_id, device_info);
}
-void PolicyHandler::OnAppPermissionConsent(const uint32_t connection_key,
- PermissionConsent &permissions) {
- LOG4CXX_INFO(logger_, "OnAppPermissionConsent");
+void PolicyHandler::OnAppPermissionConsentInternal(
+ const uint32_t connection_key, PermissionConsent &permissions) {
+ LOG4CXX_AUTO_TRACE(logger_);
POLICY_LIB_CHECK_VOID();
if (connection_key) {
- application_manager::ApplicationSharedPtr app =
- application_manager::ApplicationManagerImpl::instance()
+ ApplicationSharedPtr app =
+ ApplicationManagerImpl::instance()
->application(connection_key);
if (app.valid()) {
- permissions.policy_app_id = app->mobile_app_id()->asString();
+ permissions.policy_app_id = app->mobile_app_id();
policy::DeviceParams device_params;
- application_manager::MessageHelper::GetDeviceInfoForHandle(
+ MessageHelper::GetDeviceInfoForHandle(
app->device(),
&device_params);
@@ -488,6 +443,7 @@ void PolicyHandler::OnAppPermissionConsent(const uint32_t connection_key,
return;
}
+ sync_primitives::AutoLock lock(app_to_device_link_lock_);
if (!app_to_device_link_.size()) {
LOG4CXX_WARN(logger_, "There are no applications previously stored for "
"setting common permissions.");
@@ -499,8 +455,8 @@ void PolicyHandler::OnAppPermissionConsent(const uint32_t connection_key,
std::map<std::string, std::string>::const_iterator it_end =
app_to_device_link_.end();
for (;it != it_end; ++it) {
- application_manager::ApplicationSharedPtr app =
- application_manager::ApplicationManagerImpl::instance()->
+ ApplicationSharedPtr app =
+ ApplicationManagerImpl::instance()->
application_by_policy_id(it->first);
// If list of apps sent to HMI for user consents is not the same as current,
@@ -512,7 +468,7 @@ void PolicyHandler::OnAppPermissionConsent(const uint32_t connection_key,
}
policy::DeviceParams device_params;
- application_manager::MessageHelper::GetDeviceInfoForHandle(
+ MessageHelper::GetDeviceInfoForHandle(
app->device(),
&device_params);
@@ -531,29 +487,29 @@ void PolicyHandler::OnAppPermissionConsent(const uint32_t connection_key,
void PolicyHandler::OnGetUserFriendlyMessage(
const std::vector<std::string>& message_codes, const std::string& language,
uint32_t correlation_id) {
- LOG4CXX_INFO(logger_, "OnGetUserFriendlyMessage");
+ LOG4CXX_AUTO_TRACE(logger_);
POLICY_LIB_CHECK_VOID();
std::vector<UserFriendlyMessage> result = policy_manager_
->GetUserFriendlyMessages(message_codes, language);
// Send response to HMI with gathered data
- application_manager::MessageHelper::SendGetUserFriendlyMessageResponse(
+ MessageHelper::SendGetUserFriendlyMessageResponse(
result, correlation_id);
}
void PolicyHandler::OnGetListOfPermissions(const uint32_t connection_key,
const uint32_t correlation_id) {
- LOG4CXX_INFO(logger_, "OnGetListOfPermissions");
+ LOG4CXX_AUTO_TRACE(logger_);
POLICY_LIB_CHECK_VOID();
// If no specific app was passed, get permissions for all currently registered
// applications
if (!connection_key) {
+ sync_primitives::AutoLock lock(app_to_device_link_lock_);
LinkAppToDevice linker(app_to_device_link_);
- application_manager::ApplicationManagerImpl::ApplicationListAccessor accessor;
- const ApplicationList app_list = accessor.applications();
- std::set<application_manager::ApplicationSharedPtr>::const_iterator it_app =
- app_list.begin();
- std::set<application_manager::ApplicationSharedPtr>::const_iterator
- it_app_end = app_list.end();
+ ApplicationManagerImpl::ApplicationListAccessor accessor;
+ ApplicationManagerImpl::ApplictionSetConstIt it_app
+ = accessor.begin();
+ ApplicationManagerImpl::ApplictionSetConstIt it_app_end
+ = accessor.end();
// Add all currently registered applications
std::for_each(it_app, it_app_end, linker);
@@ -568,15 +524,15 @@ void PolicyHandler::OnGetListOfPermissions(const uint32_t connection_key,
consolidator.Consolidate(group_permissions);
}
- application_manager::MessageHelper::SendGetListOfPermissionsResponse(
+ MessageHelper::SendGetListOfPermissionsResponse(
consolidator.GetConsolidatedPermissions(), correlation_id);
return;
}
// Single app only
- application_manager::ApplicationSharedPtr app =
- application_manager::ApplicationManagerImpl::instance()->application(
+ ApplicationSharedPtr app =
+ ApplicationManagerImpl::instance()->application(
connection_key);
if (!app.valid()) {
@@ -586,7 +542,7 @@ void PolicyHandler::OnGetListOfPermissions(const uint32_t connection_key,
}
DeviceParams device_params;
- application_manager::MessageHelper::GetDeviceInfoForApp(connection_key,
+ MessageHelper::GetDeviceInfoForApp(connection_key,
&device_params);
std::vector<FunctionalGroupPermission> group_permissions;
if (device_params.device_mac_address.empty()) {
@@ -595,33 +551,31 @@ void PolicyHandler::OnGetListOfPermissions(const uint32_t connection_key,
LOG4CXX_WARN(logger_, "Couldn't find application to get permissions.");
} else {
policy_manager_->GetUserConsentForApp(device_params.device_mac_address,
- app->mobile_app_id()->asString(),
+ app->mobile_app_id(),
group_permissions);
- application_manager::MessageHelper::SendGetListOfPermissionsResponse(
+ MessageHelper::SendGetListOfPermissionsResponse(
group_permissions, correlation_id);
}
}
void PolicyHandler::OnGetStatusUpdate(const uint32_t correlation_id) {
- LOG4CXX_INFO(logger_, "OnGetStatusUpdate");
+ LOG4CXX_AUTO_TRACE(logger_);
POLICY_LIB_CHECK_VOID();
- policy::PolicyTableStatus status = policy_manager_->GetPolicyTableStatus();
- application_manager::MessageHelper::SendGetStatusUpdateResponse(
- ConvertUpdateStatus(status), correlation_id);
+ MessageHelper::SendGetStatusUpdateResponse(
+ policy_manager_->GetPolicyTableStatus(), correlation_id);
}
-void PolicyHandler::OnUpdateStatusChanged(PolicyTableStatus status) {
- LOG4CXX_INFO(logger_, "OnUpdateStatusChanged");
- application_manager::MessageHelper::SendOnStatusUpdate(
- ConvertUpdateStatus(status));
+void PolicyHandler::OnUpdateStatusChanged(const std::string& status) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ MessageHelper::SendOnStatusUpdate(status);
}
std::string PolicyHandler::OnCurrentDeviceIdUpdateRequired(
const std::string& policy_app_id) {
- LOG4CXX_INFO(logger_, "OnCurrentDeviceIdUpdateRequired");
- application_manager::ApplicationSharedPtr app =
- application_manager::ApplicationManagerImpl::instance()
+ LOG4CXX_AUTO_TRACE(logger_);
+ ApplicationSharedPtr app =
+ ApplicationManagerImpl::instance()
->application_by_policy_id(policy_app_id);
if (!app.valid()) {
@@ -630,13 +584,13 @@ std::string PolicyHandler::OnCurrentDeviceIdUpdateRequired(
return "";
}
DeviceParams device_param;
- application_manager::MessageHelper::GetDeviceInfoForApp(app->app_id(),
+ MessageHelper::GetDeviceInfoForApp(app->app_id(),
&device_param);
return device_param.device_mac_address;
}
void PolicyHandler::OnSystemInfoChanged(const std::string& language) {
- LOG4CXX_INFO(logger_, "OnSystemInfoChanged");
+ LOG4CXX_AUTO_TRACE(logger_);
POLICY_LIB_CHECK_VOID();
policy_manager_->SetSystemLanguage(language);
}
@@ -644,25 +598,25 @@ void PolicyHandler::OnSystemInfoChanged(const std::string& language) {
void PolicyHandler::OnGetSystemInfo(const std::string& ccpu_version,
const std::string& wers_country_code,
const std::string& language) {
- LOG4CXX_INFO(logger_, "OnGetSystemInfo");
+ LOG4CXX_AUTO_TRACE(logger_);
POLICY_LIB_CHECK_VOID();
policy_manager_->SetSystemInfo(ccpu_version, wers_country_code, language);
}
void PolicyHandler::OnSystemInfoUpdateRequired() {
- LOG4CXX_INFO(logger_, "OnSystemInfoUpdateRequired");
+ LOG4CXX_AUTO_TRACE(logger_);
POLICY_LIB_CHECK_VOID();
- application_manager::MessageHelper::SendGetSystemInfoRequest();
+ MessageHelper::SendGetSystemInfoRequest();
}
void PolicyHandler::OnVIIsReady() {
- const uint32_t correlation_id = application_manager::
+ const uint32_t correlation_id =
ApplicationManagerImpl::instance()->GetNextHMICorrelationID();
std::vector<std::string> params;
- params.push_back(application_manager::strings::vin);
+ params.push_back(strings::vin);
- application_manager::MessageHelper::CreateGetVehicleDataRequest(
+ MessageHelper::CreateGetVehicleDataRequest(
correlation_id, params);
}
@@ -672,38 +626,13 @@ void PolicyHandler::OnVehicleDataUpdated(
POLICY_LIB_CHECK_VOID();
}
-void PolicyHandler::OnAppRevoked(const std::string& policy_app_id) {
- LOG4CXX_TRACE(logger_, "OnAppRevoked with policy_app_id " << policy_app_id << " is revoked.");
- POLICY_LIB_CHECK_VOID();
- application_manager::ApplicationSharedPtr app =
- application_manager::ApplicationManagerImpl::instance()
- ->application_by_policy_id(policy_app_id);
- if (app.valid()) {
- DeviceParams device_params;
- application_manager::MessageHelper::GetDeviceInfoForApp(app->app_id(),
- &device_params);
- AppPermissions permissions = policy_manager_->GetAppPermissionsChanges(
- device_params.device_mac_address,
- policy_app_id);
- permissions.appRevoked = true;
- application_manager::MessageHelper::SendOnAppPermissionsChangedNotification(
- app->app_id(), permissions);
- app->set_hmi_level(mobile_apis::HMILevel::HMI_NONE);
- application_manager::MessageHelper::SendActivateAppToHMI(
- app->app_id(), hmi_apis::Common_HMILevel::NONE);
- application_manager::MessageHelper::SendHMIStatusNotification(*app);
- policy_manager_->RemovePendingPermissionChanges(policy_app_id);
- return;
- }
-}
-
void PolicyHandler::OnPendingPermissionChange(
const std::string& policy_app_id) {
- LOG4CXX_INFO(logger_, "PolicyHandler::OnPendingPermissionChange for "
+ LOG4CXX_DEBUG(logger_, "PolicyHandler::OnPendingPermissionChange for "
<< policy_app_id);
POLICY_LIB_CHECK_VOID();
- application_manager::ApplicationSharedPtr app =
- application_manager::ApplicationManagerImpl::instance()
+ ApplicationSharedPtr app =
+ ApplicationManagerImpl::instance()
->application_by_policy_id(policy_app_id);
if (!app.valid()) {
LOG4CXX_WARN(logger_,
@@ -711,32 +640,46 @@ void PolicyHandler::OnPendingPermissionChange(
return;
}
- DeviceParams device_params;
- application_manager::MessageHelper::GetDeviceInfoForApp(app->app_id(),
- &device_params);
AppPermissions permissions = policy_manager_->GetAppPermissionsChanges(
- device_params.device_mac_address,
policy_app_id);
- mobile_apis::HMILevel::eType app_hmi_level = app->hmi_level();
+ const uint32_t app_id = app->app_id();
+
+ using mobile_apis::HMILevel::eType;
+
+ if (permissions.appRevoked) {
+ application_manager::MessageHelper::SendOnAppPermissionsChangedNotification(
+ app_id, permissions);
+
+ ApplicationManagerImpl::instance()->ChangeAppsHMILevel(app->app_id(),
+ eType::HMI_NONE);
+ app->set_audio_streaming_state(mobile_apis::AudioStreamingState::NOT_AUDIBLE);
+ application_manager::MessageHelper::SendActivateAppToHMI(
+ app_id, hmi_apis::Common_HMILevel::NONE);
+ application_manager::MessageHelper::SendHMIStatusNotification(*app);
+ policy_manager_->RemovePendingPermissionChanges(policy_app_id);
+ return;
+ }
+
+ eType app_hmi_level = app->hmi_level();
switch (app_hmi_level) {
- case mobile_apis::HMILevel::HMI_FULL:
- case mobile_apis::HMILevel::HMI_LIMITED: {
+ case eType::HMI_FULL:
+ case eType::HMI_LIMITED: {
if (permissions.appPermissionsConsentNeeded) {
- application_manager::MessageHelper::
+ MessageHelper::
SendOnAppPermissionsChangedNotification(app->app_id(), permissions);
policy_manager_->RemovePendingPermissionChanges(policy_app_id);
}
break;
}
- case mobile_apis::HMILevel::HMI_BACKGROUND: {
+ case eType::HMI_BACKGROUND: {
if (permissions.isAppPermissionsRevoked) {
- application_manager::MessageHelper::
+ MessageHelper::
SendOnAppPermissionsChangedNotification(app->app_id(), permissions);
- policy_manager_->RemovePendingPermissionChanges(policy_app_id);
+ policy_manager_->RemovePendingPermissionChanges(policy_app_id);
}
break;
}
@@ -747,32 +690,33 @@ void PolicyHandler::OnPendingPermissionChange(
if (permissions.appUnauthorized) {
if (mobile_apis::HMILevel::HMI_FULL == app_hmi_level ||
mobile_apis::HMILevel::HMI_LIMITED == app_hmi_level) {
- application_manager::MessageHelper::
+ MessageHelper::
SendOnAppPermissionsChangedNotification(app->app_id(), permissions);
}
- application_manager::MessageHelper::
+ MessageHelper::
SendOnAppInterfaceUnregisteredNotificationToMobile(
app->app_id(),
- mobile_apis::AppInterfaceUnregisteredReason::APP_UNAUTHORIZED);
+ mobile_api::AppInterfaceUnregisteredReason::APP_UNAUTHORIZED);
- application_manager::ApplicationManagerImpl::instance()->
- UnregisterRevokedApplication(app->app_id(),
- mobile_apis::Result::INVALID_ENUM);
+ ApplicationManagerImpl::instance()->OnAppUnauthorized(app->app_id());
policy_manager_->RemovePendingPermissionChanges(policy_app_id);
}
}
-bool PolicyHandler::SendMessageToSDK(const BinaryMessage& pt_string) {
- LOG4CXX_INFO(logger_, "PolicyHandler::SendMessageToSDK");
+bool PolicyHandler::SendMessageToSDK(const BinaryMessage& pt_string,
+ const std::string& url) {
+ LOG4CXX_AUTO_TRACE(logger_);
POLICY_LIB_CHECK(false);
- std::string url;
+ if (last_used_app_ids_.empty()) {
+ LOG4CXX_WARN(logger_, "last_used_app_ids_ is empty");
+ return false;
+ }
uint32_t app_id = last_used_app_ids_.back();
- application_manager::ApplicationSharedPtr app =
- application_manager::ApplicationManagerImpl::instance()
- ->application(app_id);
+ ApplicationSharedPtr app =
+ ApplicationManagerImpl::instance()->application(app_id);
if (!app.valid()) {
LOG4CXX_WARN(logger_, "There is no registered application with "
@@ -780,21 +724,19 @@ bool PolicyHandler::SendMessageToSDK(const BinaryMessage& pt_string) {
return false;
}
- const std::string& mobile_app_id = app->mobile_app_id()->asString();
+ const std::string& mobile_app_id = app->mobile_app_id();
if (mobile_app_id.empty()) {
LOG4CXX_WARN(logger_, "Application with connection key '" << app_id << "'"
" has no application id.");
return false;
}
- url = policy_manager_->GetUpdateUrl(PolicyServiceTypes::POLICY);
- LOG4CXX_INFO(logger_, "Update url is " << url << " for application "
- << application_manager::ApplicationManagerImpl::instance()
+ LOG4CXX_DEBUG(logger_, "Update url is " << url << " for application "
+ << ApplicationManagerImpl::instance()
->application(app_id)->name());
- application_manager::MessageHelper::SendPolicySnapshotNotification(app_id,
- pt_string,
- url, 0);
+ MessageHelper::SendPolicySnapshotNotification(
+ app_id, pt_string, url, 0);
return true;
}
@@ -803,24 +745,16 @@ bool PolicyHandler::ReceiveMessageFromSDK(const std::string& file,
const BinaryMessage& pt_string) {
POLICY_LIB_CHECK(false);
- if (policy_manager_->GetPolicyTableStatus() !=
- PolicyTableStatus::StatusUpdatePending) {
- LOG4CXX_WARN(logger_, "PTU processing skipped, since current status is "
- "different from pending.");
- return false;
- }
-
bool ret = policy_manager_->LoadPT(file, pt_string);
LOG4CXX_INFO(logger_, "Policy table is saved: " << std::boolalpha << ret);
if (ret) {
LOG4CXX_INFO(logger_, "PTU was successful.");
- exchange_handler_->Stop();
policy_manager_->CleanupUnpairedDevices();
int32_t correlation_id =
- application_manager::ApplicationManagerImpl::instance()
+ ApplicationManagerImpl::instance()
->GetNextHMICorrelationID();
- event_observer_.get()->subscribe_on_event(
+ event_observer_->subscribe_on_event(
#ifdef HMI_DBUS_API
hmi_apis::FunctionID::VehicleInfo_GetOdometer, correlation_id
#else
@@ -828,8 +762,8 @@ bool PolicyHandler::ReceiveMessageFromSDK(const std::string& file,
#endif
);
std::vector<std::string> vehicle_data_args;
- vehicle_data_args.push_back(application_manager::strings::odometer);
- application_manager::MessageHelper::CreateGetVehicleDataRequest(
+ vehicle_data_args.push_back(strings::odometer);
+ MessageHelper::CreateGetVehicleDataRequest(
correlation_id, vehicle_data_args);
} else {
LOG4CXX_WARN(logger_, "Exchange wasn't successful, trying another one.");
@@ -839,68 +773,36 @@ bool PolicyHandler::ReceiveMessageFromSDK(const std::string& file,
}
bool PolicyHandler::UnloadPolicyLibrary() {
- LOG4CXX_TRACE(logger_, "enter. policy_manager_ = " << policy_manager_);
+ LOG4CXX_AUTO_TRACE(logger_);
+ LOG4CXX_DEBUG(logger_, "policy_manager_ = " << policy_manager_);
bool ret = true;
+ AsyncRunner::Stop();
+ sync_primitives::AutoWriteLock lock(policy_manager_lock_);
if (policy_manager_) {
- policy_manager_.release();
+ policy_manager_.reset();
}
if (dl_handle_) {
ret = (dlclose(dl_handle_) == 0);
dl_handle_ = 0;
}
- exchange_handler_->Stop();
LOG4CXX_TRACE(logger_, "exit");
return ret;
}
-void PolicyHandler::StartPTExchange(bool skip_device_selection) {
- LOG4CXX_INFO(logger_, "PolicyHandler::StartPTExchange");
- POLICY_LIB_CHECK_VOID();
-
- if (policy_manager_->GetPolicyTableStatus() ==
- PolicyTableStatus::StatusUpdatePending) {
- LOG4CXX_INFO(logger_, "Starting exchange skipped, since another exchange "
- "is in progress.");
- return;
- }
-
- if (!skip_device_selection) {
- DeviceParams device_params;
- DeviceConsent consent = GetDeviceForSending(device_params);
- switch (consent) {
- case kDeviceHasNoConsent:
- // Send OnSDLConsentNeeded to HMI for user consent on device usage
- pending_device_handles_.push_back(device_params.device_handle);
- application_manager::MessageHelper::SendOnSDLConsentNeeded(
- device_params);
- return;
- case kDeviceDisallowed:
- return;
- default:
- break;
- }
- }
-
- exchange_handler_->Start();
-}
-
void PolicyHandler::OnAllowSDLFunctionalityNotification(bool is_allowed,
uint32_t device_id) {
- LOG4CXX_INFO(logger_, "OnAllowSDLFunctionalityNotification");
+ LOG4CXX_AUTO_TRACE(logger_);
POLICY_LIB_CHECK_VOID();
// Device ids, need to be changed
std::set<uint32_t> device_ids;
bool device_specific = device_id != 0;
// Common devices consents change
if (!device_specific) {
- application_manager::ApplicationManagerImpl::ApplicationListAccessor accessor;
- const std::set<application_manager::ApplicationSharedPtr> app_list =
- accessor.applications();
+ ApplicationManagerImpl::ApplicationListAccessor accessor;
+ const ApplicationManagerImpl::ApplictionSet app_list = accessor.applications();
- std::set<application_manager::ApplicationSharedPtr>::const_iterator
- it_app_list = app_list.begin();
- std::set<application_manager::ApplicationSharedPtr>::const_iterator
- it_app_end = app_list.end();
+ ApplicationManagerImpl::ApplictionSetConstIt it_app_list = app_list.begin();
+ ApplicationManagerImpl::ApplictionSetConstIt it_app_end = app_list.end();
for (;it_app_list != it_app_end; ++it_app_list) {
if (!(*it_app_list).valid()) {
@@ -918,7 +820,7 @@ void PolicyHandler::OnAllowSDLFunctionalityNotification(bool is_allowed,
const uint32_t device_id = *it_ids;
DeviceParams device_params;
- application_manager::MessageHelper::GetDeviceInfoForHandle(device_id,
+ MessageHelper::GetDeviceInfoForHandle(device_id,
&device_params);
device_params.device_handle = device_id;
if (kDefaultDeviceMacAddress == device_params.device_mac_address) {
@@ -944,139 +846,80 @@ void PolicyHandler::OnAllowSDLFunctionalityNotification(bool is_allowed,
pending_device_handles_.erase(it);
}
-// EXTENDED_POLICY
- // Skip device selection, since user already consented device usage
- StartPTExchange(true);
}
void PolicyHandler::OnIgnitionCycleOver() {
- LOG4CXX_INFO(logger_, "OnIgnitionCycleOver");
+ LOG4CXX_AUTO_TRACE(logger_);
POLICY_LIB_CHECK_VOID();
policy_manager_->IncrementIgnitionCycles();
}
-void PolicyHandler::KmsChanged(int kms) {
- LOG4CXX_INFO(logger_, "PolicyHandler::KmsChanged " << kms << " kilometers");
- POLICY_LIB_CHECK_VOID();
- PTExchangeAtOdometer(kms);
-}
-
void PolicyHandler::OnActivateApp(uint32_t connection_key,
uint32_t correlation_id) {
- LOG4CXX_INFO(logger_, "OnActivateApp");
+ LOG4CXX_AUTO_TRACE(logger_);
- application_manager::ApplicationSharedPtr app =
- application_manager::ApplicationManagerImpl::instance()->application(
+ ApplicationSharedPtr app =
+ ApplicationManagerImpl::instance()->application(
connection_key);
if (!app.valid()) {
LOG4CXX_WARN(logger_, "Activated App failed: no app found.");
return;
}
- std::string policy_app_id = app->mobile_app_id()->asString();
+ std::string policy_app_id = app->mobile_app_id();
AppPermissions permissions(policy_app_id);
+ sync_primitives::AutoReadLock lock(policy_manager_lock_);
if (!policy_manager_) {
- LOG4CXX_WARN(logger_, "The shared library of policy is not loaded");
+ LOG4CXX_DEBUG(logger_, "The shared library of policy is not loaded");
if (!PolicyEnabled()) {
permissions.isSDLAllowed = true;
}
} else {
- DeviceParams device_params;
- application_manager::MessageHelper::GetDeviceInfoForApp(connection_key,
- &device_params);
permissions = policy_manager_->GetAppPermissionsChanges(
- device_params.device_mac_address,
policy_app_id);
permissions.isSDLAllowed = true;
-
- if (permissions.isSDLAllowed &&
- PolicyTableStatus::StatusUpdateRequired ==
- policy_manager_->GetPolicyTableStatus()) {
- StartPTExchange();
- }
policy_manager_->RemovePendingPermissionChanges(policy_app_id);
}
-
- bool is_app_activated = false;
// If application is revoked it should not be activated
// In this case we need to activate application
if (false == permissions.appRevoked && true == permissions.isSDLAllowed) {
- is_app_activated =
- application_manager::ApplicationManagerImpl::instance()->
- ActivateApplication(app);
- }
-
- last_activated_app_id_ = connection_key;
- application_manager::MessageHelper::SendSDLActivateAppResponse(permissions,
- correlation_id);
- if (is_app_activated) {
- application_manager::MessageHelper::SendHMIStatusNotification(*app.get());
+ LOG4CXX_INFO(logger_, "Application will be activated");
+ if (ApplicationManagerImpl::instance()->ActivateApplication(app)) {
+ MessageHelper::SendHMIStatusNotification(*(app.get()));
+ last_activated_app_id_ = 0;
+ }
+ } else {
+ LOG4CXX_INFO(logger_, "Application should not be activated");
}
-}
-void PolicyHandler::PTExchangeAtRegistration(const std::string& app_id) {
- LOG4CXX_INFO(logger_, "PTExchangeAtIgnition");
- POLICY_LIB_CHECK_VOID();
-
- if (policy_manager_->IsAppInUpdateList(app_id)) {
- StartPTExchange();
- } else if (false == on_ignition_check_done_) { // TODO(AG): add cond. var to handle this case.
- TimevalStruct current_time = date_time::DateTime::getCurrentTime();
- const int kSecondsInDay = 60 * 60 * 24;
- int days = current_time.tv_sec / kSecondsInDay;
-
- LOG4CXX_INFO(
- logger_,
- "\nIgnition cycles exceeded: " << std::boolalpha <<
- policy_manager_->ExceededIgnitionCycles()
- << "\nDays exceeded: " << std::boolalpha
- << policy_manager_->ExceededDays(days)
- << "\nStatusUpdateRequired: " << std::boolalpha
- << (policy_manager_->GetPolicyTableStatus() == StatusUpdateRequired));
- if (policy_manager_->ExceededIgnitionCycles()
- || policy_manager_->ExceededDays(days)
- || policy_manager_->GetPolicyTableStatus() == StatusUpdateRequired) {
- StartPTExchange();
- }
- }
- on_ignition_check_done_ = true;
+ MessageHelper::SendSDLActivateAppResponse(permissions, correlation_id);
}
-void PolicyHandler::PTExchangeAtOdometer(int kilometers) {
+void PolicyHandler::KmsChanged(int kilometers) {
+ LOG4CXX_DEBUG(logger_, "PolicyHandler::KmsChanged " << kilometers << " kilometers");
POLICY_LIB_CHECK_VOID();
- if (policy_manager_->ExceededKilometers(kilometers)) {
- LOG4CXX_INFO(logger_, "Enough kilometers passed to send for PT update.");
- StartPTExchange();
- }
+ policy_manager_->KmsChanged(kilometers);
}
void PolicyHandler::PTExchangeAtUserRequest(uint32_t correlation_id) {
LOG4CXX_TRACE(logger_, "PT exchange at user request");
POLICY_LIB_CHECK_VOID();
- policy::PolicyTableStatus status = policy_manager_->GetPolicyTableStatus();
- if (status != policy::StatusUpdatePending) {
- OnPTExchangeNeeded();
- status = policy::StatusUpdatePending;
- } else {
- is_user_requested_policy_table_update_ = true;
- }
- application_manager::MessageHelper::SendUpdateSDLResponse(
- ConvertUpdateStatus(status), correlation_id);
-}
-
-void PolicyHandler::OnPTExchangeNeeded() {
- StartPTExchange();
+ std::string update_status = policy_manager_->ForcePTExchange();
+ MessageHelper::SendUpdateSDLResponse(update_status,
+ correlation_id);
}
void PolicyHandler::OnPermissionsUpdated(const std::string& policy_app_id,
const Permissions& permissions,
const HMILevel& default_hmi) {
- application_manager::ApplicationSharedPtr app =
- application_manager::ApplicationManagerImpl::instance()
- ->application_by_policy_id(policy_app_id);
+ LOG4CXX_AUTO_TRACE(logger_);
+ OnPermissionsUpdated(policy_app_id, permissions);
+ ApplicationSharedPtr app =
+ ApplicationManagerImpl::instance()
+ ->application_by_policy_id(policy_app_id);
if (!app.valid()) {
LOG4CXX_WARN(
logger_,
@@ -1084,19 +927,11 @@ void PolicyHandler::OnPermissionsUpdated(const std::string& policy_app_id,
return;
}
- application_manager::MessageHelper::SendOnPermissionsChangeNotification(
- app->app_id(), permissions);
-
- LOG4CXX_INFO(
- logger_,
- "Notification sent for application_id:" << policy_app_id
- << " and connection_key " << app->app_id());
-
// The application currently not running (i.e. in NONE) should change HMI
// level to default
mobile_apis::HMILevel::eType current_hmi_level = app->hmi_level();
mobile_apis::HMILevel::eType hmi_level =
- application_manager::MessageHelper::StringToHMILevel(default_hmi);
+ MessageHelper::StringToHMILevel(default_hmi);
if (mobile_apis::HMILevel::INVALID_ENUM == hmi_level) {
LOG4CXX_WARN(logger_, "Couldn't convert default hmi level "
@@ -1104,7 +939,7 @@ void PolicyHandler::OnPermissionsUpdated(const std::string& policy_app_id,
return;
}
if (current_hmi_level == hmi_level) {
- LOG4CXX_INFO(logger_, "Application already in default hmi state.");
+ LOG4CXX_DEBUG(logger_, "Application already in default hmi state.");
return;
}
switch (current_hmi_level) {
@@ -1115,17 +950,16 @@ void PolicyHandler::OnPermissionsUpdated(const std::string& policy_app_id,
// If default is FULL, send request to HMI. Notification to mobile will be
// sent on response receiving.
if (mobile_apis::HMILevel::HMI_FULL == hmi_level) {
- application_manager::MessageHelper::SendActivateAppToHMI(app->app_id());
- break;
- }
-
- // Set application hmi level
- app->set_hmi_level(hmi_level);
-
- // Send notification to mobile
- application_manager::MessageHelper::SendHMIStatusNotification(*app.get());
+ MessageHelper::SendActivateAppToHMI(app->app_id());
+ } else {
+ // Set application hmi level
+ ApplicationManagerImpl::instance()->ChangeAppsHMILevel(app->app_id(),
+ hmi_level);
+ // If hmi Level is full, it will be seted after ActivateApp response
+ MessageHelper::SendHMIStatusNotification(*app.get());
}
break;
+ }
default:
LOG4CXX_WARN(logger_, "Application " << policy_app_id << " is running."
"HMI level won't be changed.");
@@ -1133,6 +967,54 @@ void PolicyHandler::OnPermissionsUpdated(const std::string& policy_app_id,
}
}
+void PolicyHandler::OnPermissionsUpdated(const std::string& policy_app_id,
+ const Permissions& permissions) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ ApplicationSharedPtr app =
+ ApplicationManagerImpl::instance()
+ ->application_by_policy_id(policy_app_id);
+ if (!app.valid()) {
+ LOG4CXX_WARN(
+ logger_,
+ "Connection_key not found for application_id:" << policy_app_id);
+ return;
+ }
+
+ MessageHelper::SendOnPermissionsChangeNotification(
+ app->app_id(), permissions);
+
+ LOG4CXX_DEBUG(
+ logger_,
+ "Notification sent for application_id:" << policy_app_id
+ << " and connection_key " << app->app_id());
+}
+
+bool PolicyHandler::SaveSnapshot(const BinaryMessage& pt_string,
+ std::string& snap_path) {
+ using namespace profile;
+
+ const std::string& policy_snapshot_file_name = Profile::instance()->policies_snapshot_file_name();
+ const std::string& system_files_path = Profile::instance()->system_files_path();
+ snap_path = system_files_path + '/' + policy_snapshot_file_name;
+
+ bool result = false;
+ if (file_system::CreateDirectoryRecursively(system_files_path)) {
+ result = file_system::WriteBinaryFile(snap_path, pt_string);
+ }
+
+ if (!result) {
+ LOG4CXX_ERROR(logger_, "Failed to write snapshot file to " << snap_path);
+ }
+
+ return result;
+}
+
+void PolicyHandler::OnSnapshotCreated(const BinaryMessage& pt_string,
+ const std::vector<int>& retry_delay_seconds,
+ int timeout_exchange) {
+ SendMessageToSDK(pt_string, policy_manager_->GetUpdateUrl(POLICY));
+}
+
bool PolicyHandler::GetPriority(const std::string& policy_app_id,
std::string* priority) {
POLICY_LIB_CHECK(false);
@@ -1172,14 +1054,9 @@ bool PolicyHandler::GetInitialAppData(const std::string& application_id,
return policy_manager_->GetInitialAppData(application_id, nicknames, app_hmi_types);
}
-EndpointUrls PolicyHandler::GetUpdateUrls(int service_type) {
- POLICY_LIB_CHECK(EndpointUrls());
- return policy_manager_->GetUpdateUrls(service_type);
-}
-
-std::string PolicyHandler::GetLockScreenIconUrl() const {
- POLICY_LIB_CHECK(std::string(""));
- return policy_manager_->GetLockScreenIconUrl();
+void PolicyHandler::GetUpdateUrls(int service_type, EndpointUrls& end_points) {
+ POLICY_LIB_CHECK_VOID();
+ policy_manager_->GetUpdateUrls(service_type, end_points);
}
void PolicyHandler::ResetRetrySequence() {
@@ -1202,14 +1079,24 @@ void PolicyHandler::OnExceededTimeout() {
policy_manager_->OnExceededTimeout();
}
-BinaryMessageSptr PolicyHandler::RequestPTUpdate() {
- POLICY_LIB_CHECK(BinaryMessageSptr());
- return policy_manager_->RequestPTUpdate();
+void PolicyHandler::OnSystemReady() {
+ POLICY_LIB_CHECK_VOID();
+ policy_manager_->OnSystemReady();
+}
+
+void PolicyHandler::PTUpdatedAt(int kilometers, int days_after_epoch) {
+ POLICY_LIB_CHECK_VOID();
+ policy_manager_->PTUpdatedAt(kilometers, days_after_epoch);
+}
+
+void PolicyHandler::add_listener(PolicyHandlerObserver* listener) {
+ sync_primitives::AutoLock lock(listeners_lock_);
+ listeners_.push_back(listener);
}
-const std::vector<int> PolicyHandler::RetrySequenceDelaysSeconds() {
- POLICY_LIB_CHECK(std::vector<int>());
- return policy_manager_->RetrySequenceDelaysSeconds();
+void PolicyHandler::remove_listener(PolicyHandlerObserver* listener) {
+ sync_primitives::AutoLock lock(listeners_lock_);
+ listeners_.remove(listener);
}
utils::SharedPtr<usage_statistics::StatisticsManager>
@@ -1254,8 +1141,8 @@ void PolicyHandler::OnSystemError(int code) {
}
std::string PolicyHandler::GetAppName(const std::string& policy_app_id) {
- application_manager::ApplicationSharedPtr app =
- application_manager::ApplicationManagerImpl::instance()
+ ApplicationSharedPtr app =
+ ApplicationManagerImpl::instance()
->application_by_policy_id(policy_app_id);
if (!app.valid()) {
@@ -1267,22 +1154,30 @@ std::string PolicyHandler::GetAppName(const std::string& policy_app_id) {
return app->name();
}
-void PolicyHandler::OnUserRequestedUpdateCheckRequired() {
- LOG4CXX_INFO(logger_, "OnUserRequestedUpdateCheckRequired");
- POLICY_LIB_CHECK_VOID();
- policy::PolicyTableStatus status = policy_manager_->GetPolicyTableStatus();
- if (is_user_requested_policy_table_update_ &&
- status != policy::StatusUpdatePending) {
- is_user_requested_policy_table_update_ = false;
- OnPTExchangeNeeded();
- return;
+void PolicyHandler::OnUpdateHMIAppType(std::map<std::string, StringArray> app_hmi_types) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ sync_primitives::AutoLock lock(listeners_lock_);
+ HandlersCollection::const_iterator it = listeners_.begin();
+ for (; it != listeners_.end(); ++it) {
+ (*it)->OnUpdateHMIAppType(app_hmi_types);
+ }
+}
+
+void PolicyHandler::OnCertificateUpdated(const std::string& certificate_data) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ sync_primitives::AutoLock lock(listeners_lock_);
+ HandlersCollection::const_iterator it = listeners_.begin();
+ for (; it != listeners_.end(); ++it) {
+ (*it)->OnCertificateUpdated(certificate_data);
}
- LOG4CXX_WARN(logger_, "There is another pending update is present."
- "User-requested update is postponed.");
+}
+
+bool PolicyHandler::CanUpdate() {
+ return 0 != GetAppIdForSending();
}
void PolicyHandler::RemoveDevice(const std::string& device_id) {
- LOG4CXX_INFO(logger_, "PolicyHandler::RemoveDevice");
+ LOG4CXX_AUTO_TRACE(logger_);
POLICY_LIB_CHECK_VOID();
policy_manager_->MarkUnpairedDevice(device_id);
@@ -1297,27 +1192,38 @@ bool PolicyHandler::IsApplicationRevoked(const std::string& app_id) {
}
void PolicyHandler::OnUpdateRequestSentToMobile() {
- LOG4CXX_INFO(logger_, "OnUpdateRequestSentToMobile");
+ LOG4CXX_AUTO_TRACE(logger_);
POLICY_LIB_CHECK_VOID();
policy_manager_->OnUpdateStarted();
}
-bool PolicyHandler::CheckKeepContext(int system_action,
- const std::string& policy_app_id) {
+bool PolicyHandler::CheckKeepContext(const std::string& policy_app_id) {
POLICY_LIB_CHECK(false);
- const bool keep_context = system_action
- == mobile_apis::SystemAction::KEEP_CONTEXT;
- const bool allowed = policy_manager_->CanAppKeepContext(policy_app_id);
- return !(keep_context && !allowed);
+ return policy_manager_->CanAppKeepContext(policy_app_id);
}
-bool PolicyHandler::CheckStealFocus(int system_action,
- const std::string& policy_app_id) {
+bool PolicyHandler::CheckStealFocus(const std::string& policy_app_id) {
POLICY_LIB_CHECK(false);
- const bool steal_focus = system_action
- == mobile_apis::SystemAction::STEAL_FOCUS;
- const bool allowed = policy_manager_->CanAppStealFocus(policy_app_id);
- return !(steal_focus && !allowed);
+ return policy_manager_->CanAppStealFocus(policy_app_id);
+}
+
+bool PolicyHandler::CheckSystemAction(
+ mobile_apis::SystemAction::eType system_action,
+ const std::string& policy_app_id) {
+ using namespace mobile_apis;
+ LOG4CXX_AUTO_TRACE(logger_);
+ switch (system_action) {
+ case SystemAction::STEAL_FOCUS:
+ return CheckStealFocus(policy_app_id);
+ case SystemAction::KEEP_CONTEXT:
+ return CheckKeepContext(policy_app_id);
+ case SystemAction::DEFAULT_ACTION:
+ return true;
+ default:
+ break;
+ }
+ LOG4CXX_DEBUG(logger_, "Unknown system action");
+ return false;
}
uint16_t PolicyHandler::HeartBeatTimeout(const std::string& app_id) const {
@@ -1325,6 +1231,22 @@ uint16_t PolicyHandler::HeartBeatTimeout(const std::string& app_id) const {
return policy_manager_->HeartBeatTimeout(app_id);
}
+const std::string PolicyHandler::RemoteAppsUrl() const {
+ const std::string default_url = "";
+ POLICY_LIB_CHECK(default_url);
+ return policy_manager_->RemoteAppsUrl();
+}
+
+void policy::PolicyHandler::OnAppsSearchStarted() {
+ POLICY_LIB_CHECK();
+ policy_manager_->OnAppsSearchStarted();
+}
+
+void policy::PolicyHandler::OnAppsSearchCompleted() {
+ POLICY_LIB_CHECK();
+ policy_manager_->OnAppsSearchCompleted();
+}
+
void PolicyHandler::Increment(usage_statistics::GlobalCounterId type) {
POLICY_LIB_CHECK();
policy_manager_->Increment(type);
diff --git a/src/components/application_manager/src/request_controller.cc b/src/components/application_manager/src/request_controller.cc
index 5faabde458..c4a2fabb71 100644
--- a/src/components/application_manager/src/request_controller.cc
+++ b/src/components/application_manager/src/request_controller.cc
@@ -30,7 +30,6 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
-#include <algorithm>
#include "utils/logger.h"
#include "config_profile/profile.h"
#include "application_manager/request_controller.h"
@@ -48,76 +47,59 @@ CREATE_LOGGERPTR_GLOBAL(logger_, "RequestController");
RequestController::RequestController()
: pool_state_(UNDEFINED),
pool_size_(profile::Profile::instance()->thread_pool_size()),
- pending_request_set_lock_(true),
- timer_("RequestCtrlTimer", this, &RequestController::onTimer, true)
-{
- LOG4CXX_INFO(logger_, "RequestController::RequestController()");
+ timer_("RequestCtrlTimer", this, &RequestController::onTimer, true),
+ is_low_voltage_(false) {
+ LOG4CXX_AUTO_TRACE(logger_);
InitializeThreadpool();
timer_.start(dafault_sleep_time_);
- LOG4CXX_DEBUG(logger_," Create timer thread ; timer thread = " << timer_.thread_->thread_handle());
}
RequestController::~RequestController() {
- LOG4CXX_TRACE_ENTER(logger_);
+ LOG4CXX_AUTO_TRACE(logger_);
if (pool_state_ != TPoolState::STOPPED) {
DestroyThreadpool();
}
-
- pool_.clear();
- mobile_request_list_.clear();
- pending_request_set_.clear();
}
-void RequestController::InitializeThreadpool()
-{
- LOG4CXX_TRACE_ENTER(logger_);
- // TODO: Consider lazy loading threads instead of creating all at once
+void RequestController::InitializeThreadpool() {
+ LOG4CXX_AUTO_TRACE(logger_);
+ // TODO(DK): Consider lazy loading threads instead of creating all at once
pool_state_ = TPoolState::STARTED;
+ char name[50];
for (uint32_t i = 0; i < pool_size_; i++) {
- char name [50];
- snprintf(name, sizeof(name)/sizeof(name[0]),
- "AM Pool %d", i);
+ snprintf(name, sizeof(name)/sizeof(name[0]), "AM Pool %d", i);
pool_.push_back(threads::CreateThread(name, new Worker(this)));
pool_[i]->start();
- LOG4CXX_INFO(logger_, "Request thread initialized: " << name);
+ LOG4CXX_DEBUG(logger_, "Request thread initialized: " << name);
}
}
void RequestController::DestroyThreadpool() {
- LOG4CXX_TRACE_ENTER(logger_);
+ LOG4CXX_AUTO_TRACE(logger_);
{
- sync_primitives::AutoLock auto_lock (mobile_request_list_lock_);
+ AutoLock auto_lock(mobile_request_list_lock_);
pool_state_ = TPoolState::STOPPED;
- LOG4CXX_INFO(logger_, "Broadcasting STOP signal to all threads...");
- cond_var_.Broadcast(); // notify all threads we are shutting down
+ LOG4CXX_DEBUG(logger_, "Broadcasting STOP signal to all threads...");
+ cond_var_.Broadcast(); // notify all threads we are shutting down
}
- for (uint32_t i = 0; i < pool_size_; i++) {
- pool_[i]->stop();
- threads::DeleteThread(pool_[i]);
+ for (size_t i = 0; i < pool_.size(); i++) {
+ threads::Thread* thread = pool_[i];
+ thread->join();
+ delete thread->delegate();
+ threads::DeleteThread(thread);
}
- LOG4CXX_INFO(logger_, "Threads exited from the thread pool " << pool_size_);
+ pool_.clear();
}
-RequestController::TResult RequestController::addMobileRequest(
- const MobileRequestPtr& request,
- const mobile_apis::HMILevel::eType& hmi_level) {
- LOG4CXX_TRACE_ENTER(logger_);
- if (!request.valid()) {
- LOG4CXX_INFO(logger_, "Null Pointer request");
- LOG4CXX_TRACE_EXIT(logger_);
- cond_var_.NotifyOne();
- return INVALID_DATA;
- }
-
- TResult result = SUCCESS;
- const commands::CommandRequestImpl* request_impl =
- static_cast<commands::CommandRequestImpl*>(request.get());
- LOG4CXX_DEBUG(logger_, "addMobileRequest " << request_impl->correlation_id());
+RequestController::TResult RequestController::CheckPosibilitytoAdd(
+ const RequestPtr request) {
+ LOG4CXX_AUTO_TRACE(logger_);
const uint32_t& app_hmi_level_none_time_scale =
profile::Profile::instance()->app_hmi_level_none_time_scale();
- const uint32_t& app_hmi_level_none_max_request_per_time_scale =
- profile::Profile::instance()->app_hmi_level_none_time_scale_max_requests();
+ // app_hmi_level_none_max_request_per_time_scale
+ const uint32_t& hmi_level_none_count =
+ profile::Profile::instance()->app_hmi_level_none_time_scale_max_requests();
const uint32_t& app_time_scale =
profile::Profile::instance()->app_time_scale();
@@ -128,244 +110,283 @@ RequestController::TResult RequestController::addMobileRequest(
const uint32_t& pending_requests_amount =
profile::Profile::instance()->pending_requests_amount();
- if (!checkHMILevelTimeScaleMaxRequest(mobile_apis::HMILevel::HMI_NONE,
- request_impl->connection_key(),
+ if (!CheckPendingRequestsAmount(pending_requests_amount)) {
+ LOG4CXX_ERROR(logger_, "Too many pending request");
+ return RequestController::TOO_MANY_PENDING_REQUESTS;
+ }
+
+ if (!waiting_for_response_.CheckHMILevelTimeScaleMaxRequest(
+ mobile_apis::HMILevel::HMI_NONE,
+ request->connection_key(),
app_hmi_level_none_time_scale,
- app_hmi_level_none_max_request_per_time_scale)) {
+ hmi_level_none_count)) {
LOG4CXX_ERROR(logger_, "Too many application requests in hmi level NONE");
- result = RequestController::NONE_HMI_LEVEL_MANY_REQUESTS;
- } else if (!checkTimeScaleMaxRequest(
- request_impl->connection_key(),
- app_time_scale, max_request_per_time_scale)) {
+ return RequestController::NONE_HMI_LEVEL_MANY_REQUESTS;
+ }
+ if (!waiting_for_response_.CheckTimeScaleMaxRequest(request->connection_key(),
+ app_time_scale,
+ max_request_per_time_scale)) {
LOG4CXX_ERROR(logger_, "Too many application requests");
- result = RequestController::TOO_MANY_REQUESTS;
- } else if (pending_requests_amount == mobile_request_list_.size()) {
- LOG4CXX_ERROR(logger_, "Too many pending request");
- result = RequestController::TOO_MANY_PENDING_REQUESTS;
+ return RequestController::TOO_MANY_REQUESTS;
}
- {
- AutoLock auto_lock(mobile_request_list_lock_);
+ return SUCCESS;
+}
- mobile_request_list_.push_back(request);
- LOG4CXX_INFO(logger_, "mobile_request_list_ size is "
- << mobile_request_list_.size()
- << " pending_request_set_ size is "
- << pending_request_set_.size()
- );
+bool RequestController::CheckPendingRequestsAmount(
+ const uint32_t& pending_requests_amount) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ if (pending_requests_amount > 0) {
+ const size_t pending_requests_size = mobile_request_list_.size();
+ const bool available_to_add =
+ pending_requests_amount > pending_requests_size;
+ if (!available_to_add) {
+ LOG4CXX_WARN(logger_, "Pending requests count " << pending_requests_size
+ << " exceed application limit " << pending_requests_amount);
+ }
+ return available_to_add;
}
+ LOG4CXX_DEBUG(logger_, "CheckPendingRequestsAmount disabled");
+ return true;
+}
+RequestController::TResult RequestController::addMobileRequest(
+ const RequestPtr request,
+ const mobile_apis::HMILevel::eType& hmi_level) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ if (!request) {
+ LOG4CXX_ERROR(logger_, "Null Pointer request");
+ cond_var_.NotifyOne();
+ return INVALID_DATA;
+ }
+ LOG4CXX_DEBUG(logger_, "correlation_id : " << request->correlation_id()
+ << "connection_key : " << request->connection_key());
+ RequestController::TResult result = CheckPosibilitytoAdd(request);
+ if (SUCCESS ==result) {
+ AutoLock auto_lock_list(mobile_request_list_lock_);
+ mobile_request_list_.push_back(request);
+ LOG4CXX_DEBUG(logger_, "Waiting for execution: "
+ << mobile_request_list_.size());
// wake up one thread that is waiting for a task to be available
+ }
cond_var_.NotifyOne();
- LOG4CXX_TRACE_EXIT(logger_);
return result;
}
RequestController::TResult RequestController::addHMIRequest(
const RequestPtr request) {
- LOG4CXX_TRACE_ENTER(logger_);
- DCHECK(request.valid());
- LOG4CXX_DEBUG(logger_, "addHMIRequest " << request->correlation_id());
+ LOG4CXX_AUTO_TRACE(logger_);
+
+ if (!request.valid()) {
+ LOG4CXX_ERROR(logger_, "HMI request pointer is invalid");
+ return RequestController::INVALID_DATA;
+ }
+ LOG4CXX_DEBUG(logger_, " correlation_id : " << request->correlation_id());
- uint32_t timeout_in_seconds = request->default_timeout()/date_time::DateTime::MILLISECONDS_IN_SECOND;
- RequestInfoPtr request_info_ptr =
- new HMIRequestInfo(request,
- timeout_in_seconds);
+ const uint32_t timeout_in_seconds =
+ request->default_timeout() / date_time::DateTime::MILLISECONDS_IN_SECOND;
+ RequestInfoPtr request_info_ptr(new HMIRequestInfo(request,
+ timeout_in_seconds));
if (0 != timeout_in_seconds) {
- pending_request_set_lock_.Acquire();
- pending_request_set_.insert(request_info_ptr);
- LOG4CXX_INFO(logger_, "pending_request_set_ size is "
- << pending_request_set_.size());
- UpdateTimer();
- pending_request_set_lock_.Release();
+ waiting_for_response_.Add(request_info_ptr);
+ LOG4CXX_INFO(logger_, "Waiting for response cont:"
+ << waiting_for_response_.Size());
} else {
LOG4CXX_INFO(logger_, "Default timeout was set to 0."
"RequestController will not track timeout of this request.");
}
- LOG4CXX_TRACE_EXIT(logger_);
+ UpdateTimer();
return RequestController::SUCCESS;
}
void RequestController::addNotification(const RequestPtr ptr) {
- LOG4CXX_TRACE_ENTER(logger_);
+ LOG4CXX_AUTO_TRACE(logger_);
notification_list_.push_back(ptr);
- LOG4CXX_TRACE_EXIT(logger_);
}
-void RequestController::removeNotification(const commands::Command* notification) {
- LOG4CXX_TRACE_ENTER(logger_);
+void RequestController::removeNotification(
+ const commands::Command* notification) {
+ LOG4CXX_AUTO_TRACE(logger_);
std::list<RequestPtr>::iterator it = notification_list_.begin();
- for (; notification_list_.end() != it; ++it) {
+ for (; notification_list_.end() != it; ) {
if (it->get() == notification) {
- notification_list_.erase(it);
+ notification_list_.erase(it++);
+ LOG4CXX_DEBUG(logger_, "Notification removed");
break;
+ } else {
+ ++it;
}
}
- LOG4CXX_TRACE_EXIT(logger_);
+ LOG4CXX_DEBUG(logger_, "Cant find notification");
}
-void RequestController::terminateMobileRequest(
- const uint32_t& mobile_correlation_id) {
- LOG4CXX_TRACE_ENTER(logger_);
-
- AutoLock auto_lock(pending_request_set_lock_);
- RequestInfoSet::iterator it = pending_request_set_.begin();
- for (; pending_request_set_.end() != it; ++it) {
- RequestInfo* mobile_request_info = it->get();
- if (NULL == mobile_request_info) {
- continue;
- }
- if (mobile_correlation_id == mobile_request_info->requestId()) {
- mobile_request_info->request()->CleanUp();
- pending_request_set_.erase(it);
- LOG4CXX_INFO(logger_, "Mobile request terminated: " << mobile_correlation_id <<
- " pending_request_set_ size : " << pending_request_set_.size());
- UpdateTimer();
- LOG4CXX_TRACE_EXIT(logger_);
- return;
- }
+void RequestController::terminateRequest(
+ const uint32_t& correlation_id,
+ const uint32_t& connection_key) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ LOG4CXX_DEBUG(logger_, "correlation_id = " << correlation_id
+ << " connection_key = " << connection_key);
+ RequestInfoPtr request = waiting_for_response_.Find(connection_key,
+ correlation_id);
+ if (request) {
+ waiting_for_response_.RemoveRequest(request);
+ UpdateTimer();
+ } else {
+ LOG4CXX_WARN(logger_, "Request not found in waiting_for_response_ : "
+ << correlation_id);
}
- LOG4CXX_INFO(logger_, "Mobile request NOT terminated: " << mobile_correlation_id <<
- " pending_request_set_ size : " << pending_request_set_.size());
- LOG4CXX_TRACE_EXIT(logger_);
+}
+
+void RequestController::terminateMobileRequest(
+ const uint32_t& mobile_correlation_id,
+ const uint32_t& connection_key) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ terminateRequest(mobile_correlation_id, connection_key);
}
void RequestController::terminateHMIRequest(const uint32_t &correlation_id) {
- LOG4CXX_TRACE_ENTER(logger_);
- AutoLock auto_lock(pending_request_set_lock_);
- RequestInfoSet::iterator it = pending_request_set_.begin();
- for (; pending_request_set_.end() != it; ++it) {
- RequestInfo* hmi_request_info = it->get();
- if (NULL == hmi_request_info) {
- continue;
- }
- if (correlation_id == hmi_request_info->requestId()) {
- hmi_request_info->request()->CleanUp();
- pending_request_set_.erase(it);
- LOG4CXX_DEBUG(logger_, "HMI request terminated: " << correlation_id);
- UpdateTimer();
- LOG4CXX_TRACE_EXIT(logger_);
- return;
- }
- }
- LOG4CXX_INFO(logger_, "HMI request NOT terminated: " << correlation_id <<
- " pending_request_set_ size : " << pending_request_set_.size());
- LOG4CXX_TRACE_EXIT(logger_);
+ LOG4CXX_AUTO_TRACE(logger_);
+ terminateRequest(correlation_id, RequestInfo::HmiConnectoinKey);
}
-void RequestController::terminateAppRequests(
+void RequestController::terminateWaitingForExecutionAppRequests(
const uint32_t& app_id) {
- LOG4CXX_TRACE_ENTER(logger_);
-
- AutoLock auto_lock(pending_request_set_lock_);
- RequestInfoSet::iterator it = pending_request_set_.begin();
- while (pending_request_set_.end() != it) {
- RequestInfo* mobile_request_info = it->get();
- if (NULL == mobile_request_info) {
- ++it;
- continue;
- }
-
- if (mobile_request_info->app_id() == app_id) {
- mobile_request_info->request()->CleanUp();
- pending_request_set_.erase(it++);
- LOG4CXX_INFO(logger_, "terminated all app requests : " << app_id);
+ LOG4CXX_AUTO_TRACE(logger_);
+ LOG4CXX_DEBUG(logger_, "app_id: " << app_id
+ << "Waiting for execution" << mobile_request_list_.size());
+ AutoLock
+ auto_lock(mobile_request_list_lock_);
+ std::list<RequestPtr>::iterator request_it = mobile_request_list_.begin();
+ while (mobile_request_list_.end() != request_it) {
+ RequestPtr request = (*request_it);
+ if ((request.valid()) && (request->connection_key() == app_id)) {
+ mobile_request_list_.erase(request_it++);
} else {
- ++it;
+ ++request_it;
}
}
+ LOG4CXX_DEBUG(logger_, "Waiting for execution "
+ << mobile_request_list_.size());
+}
+
+void RequestController::terminateWaitingForResponseAppRequests(
+ const uint32_t& app_id) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ waiting_for_response_.RemoveByConnectionKey(app_id);
+ LOG4CXX_DEBUG(logger_, "Waiting for response count : "
+ << waiting_for_response_.Size());
+}
+
+void RequestController::terminateAppRequests(
+ const uint32_t& app_id) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ LOG4CXX_DEBUG(logger_, "app_id : " << app_id
+ << "Requests waiting for execution count : "
+ << mobile_request_list_.size()
+ << "Requests waiting for response count : "
+ << waiting_for_response_.Size());
+
+ terminateWaitingForExecutionAppRequests(app_id);
+ terminateWaitingForResponseAppRequests(app_id);
UpdateTimer();
- LOG4CXX_TRACE_EXIT(logger_);
}
void RequestController::terminateAllHMIRequests() {
- LOG4CXX_TRACE_ENTER(logger_);
- AutoLock auto_lock(pending_request_set_lock_);
- RequestInfoSet::iterator it = pending_request_set_.begin();
- while (pending_request_set_.end() != it) {
- RequestInfo* hmi_request_info = it->get();
- if (NULL == hmi_request_info) {
- ++it;
- continue;
- }
- hmi_request_info->request()->CleanUp();
- pending_request_set_.erase(it++);
- LOG4CXX_INFO(logger_, "HMI request terminated: ");
- }
- LOG4CXX_TRACE_EXIT(logger_);
+ LOG4CXX_AUTO_TRACE(logger_);
+ terminateWaitingForResponseAppRequests(RequestInfo::HmiConnectoinKey);
+}
+
+void RequestController::terminateAllMobileRequests() {
+ LOG4CXX_AUTO_TRACE(logger_);
+ waiting_for_response_.RemoveMobileRequests();
+ LOG4CXX_DEBUG(logger_, "Mobile Requests waiting for response cleared");
+ AutoLock waiting_execution_auto_lock(mobile_request_list_lock_);
+ mobile_request_list_.clear();
+ LOG4CXX_DEBUG(logger_, "Mobile Requests waiting for execution cleared");
+ UpdateTimer();
}
void RequestController::updateRequestTimeout(
const uint32_t& app_id,
- const uint32_t& mobile_correlation_id,
+ const uint32_t& correlation_id,
const uint32_t& new_timeout) {
-
- LOG4CXX_TRACE_ENTER(logger_);
-
- AutoLock auto_lock(pending_request_set_lock_);
- RequestInfoSet::iterator it = pending_request_set_.begin();
- RequestInfo* mobile_request_info = NULL;
- RequestInfoPtr request_info;
- for (; pending_request_set_.end() != it; ++it) {
- request_info = *it;
- if (false == request_info.valid()) {
- LOG4CXX_ERROR(logger_, "Invalid request, can't update timeout");
- continue;
- }
- mobile_request_info = request_info.get();
- if (NULL == mobile_request_info) {
- continue;
- }
- if (app_id == mobile_request_info->app_id() &&
- mobile_correlation_id == mobile_request_info->requestId()) {
- break;
- }
- }
-
- if (it != pending_request_set_.end()) {
- DCHECK(mobile_request_info);
- DCHECK(request_info.valid());
-
- uint32_t timeout_in_seconds = new_timeout/date_time::DateTime::MILLISECONDS_IN_SECOND;
- mobile_request_info->updateTimeOut(timeout_in_seconds);
- pending_request_set_.erase(it);
- pending_request_set_.insert(request_info);
- // erase and insert need to update ordering of set
+ LOG4CXX_AUTO_TRACE(logger_);
+ LOG4CXX_DEBUG(logger_, "app_id : " << app_id
+ << " mobile_correlation_id : " << correlation_id
+ << " new_timeout : " << new_timeout);
+ RequestInfoPtr request_info =
+ waiting_for_response_.Find(app_id, correlation_id);
+ if (request_info) {
+ uint32_t timeout_in_seconds =
+ new_timeout/date_time::DateTime::MILLISECONDS_IN_SECOND;
+ waiting_for_response_.RemoveRequest(request_info);
+ request_info->updateTimeOut(timeout_in_seconds);
+ waiting_for_response_.Add(request_info);
UpdateTimer();
- LOG4CXX_ERROR(logger_, "Timeout updated for "
+ LOG4CXX_INFO(logger_, "Timeout updated for "
<< " app_id " << app_id
- << " mobile_correlation_id " << mobile_correlation_id
+ << " correlation_id " << correlation_id
<< " new_timeout " << new_timeout);
} else {
LOG4CXX_ERROR(logger_, "Can't find request with "
<< " app_id " << app_id
- << " mobile_correlation_id " << mobile_correlation_id );
+ << " correlation_id " << correlation_id);
}
}
+void RequestController::OnLowVoltage() {
+ LOG4CXX_AUTO_TRACE(logger_);
+ is_low_voltage_ = true;
+}
+
+void RequestController::OnWakeUp() {
+ LOG4CXX_AUTO_TRACE(logger_);
+ terminateAllHMIRequests();
+ terminateAllMobileRequests();
+ is_low_voltage_ = false;
+ LOG4CXX_DEBUG(logger_, "Terminate old requests done");
+}
+
+bool RequestController::IsLowVoltage() {
+ LOG4CXX_TRACE(logger_, "result: " << is_low_voltage_);
+ return is_low_voltage_;
+}
+
void RequestController::onTimer() {
- LOG4CXX_TRACE_ENTER(logger_);
- AutoLock auto_lock(pending_request_set_lock_);
- RequestInfoSet::iterator probably_expired = pending_request_set_.begin();
- while (pending_request_set_.end() != probably_expired) {
- RequestInfoPtr request = *probably_expired;
- if (request->timeout_sec() == 0) {
- LOG4CXX_INFO(logger_, "Ignore " << request->requestId());
- ++probably_expired;
- // This request should not be observed for TIME_OUT
- continue;
+ LOG4CXX_AUTO_TRACE(logger_);
+ LOG4CXX_DEBUG(logger_, "ENTER Waiting fore response count: "
+ << waiting_for_response_.Size());
+ RequestInfoPtr probably_expired =
+ waiting_for_response_.FrontWithNotNullTimeout();
+ while (probably_expired && probably_expired->isExpired()) {
+ LOG4CXX_INFO(logger_, "Timeout for "
+ << (RequestInfo::HMIRequest
+ == probably_expired ->requst_type() ? "HMI": "Mobile")
+ << " request id: "
+ << probably_expired ->requestId()
+ << " connection_key: " <<
+ probably_expired ->app_id() << " is expired");
+ const uint32_t experied_request_id = probably_expired->requestId();
+ const uint32_t experied_app_id = probably_expired->app_id();
+
+ probably_expired->request()->onTimeOut();
+ if (RequestInfo::HmiConnectoinKey == probably_expired ->app_id()) {
+ LOG4CXX_DEBUG(logger_, "Erase HMI request: "
+ << probably_expired ->requestId());
+ waiting_for_response_.RemoveRequest(probably_expired);
}
- if (request->isExpired()) {
- pending_request_set_.erase(probably_expired);
- request->request()->onTimeOut();
- request->request()->CleanUp();
- LOG4CXX_INFO(logger_, "Timeout for request id " << request->requestId() << " expired");
- probably_expired = pending_request_set_.begin();
- break;
+ probably_expired = waiting_for_response_.FrontWithNotNullTimeout();
+ if (probably_expired) {
+ if (experied_request_id == probably_expired->requestId() &&
+ experied_app_id == probably_expired->app_id()) {
+ LOG4CXX_DEBUG(logger_, "Expired request wasn't removed");
+ break;
+ }
}
}
UpdateTimer();
- LOG4CXX_TRACE_EXIT(logger_);
+ LOG4CXX_DEBUG(logger_, "EXIT Waiting for response count : "
+ << waiting_for_response_.Size());
}
RequestController::Worker::Worker(RequestController* requestController)
@@ -377,14 +398,14 @@ RequestController::Worker::~Worker() {
}
void RequestController::Worker::threadMain() {
- LOG4CXX_TRACE_ENTER(logger_);
- sync_primitives::AutoLock auto_lock(thread_lock_);
+ LOG4CXX_AUTO_TRACE(logger_);
+ AutoLock auto_lock(thread_lock_);
while (!stop_flag_) {
// Try to pick a request
- sync_primitives::AutoLock auto_lock(request_controller_->mobile_request_list_lock_);
+ AutoLock auto_lock(request_controller_->mobile_request_list_lock_);
while ((request_controller_->pool_state_ != TPoolState::STOPPED) &&
- (request_controller_->mobile_request_list_.empty())) {
+ (request_controller_->mobile_request_list_.empty())) {
// Wait until there is a task in the queue
// Unlock mutex while wait, then lock it back when signaled
LOG4CXX_INFO(logger_, "Unlocking and waiting");
@@ -397,117 +418,73 @@ void RequestController::Worker::threadMain() {
break;
}
- MobileRequestPtr request(request_controller_->mobile_request_list_.front());
+ if (request_controller_->mobile_request_list_.empty()) {
+ LOG4CXX_WARN(logger_, "Mobile request list is empty");
+ break;
+ }
+ RequestPtr request(request_controller_->mobile_request_list_.front());
request_controller_->mobile_request_list_.pop_front();
- bool init_res = request->Init(); // to setup specific default timeout
+ bool init_res = request->Init(); // to setup specific default timeout
- uint32_t timeout_in_seconds = request->default_timeout()/date_time::DateTime::MILLISECONDS_IN_SECOND;
+ const uint32_t timeout_in_seconds =
+ request->default_timeout() / date_time::DateTime::MILLISECONDS_IN_SECOND;
RequestInfoPtr request_info_ptr(new MobileRequestInfo(request,
timeout_in_seconds));
- request_controller_->pending_request_set_lock_.Acquire();
- request_controller_->pending_request_set_.insert(request_info_ptr);
+ request_controller_->waiting_for_response_.Add(request_info_ptr);
if (0 != timeout_in_seconds) {
- LOG4CXX_INFO(logger_, "Add Request " << request_info_ptr->requestId() <<
+ LOG4CXX_INFO(logger_, "Execute MobileRequest corr_id = "
+ << request_info_ptr->requestId() <<
" with timeout: " << timeout_in_seconds);
request_controller_->UpdateTimer();
} else {
LOG4CXX_INFO(logger_, "Default timeout was set to 0."
"RequestController will not track timeout of this request.");
}
- request_controller_->pending_request_set_lock_.Release();
+
AutoUnlock unlock(auto_lock);
// execute
- if (request->CheckPermissions() && init_res) {
+ if ((false == request_controller_->IsLowVoltage()) &&
+ request->CheckPermissions() && init_res) {
request->Run();
}
}
-
}
-bool RequestController::Worker::exitThreadMain() {
+void RequestController::Worker::exitThreadMain() {
stop_flag_ = true;
- sync_primitives::AutoLock auto_lock(thread_lock_);
// setup stop flag and whit while threadMain will be finished correctly
- // FIXME (dchmerev@luxoft.com): There is no wating
- return true;
-}
-
-bool RequestController::checkTimeScaleMaxRequest(
- const uint32_t& app_id,
- const uint32_t& app_time_scale,
- const uint32_t& max_request_per_time_scale) {
- LOG4CXX_TRACE_ENTER(logger_);
- {
- AutoLock auto_lock(pending_request_set_lock_);
- TimevalStruct end = date_time::DateTime::getCurrentTime();
- TimevalStruct start;
- start.tv_sec = end.tv_sec - app_time_scale;
-
- TimeScale scale(start, end, app_id);
- uint32_t count = 0;
-
- count = count_if (pending_request_set_.begin(), pending_request_set_.end(), scale);
- if (count == max_request_per_time_scale ) {
- LOG4CXX_ERROR(logger_, "Requests count " << count <<
- " exceed application limit " << max_request_per_time_scale);
- return true;
- }
- }
- return true;
-}
-
-bool RequestController::checkHMILevelTimeScaleMaxRequest(
- const mobile_apis::HMILevel::eType& hmi_level,
- const uint32_t& app_id,
- const uint32_t& app_time_scale,
- const uint32_t& max_request_per_time_scale) {
- LOG4CXX_TRACE_ENTER(logger_);
- {
- AutoLock auto_lock(pending_request_set_lock_);
- TimevalStruct end = date_time::DateTime::getCurrentTime();
- TimevalStruct start;
- start.tv_sec = end.tv_sec - app_time_scale;
-
- HMILevelTimeScale scale(start, end, app_id, hmi_level);
- uint32_t count = 0;
-
- count = count_if (pending_request_set_.begin(), pending_request_set_.end(), scale);
- if (count == max_request_per_time_scale ) {
- LOG4CXX_ERROR(logger_, "Requests count " << count
- << " exceed application limit " << max_request_per_time_scale
- << " in hmi level " << hmi_level);
- return false;
- }
- }
- return true;
+ // FIXME (dchmerev@luxoft.com): There is no waiting
}
void RequestController::UpdateTimer() {
- LOG4CXX_TRACE_ENTER(logger_);
- uint32_t sleep_time = dafault_sleep_time_;
- RequestInfoSet::iterator it = pending_request_set_.begin();
-
- while (it != pending_request_set_.end()) {
- RequestInfoPtr request = *it;
- DCHECK(request.valid());
- if (0 == request->timeout_sec()) {
- ++it;
- // This request should not be observed for TIME_OUT
- continue;
+ LOG4CXX_AUTO_TRACE(logger_);
+ RequestInfoPtr front = waiting_for_response_.FrontWithNotNullTimeout();
+ if (front) {
+ const TimevalStruct current_time = date_time::DateTime::getCurrentTime();
+ const TimevalStruct end_time = front->end_time();
+ if (current_time < end_time) {
+ const uint64_t secs = end_time.tv_sec - current_time.tv_sec;
+ LOG4CXX_DEBUG(logger_, "Sleep for " << secs << " secs");
+ // Timeout for bigger than 5 minutes is a mistake
+ timer_.updateTimeOut(secs);
+ } else {
+ LOG4CXX_WARN(logger_, "Request app_id = " << front->app_id()
+ << "correlation_id = " << front->requestId()
+ << "is expired a long time ago: "
+ << end_time.tv_sec << " - "
+ << current_time.tv_sec << " >= "
+ << front->timeout_sec());
+ timer_.updateTimeOut(0);
}
- sleep_time = request->end_time().tv_sec -
- date_time::DateTime::getCurrentTime().tv_sec;
- break;
+ } else {
+ LOG4CXX_DEBUG(logger_, "Sleep for default sleep time "
+ << dafault_sleep_time_ << " secs");
+ timer_.updateTimeOut(dafault_sleep_time_);
}
- timer_.updateTimeOut(sleep_time);
- LOG4CXX_INFO(logger_, "Sleep for: " << sleep_time);
- LOG4CXX_TRACE_EXIT(logger_);
}
-
} // namespace request_controller
-
} // namespace application_manager
diff --git a/src/components/application_manager/src/request_info.cc b/src/components/application_manager/src/request_info.cc
index 0b448c9e47..dad1539b64 100644
--- a/src/components/application_manager/src/request_info.cc
+++ b/src/components/application_manager/src/request_info.cc
@@ -1,4 +1,4 @@
-/**
+/*
* \file request_info.h
* \brief request information structure source file.
*
@@ -29,38 +29,43 @@
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include "application_manager/request_info.h"
+
+#include <algorithm>
namespace application_manager {
namespace request_controller {
+CREATE_LOGGERPTR_GLOBAL(logger_, "RequestController");
+
+uint32_t RequestInfo::HmiConnectoinKey = 0;
+
HMIRequestInfo::HMIRequestInfo(
RequestPtr request,
const uint64_t timeout_sec):
- RequestInfo(timeout_sec),
- request_(request) {
+ RequestInfo(request, HMIRequest, timeout_sec) {
correlation_id_ = request_->correlation_id();
+ app_id_ = RequestInfo::HmiConnectoinKey;
}
HMIRequestInfo::HMIRequestInfo(
RequestPtr request,
const TimevalStruct &start_time,
const uint64_t timeout_sec):
- RequestInfo(start_time, timeout_sec),
- request_(request) {
+ RequestInfo(request, HMIRequest, start_time, timeout_sec) {
correlation_id_ = request_->correlation_id();
+ app_id_ = RequestInfo::HmiConnectoinKey;
}
MobileRequestInfo::MobileRequestInfo(
RequestPtr request,
const uint64_t timeout_sec):
- RequestInfo(timeout_sec),
- request_(request) {
- mobile_correlation_id_ = request_.get()->correlation_id();
+ RequestInfo(request, MobileRequest, timeout_sec) {
+ correlation_id_ = request_.get()->correlation_id();
app_id_ = request_.get()->connection_key();
}
@@ -68,12 +73,301 @@ MobileRequestInfo::MobileRequestInfo(
RequestPtr request,
const TimevalStruct &start_time,
const uint64_t timeout_sec):
- RequestInfo(start_time, timeout_sec),
- request_(request) {
- mobile_correlation_id_ = request_.get()->correlation_id();
+ RequestInfo(request, MobileRequest, start_time, timeout_sec) {
+ correlation_id_ = request_.get()->correlation_id();
app_id_ = request_.get()->connection_key();
}
-} // namespace request_controller
+RequestInfo::RequestInfo(RequestPtr request,
+ const RequestInfo::RequestType requst_type,
+ const TimevalStruct& start_time,
+ const uint64_t timeout_sec):
+ request_(request),
+ start_time_(start_time),
+ timeout_sec_(timeout_sec) {
+ updateEndTime();
+ requst_type_ = requst_type;
+ correlation_id_ = request_->correlation_id();
+ app_id_ = request_->connection_key();
+}
+
+void application_manager::request_controller::RequestInfo::updateEndTime() {
+ end_time_ = date_time::DateTime::getCurrentTime();
+ end_time_.tv_sec += timeout_sec_;
+
+ // possible delay during IPC
+ const uint32_t hmi_delay_sec = 1;
+ end_time_.tv_sec += hmi_delay_sec;
+}
+
+void RequestInfo::updateTimeOut(const uint64_t& timeout_sec) {
+ timeout_sec_ = timeout_sec;
+ updateEndTime();
+}
+
+bool RequestInfo::isExpired() {
+ TimevalStruct curr_time = date_time::DateTime::getCurrentTime();
+ return end_time_.tv_sec <= curr_time.tv_sec;
+ // TODO(AKutsan) APPLINK-9711 Need to use compareTime method when timer will support millisecconds
+ // return date_time::GREATER == date_time::DateTime::compareTime(end_time_, curr_time);
+}
+
+uint64_t RequestInfo::hash() {
+ return GenerateHash(app_id(), requestId());
+}
+
+uint64_t RequestInfo::GenerateHash(uint32_t var1, uint32_t var2) {
+ uint64_t hash_result = 0;
+ hash_result = var1;
+ hash_result = hash_result << 32;
+ hash_result = hash_result | var2;
+ return hash_result;
+}
+
+FakeRequestInfo::FakeRequestInfo(uint32_t app_id, uint32_t correaltion_id) {
+ app_id_ = app_id;
+ correlation_id_ = correaltion_id;
+}
+
+bool RequestInfoSet::Add(RequestInfoPtr request_info) {
+ DCHECK(request_info);
+ if (!request_info) {
+ LOG4CXX_ERROR(logger_, "NULL ponter request_info");
+ return false;
+ }
+ LOG4CXX_DEBUG(logger_, "Add request app_id = " << request_info->app_id()
+ << "; corr_id = " << request_info->requestId());
+ CheckSetSizes();
+ sync_primitives::AutoLock lock(this_lock_);
+ const std::pair<HashSortedRequestInfoSet::iterator, bool>& insert_resilt =
+ hash_sorted_pending_requests_.insert(request_info);
+ if (insert_resilt.second == true) {
+ const std::pair<TimeSortedRequestInfoSet::iterator, bool>& insert_resilt =
+ time_sorted_pending_requests_.insert(request_info);
+ DCHECK(insert_resilt.second);
+ if (!insert_resilt.second) {
+ return false;
+ }
+ CheckSetSizes();
+ return true;
+ } else {
+ LOG4CXX_ERROR(logger_, "Request with app_id = " << request_info->app_id()
+ << "; corr_id " << request_info->requestId() << " Already exist ");
+ }
+ CheckSetSizes();
+ return false;
+}
+
+RequestInfoPtr RequestInfoSet::Find(const uint32_t connection_key,
+ const uint32_t correlation_id) {
+ RequestInfoPtr result;
+
+ // Request info for searching in request info set by log_n time
+ utils::SharedPtr<FakeRequestInfo> request_info_for_search(
+ new FakeRequestInfo(connection_key, correlation_id));
+
+ sync_primitives::AutoLock lock(this_lock_);
+ HashSortedRequestInfoSet::iterator it =
+ hash_sorted_pending_requests_.find(request_info_for_search);
+ if (it != hash_sorted_pending_requests_.end()) {
+ result = *it;
+ }
+ return result;
+}
+
+RequestInfoPtr RequestInfoSet::Front() {
+ RequestInfoPtr result;
+
+ sync_primitives::AutoLock lock(this_lock_);
+ TimeSortedRequestInfoSet::iterator it = time_sorted_pending_requests_.begin();
+ if (it != time_sorted_pending_requests_.end()) {
+ result = *it;
+ }
+ return result;
+}
+
+RequestInfoPtr RequestInfoSet::FrontWithNotNullTimeout() {
+ LOG4CXX_AUTO_TRACE(logger_);
+ sync_primitives::AutoLock lock(this_lock_);
+ RequestInfoPtr result;
+ TimeSortedRequestInfoSet::iterator it = time_sorted_pending_requests_.begin();
+ while (it != time_sorted_pending_requests_.end()) {
+ if (0 != (*it)->timeout_sec()) {
+ result =*it;
+ it = time_sorted_pending_requests_.end();
+ } else {
+ ++it;
+ }
+ }
+ return result;
+}
+
+bool RequestInfoSet::Erase(const RequestInfoPtr request_info) {
+ DCHECK(request_info);
+ if (!request_info) {
+ LOG4CXX_ERROR(logger_, "NULL ponter request_info");
+ return false;
+ }
+ CheckSetSizes();
+
+ size_t erased_count =
+ hash_sorted_pending_requests_.erase(request_info);
+ DCHECK((erased_count <= 1));
+ if (1 == erased_count) {
+ TimeSortedRequestInfoSet::iterator it =
+ time_sorted_pending_requests_.find(request_info);
+ DCHECK(it != time_sorted_pending_requests_.end());
+ if (it == time_sorted_pending_requests_.end()) {
+ LOG4CXX_ERROR(logger_, "Can't find request in time_sorted_requests_");
+ return false;
+ }
+ const RequestInfoPtr found = *it;
+ DCHECK(request_info == found);
+ time_sorted_pending_requests_.erase(it);
+ CheckSetSizes();
+ return 1 == erased_count;
+ }
+ CheckSetSizes();
+ return false;
+}
+
+bool RequestInfoSet::RemoveRequest(const RequestInfoPtr request_info) {
+ sync_primitives::AutoLock lock(this_lock_);
+ return Erase(request_info);
+}
+
+
+uint32_t RequestInfoSet::RemoveRequests(const RequestInfoSet::AppIdCompararator& filter) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ uint32_t erased = 0;
+
+ sync_primitives::AutoLock lock(this_lock_);
+ HashSortedRequestInfoSet::iterator it = std::find_if(
+ hash_sorted_pending_requests_.begin(),
+ hash_sorted_pending_requests_.end(),
+ filter);
+ while (it != hash_sorted_pending_requests_.end()) {
+ HashSortedRequestInfoSet::iterator to_erase = it++;
+ Erase(*to_erase);
+ it = std::find_if(it, hash_sorted_pending_requests_.end(), filter);
+ erased++;
+ }
+ CheckSetSizes();
+ return erased;
+}
+
+
+uint32_t RequestInfoSet::RemoveByConnectionKey(uint32_t connection_key) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ return RemoveRequests(AppIdCompararator(AppIdCompararator::Equal, connection_key));
+}
+
+uint32_t RequestInfoSet::RemoveMobileRequests() {
+ LOG4CXX_AUTO_TRACE(logger_);
+ return RemoveRequests(AppIdCompararator(AppIdCompararator::NotEqual, RequestInfo::HmiConnectoinKey));
+}
+
+const size_t RequestInfoSet::Size() {
+ CheckSetSizes();
+ return time_sorted_pending_requests_.size();
+}
+
+void RequestInfoSet::CheckSetSizes() {
+ const ssize_t time_set_size = time_sorted_pending_requests_.size();
+ const ssize_t hash_set_size = hash_sorted_pending_requests_.size();
+ const bool set_sizes_equal = (time_set_size == hash_set_size);
+ DCHECK(set_sizes_equal);
+}
+
+bool RequestInfoSet::CheckTimeScaleMaxRequest(
+ uint32_t app_id,
+ uint32_t app_time_scale,
+ uint32_t max_request_per_time_scale) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ if (max_request_per_time_scale > 0
+ && app_time_scale > 0) {
+ TimevalStruct end = date_time::DateTime::getCurrentTime();
+ TimevalStruct start = {0, 0};
+ start.tv_sec = end.tv_sec - app_time_scale;
+
+ sync_primitives::AutoLock lock(this_lock_);
+ TimeScale scale(start, end, app_id);
+ const uint32_t count = std::count_if(time_sorted_pending_requests_.begin(),
+ time_sorted_pending_requests_.end(), scale);
+ if (count >= max_request_per_time_scale) {
+ LOG4CXX_WARN(logger_, "Processing requests count " << count <<
+ " exceed application limit " << max_request_per_time_scale);
+ return false;
+ }
+ LOG4CXX_DEBUG(logger_, "Requests count " << count);
+ } else {
+ LOG4CXX_DEBUG(logger_, "CheckTimeScaleMaxRequest disabled");
+ }
+ return true;
+}
+
+bool RequestInfoSet::CheckHMILevelTimeScaleMaxRequest(mobile_apis::HMILevel::eType hmi_level,
+ uint32_t app_id,
+ uint32_t app_time_scale,
+ uint32_t max_request_per_time_scale) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ if (max_request_per_time_scale > 0 &&
+ app_time_scale > 0) {
+ TimevalStruct end = date_time::DateTime::getCurrentTime();
+ TimevalStruct start = {0, 0};
+ start.tv_sec = end.tv_sec - app_time_scale;
+
+ sync_primitives::AutoLock lock(this_lock_);
+ HMILevelTimeScale scale(start, end, app_id, hmi_level);
+ const uint32_t count = std::count_if(time_sorted_pending_requests_.begin(),
+ time_sorted_pending_requests_.end(), scale);
+ if (count >= max_request_per_time_scale) {
+ LOG4CXX_WARN(logger_, "Processing requests count " << count
+ << " exceed application limit " << max_request_per_time_scale
+ << " in hmi level " << hmi_level);
+ return false;
+ }
+ LOG4CXX_DEBUG(logger_, "Requests count " << count);
+ } else {
+ LOG4CXX_DEBUG(logger_, "CheckHMILevelTimeScaleMaxRequest disabled");
+ }
+ return true;
+}
+
+bool RequestInfoSet::AppIdCompararator::operator()(const RequestInfoPtr value_compare) const {
+ switch (compare_type_) {
+ case Equal:
+ return value_compare->app_id() == app_id_;
+ case NotEqual:
+ return value_compare->app_id() != app_id_;
+ default:
+ return false;
+ }
+}
+
+bool RequestInfoTimeComparator::operator()(const RequestInfoPtr lhs,
+ const RequestInfoPtr rhs) const {
+ date_time::TimeCompare compare_result =
+ date_time::DateTime::compareTime(lhs->end_time(), rhs->end_time());
+ if (compare_result == date_time::LESS) {
+ return true;
+ } else if (compare_result == date_time::GREATER) {
+ return false;
+ }
+ // compare_result == date_time::EQUAL
+ // If time is equal, sort by hash
+ LOG4CXX_DEBUG(logger_, "EQUAL " << lhs->end_time().tv_sec << ":" << lhs->end_time().tv_usec
+ << " and " << rhs->end_time().tv_sec << ":" << rhs->end_time().tv_usec
+ << "; compare hash: " << lhs->hash() << " < " << rhs->hash()
+ << " = " << (lhs->hash() < rhs->hash()));
+ return lhs->hash() < rhs->hash();
+}
+
+bool RequestInfoHashComparator::operator()(const RequestInfoPtr lhs,
+ const RequestInfoPtr rhs) const {
+ return lhs->hash() < rhs->hash();
+}
+
+} // namespace request_controller
-} // namespace application_manager
+} // namespace application_manager
diff --git a/src/components/application_manager/src/resume_ctrl.cpp b/src/components/application_manager/src/resume_ctrl.cpp
index cdbd6dc1cf..f8dd1b589f 100644
--- a/src/components/application_manager/src/resume_ctrl.cpp
+++ b/src/components/application_manager/src/resume_ctrl.cpp
@@ -1,6 +1,39 @@
-#include <fstream>
-
+/*
+ Copyright (c) 2015, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
#include "application_manager/resume_ctrl.h"
+
+#include <fstream>
+#include <algorithm>
+
#include "config_profile/profile.h"
#include "utils/file_system.h"
#include "connection_handler/connection_handler_impl.h"
@@ -22,103 +55,103 @@ CREATE_LOGGERPTR_GLOBAL(logger_, "ResumeCtrl")
namespace Formatters = NsSmartDeviceLink::NsJSONHandler::Formatters;
ResumeCtrl::ResumeCtrl(ApplicationManagerImpl* app_mngr)
- : app_mngr_(app_mngr),
- timer_("ResumeCtrl", this, &ResumeCtrl::onTimer) {
+ : resumtion_lock_(true),
+ app_mngr_(app_mngr),
+ save_persistent_data_timer_("RsmCtrlPercist",
+ this, &ResumeCtrl::SaveDataOnTimer, true),
+ restore_hmi_level_timer_("RsmCtrlRstore",
+ this, &ResumeCtrl::ApplicationResumptiOnTimer),
+ is_resumption_active_(false),
+ is_data_saved(true),
+ launch_time_(time(NULL)) {
+ LoadResumeData();
+ save_persistent_data_timer_.start(profile::Profile::instance()->app_resumption_save_persistent_data_timeout());
}
void ResumeCtrl::SaveAllApplications() {
- LOG4CXX_INFO(logger_, "ResumeCtrl::SaveApplications()");
- DCHECK(app_mngr_);
-
- std::set<ApplicationSharedPtr>::iterator it =
- app_mngr_->application_list_.begin();
- std::set<ApplicationSharedPtr>::iterator it_end =
- app_mngr_->application_list_.end();
- for (; it != it_end; ++it) {
- SaveApplication(*it);
- }
+ LOG4CXX_AUTO_TRACE(logger_);
+ std::set<ApplicationSharedPtr> apps(retrieve_application());
+ std::for_each(apps.begin(),
+ apps.end(),
+ std::bind1st(std::mem_fun(&ResumeCtrl::SaveApplication), this));
+ // remove old
}
void ResumeCtrl::SaveApplication(ApplicationConstSharedPtr application) {
- LOG4CXX_INFO(logger_, "ResumeCtrl::SaveApplication");
-
DCHECK(application.get());
- Json::Value* json_app = NULL;
-
- const std::string& m_app_id = application->mobile_app_id()->asString();
- Json::Value::iterator it = GetSavedApplications().begin();
- for (; it != GetSavedApplications().end(); ++it) {
- if (m_app_id == (*it)[strings::app_id].asString()) {
- json_app = &(*it);
- LOG4CXX_INFO(logger_, "ResumeCtrl Application with this id "
- "already exist ( update info )."
- "mobile app_id = " << m_app_id);
- break;
- }
- }
-
- if (json_app == NULL) {
- LOG4CXX_INFO(logger_, "ResumeCtrl Application with this ID does not"
- "exist. Add new. mobile app_id = " << m_app_id);
- json_app = &(GetSavedApplications().append(Json::Value()));
+ if (!application) {
+ LOG4CXX_FATAL(logger_, "Application object is NULL.");
+ return;
}
- uint32_t hash = application->curHash();
- uint32_t grammar_id = application->get_grammar_id();
-
- LOG4CXX_INFO(logger_, "Hash = " << hash);
- (*json_app)[strings::device_mac] =
- MessageHelper::GetDeviceMacAddressForHandle(application->device());
- (*json_app)[strings::app_id] = m_app_id;
- (*json_app)[strings::grammar_id] = grammar_id;
- (*json_app)[strings::connection_key] = application->app_id();
- (*json_app)[strings::hmi_app_id] = application->hmi_app_id();
- (*json_app)[strings::hmi_level] =
- static_cast<int32_t> (application->hmi_level());
- (*json_app)[strings::ign_off_count] = 0;
- (*json_app)[strings::hash_id] = hash;
- (*json_app)[strings::application_commands] =
- GetApplicationCommands(application);
- (*json_app)[strings::application_submenus] =
- GetApplicationSubMenus(application);
- (*json_app)[strings::application_choise_sets] =
- GetApplicationInteractionChoiseSets(application);
- (*json_app)[strings::application_global_properties] =
- GetApplicationGlobalProperties(application);
- (*json_app)[strings::application_subscribtions] =
- GetApplicationSubscriptions(application);
- (*json_app)[strings::application_files] = GetApplicationFiles(application);
- (*json_app)[strings::time_stamp] = (uint32_t)time(NULL);
- (*json_app)[strings::audio_streaming_state] = application->audio_streaming_state();
+ const std::string& m_app_id = application->mobile_app_id();
+ LOG4CXX_TRACE(logger_, "ENTER app_id : " << application->app_id()
+ << " mobile app_id : " << m_app_id);
+
+ const std::string hash = application->curHash(); // let's make a copy not to depend on application
+ const uint32_t grammar_id = application->get_grammar_id();
+ const uint32_t time_stamp = (uint32_t)time(NULL);
+
+ const mobile_apis::HMILevel::eType hmi_level = application->hmi_level();
+
+ resumtion_lock_.Acquire();
+ Json::Value& json_app = GetFromSavedOrAppend(m_app_id);
+
+ json_app[strings::device_mac] =
+ MessageHelper::GetDeviceMacAddressForHandle(application->device());
+ json_app[strings::app_id] = m_app_id;
+ json_app[strings::grammar_id] = grammar_id;
+ json_app[strings::connection_key] = application->app_id();
+ json_app[strings::hmi_app_id] = application->hmi_app_id();
+ json_app[strings::is_media_application] = application->IsAudioApplication();
+ json_app[strings::hmi_level] = static_cast<int32_t> (hmi_level);
+ json_app[strings::ign_off_count] = 0;
+ json_app[strings::suspend_count] = 0;
+ json_app[strings::hash_id] = hash;
+ json_app[strings::application_commands] =
+ GetApplicationCommands(application);
+ json_app[strings::application_submenus] =
+ GetApplicationSubMenus(application);
+ json_app[strings::application_choise_sets] =
+ GetApplicationInteractionChoiseSets(application);
+ json_app[strings::application_global_properties] =
+ GetApplicationGlobalProperties(application);
+ json_app[strings::application_subscribtions] =
+ GetApplicationSubscriptions(application);
+ json_app[strings::application_files] = GetApplicationFiles(application);
+ json_app[strings::time_stamp] = time_stamp;
+ LOG4CXX_DEBUG(logger_, "SaveApplication : " << json_app.toStyledString());
+
+ resumtion_lock_.Release();
}
void ResumeCtrl::on_event(const event_engine::Event& event) {
- LOG4CXX_INFO(logger_, "ResumeCtrl::on_event ");
+ LOG4CXX_TRACE(logger_, "Response from HMI command");
}
-bool ResumeCtrl::RestoreApplicationHMILevel(ApplicationSharedPtr application) {
- if (false == application.valid()) {
+bool ResumeCtrl::RestoreAppHMIState(ApplicationSharedPtr application) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ using namespace mobile_apis;
+ if (!application) {
LOG4CXX_ERROR(logger_, " RestoreApplicationHMILevel() application pointer in invalid");
return false;
}
- Json::Value::iterator it = GetSavedApplications().begin();
- for (;it != GetSavedApplications().end(); ++it) {
- const std::string& saved_m_app_id = (*it)[strings::app_id].asString();
-
- if (saved_m_app_id == application->mobile_app_id()->asString()) {
-
- mobile_apis::HMILevel::eType saved_hmi_level;
- //mobile_apis::HMILevel::eType restored_hmi_level;
-
- mobile_apis::AudioStreamingState::eType audio_streaming_state =
- static_cast<mobile_apis::AudioStreamingState::eType>
- ((*it)[strings::audio_streaming_state].asInt());
- application->set_audio_streaming_state(audio_streaming_state);
- saved_hmi_level = static_cast<mobile_apis::HMILevel::eType>(
- (*it)[strings::hmi_level].asInt());
-
- return SetupHMILevel(application, saved_hmi_level, audio_streaming_state);
+ LOG4CXX_DEBUG(logger_, "ENTER app_id : " << application->app_id());
+
+ sync_primitives::AutoLock lock(resumtion_lock_);
+ const int idx = GetObjectIndex(application->mobile_app_id());
+ if (-1 != idx) {
+ const Json::Value& json_app = GetSavedApplications()[idx];
+ if (json_app.isMember(strings::hmi_level)) {
+
+ const HMILevel::eType saved_hmi_level =
+ static_cast<mobile_apis::HMILevel::eType>(
+ json_app[strings::hmi_level].asInt());
+ LOG4CXX_DEBUG(logger_, "Saved HMI Level is : " << saved_hmi_level);
+ return SetAppHMIState(application, saved_hmi_level);
+ } else {
+ LOG4CXX_FATAL(logger_, "There are some unknown keys among the stored apps");
}
}
LOG4CXX_INFO(logger_, "Failed to restore application HMILevel");
@@ -126,52 +159,28 @@ bool ResumeCtrl::RestoreApplicationHMILevel(ApplicationSharedPtr application) {
}
bool ResumeCtrl::SetupDefaultHMILevel(ApplicationSharedPtr application) {
- LOG4CXX_TRACE_ENTER(logger_);
if (false == application.valid()) {
LOG4CXX_ERROR(logger_, "SetupDefaultHMILevel application pointer is invalid");
return false;
}
-
- mobile_apis::HMILevel::eType default_hmi = mobile_apis::HMILevel::HMI_NONE;
-
- if (policy::PolicyHandler::instance()->PolicyEnabled()) {
- std::string policy_app_id = application->mobile_app_id()->asString();
- std::string default_hmi_string = "";
- bool result_get_hmi = policy::PolicyHandler::instance()->GetDefaultHmi(
- policy_app_id, &default_hmi_string);
- if (true == result_get_hmi) {
- if ("BACKGROUND" == default_hmi_string) {
- default_hmi = mobile_apis::HMILevel::HMI_BACKGROUND;
- } else if ("FULL" == default_hmi_string) {
- default_hmi = mobile_apis::HMILevel::HMI_FULL;
- } else if ("LIMITED" == default_hmi_string) {
- default_hmi = mobile_apis::HMILevel::HMI_LIMITED;
- } else if ("NONE" == default_hmi_string) {
- default_hmi = mobile_apis::HMILevel::HMI_NONE;
- } else {
- LOG4CXX_ERROR(logger_, "Unable to convert " + default_hmi_string + "to HMILevel");
- return false;
- }
- } else {
- LOG4CXX_ERROR(logger_, "SetupDefaultHMILevel() unable to get default hmi_level for "
- << policy_app_id);
- }
- }
-
- return SetupHMILevel(application, default_hmi,
- mobile_apis::AudioStreamingState::NOT_AUDIBLE, false);
+ LOG4CXX_TRACE(logger_, "ENTER app_id : " << application->app_id());
+ mobile_apis::HMILevel::eType default_hmi = ApplicationManagerImpl::instance()-> GetDefaultHmiLevel(application);
+ bool result = SetAppHMIState(application, default_hmi, false);
+ return result;
}
-bool ResumeCtrl::SetupHMILevel(ApplicationSharedPtr application,
- mobile_apis::HMILevel::eType hmi_level,
- mobile_apis::AudioStreamingState::eType audio_streaming_state,
+bool ResumeCtrl::SetAppHMIState(ApplicationSharedPtr application,
+ const mobile_apis::HMILevel::eType hmi_level,
bool check_policy) {
-
+ using namespace mobile_apis;
+ LOG4CXX_AUTO_TRACE(logger_);
if (false == application.valid()) {
- LOG4CXX_ERROR(logger_, "SetupHMILevel() application pointer in invalid");
+ LOG4CXX_ERROR(logger_, "Application pointer in invalid");
return false;
}
-
+ LOG4CXX_TRACE(logger_, " ENTER Params : ( " << application->app_id()
+ << "," << hmi_level
+ << "," << check_policy << " )");
const std::string device_id =
MessageHelper::GetDeviceMacAddressForHandle(application->device());
@@ -182,336 +191,176 @@ bool ResumeCtrl::SetupHMILevel(ApplicationSharedPtr application,
SetupDefaultHMILevel(application);
return false;
}
-
+ HMILevel::eType restored_hmi_level = hmi_level;
if ((hmi_level == application->hmi_level()) &&
(hmi_level != mobile_apis::HMILevel::HMI_NONE)) {
- LOG4CXX_WARN(logger_, "Hmi level " << hmi_level << " should not be set to "
- << application->mobile_app_id()->asString() << " " << application->hmi_level());
-
+ LOG4CXX_DEBUG(logger_, "Hmi level " << hmi_level << " should not be set to "
+ << application->mobile_app_id()
+ <<" current hmi_level is " << application->hmi_level());
return false;
}
- if (mobile_apis::HMILevel::HMI_FULL == hmi_level) {
- hmi_level = app_mngr_->PutApplicationInFull(application);
-
- if ((mobile_apis::HMILevel::HMI_FULL == hmi_level ||
- mobile_apis::HMILevel::HMI_LIMITED == hmi_level) &&
- (mobile_apis::AudioStreamingState::AUDIBLE == audio_streaming_state)) {
- application->set_audio_streaming_state(audio_streaming_state);
- }
- } else if (mobile_apis::HMILevel::HMI_LIMITED == hmi_level) {
- if ((false == application->IsAudioApplication()) ||
- app_mngr_->DoesAudioAppWithSameHMITypeExistInFullOrLimited(application)) {
- hmi_level = mobile_apis::HMILevel::HMI_BACKGROUND;
- } else {
- if (audio_streaming_state == mobile_apis::AudioStreamingState::AUDIBLE) {
- //implemented SDLAQ-CRS-839
- //checking the existence of application with AudioStreamingState=AUDIBLE
- //notification resumeAudioSource is sent if only resumed application has
- //AudioStreamingState=AUDIBLE
- bool application_exist_with_audible_state = false;
- ApplicationManagerImpl::ApplicationListAccessor accessor;
- const std::set<ApplicationSharedPtr> app_list = accessor.applications();
- std::set<ApplicationSharedPtr>::const_iterator app_list_it = app_list
- .begin();
- uint32_t app_id = application->app_id();
- for (; app_list.end() != app_list_it; ++app_list_it) {
- if ((mobile_apis::AudioStreamingState::AUDIBLE ==
- (*app_list_it)->audio_streaming_state())
- && ((*app_list_it))->app_id() != app_id) {
- application_exist_with_audible_state = true;
- break;
- }
- }
- if (application_exist_with_audible_state) {
- application->set_audio_streaming_state(
- mobile_apis::AudioStreamingState::NOT_AUDIBLE);
- } else {
- MessageHelper::SendOnResumeAudioSourceToHMI(application->app_id());
+ if (HMILevel::HMI_FULL == hmi_level) {
+ restored_hmi_level = app_mngr_->IsHmiLevelFullAllowed(application);
+ } else if (HMILevel::HMI_LIMITED == hmi_level) {
+ bool allowed_limited = true;
+ ApplicationManagerImpl::ApplicationListAccessor accessor;
+ ApplicationManagerImpl::ApplictionSetConstIt it = accessor.begin();
+ for (; accessor.end() != it && allowed_limited; ++it) {
+ const ApplicationSharedPtr curr_app = *it;
+ if (curr_app->is_media_application()) {
+ if (curr_app->hmi_level() == HMILevel::HMI_FULL ||
+ curr_app->hmi_level() == HMILevel::HMI_LIMITED) {
+ allowed_limited = false;
}
}
}
+ if (allowed_limited) {
+ restored_hmi_level = HMILevel::HMI_LIMITED;
+ } else {
+ restored_hmi_level =
+ ApplicationManagerImpl::instance()->GetDefaultHmiLevel(application);
+ }
}
- if (hmi_level != mobile_apis::HMILevel::HMI_FULL) {
- application->set_hmi_level(hmi_level);
- }
+ const AudioStreamingState::eType restored_audio_state =
+ HMILevel::HMI_FULL == restored_hmi_level ||
+ HMILevel::HMI_LIMITED == restored_hmi_level ? AudioStreamingState::AUDIBLE:
+ AudioStreamingState::NOT_AUDIBLE;
- MessageHelper::SendHMIStatusNotification(*(application.get()));
+ application->set_audio_streaming_state(restored_audio_state);
+ if (HMILevel::HMI_FULL == restored_hmi_level) {
+ MessageHelper::SendActivateAppToHMI(application->app_id());
+ } else {
+ if (HMILevel::HMI_LIMITED == restored_hmi_level) {
+ MessageHelper::SendOnResumeAudioSourceToHMI(application->app_id());
+ }
+ application->set_hmi_level(restored_hmi_level);
+ MessageHelper::SendHMIStatusNotification(*(application.get()));
+ }
LOG4CXX_INFO(logger_, "Set up application "
- << application->mobile_app_id()->asString()
+ << application->mobile_app_id()
<< " to HMILevel " << hmi_level);
return true;
}
bool ResumeCtrl::RestoreApplicationData(ApplicationSharedPtr application) {
- LOG4CXX_INFO(logger_, "RestoreApplicationData");
- DCHECK(application.get());
-
- Json::Value::iterator it = GetSavedApplications().begin();
- for (; it != GetSavedApplications().end(); ++it) {
- const std::string& saved_m_app_id = (*it)[strings::app_id].asString();
- if (saved_m_app_id == application->mobile_app_id()->asString()) {
- break;
- }
- }
-
- if (it == GetSavedApplications().end()) {
- LOG4CXX_WARN(logger_, "Application not saved");
+ LOG4CXX_AUTO_TRACE(logger_);
+ if (!application.valid()) {
+ LOG4CXX_ERROR(logger_, "Application pointer in invalid");
return false;
}
- Json::Value& saved_app = *it;
- MessageHelper::SmartObjectList requests;
-
- LOG4CXX_INFO(logger_, saved_app.toStyledString());
- Json::Value& app_commands = saved_app[strings::application_commands];
- Json::Value& app_submenus = saved_app[strings::application_submenus];
- Json::Value& app_choise_sets = saved_app[strings::application_choise_sets];
- Json::Value& global_properties = saved_app[strings::application_global_properties];
- Json::Value& subscribtions = saved_app[strings::application_subscribtions];
- Json::Value& application_files = saved_app[strings::application_files];
- uint32_t app_grammar_id = saved_app[strings::grammar_id].asUInt();
- application->set_grammar_id(app_grammar_id);
-
-
- // files
- for (Json::Value::iterator json_it = application_files.begin();
- json_it != application_files.end(); ++json_it) {
- Json::Value& file_data = *json_it;
-
- bool is_persistent = file_data[strings::persistent_file].asBool();
- if (is_persistent) {
- AppFile file;
- file.is_persistent = is_persistent;
- file.is_download_complete = file_data[strings::is_download_complete].asBool();
- file.file_name = file_data[strings::sync_file_name].asString();
- file.file_type = static_cast<mobile_apis::FileType::eType> (
- file_data[strings::file_type].asInt());
- LOG4CXX_INFO(logger_, "RestoreApplicationData file " << file.file_name);
- application->AddFile(file);
- }
- }
-
- //add submenus
- for (Json::Value::iterator json_it = app_submenus.begin();
- json_it != app_submenus.end(); ++json_it) {
- Json::Value& json_submenu = *json_it;
- smart_objects::SmartObject message = smart_objects::SmartObject(
- smart_objects::SmartType::SmartType_Map);
- Formatters::CFormatterJsonBase::jsonValueToObj(json_submenu, message);
- application->AddSubMenu(message[strings::menu_id].asUInt(), message);
- }
- requests = MessageHelper::CreateAddSubMenuRequestToHMI(application);
-
- for (MessageHelper::SmartObjectList::iterator it = requests.begin();
- it != requests.end(); ++it) {
- ProcessHMIRequest(*it, true);
- }
-
- //add commands
- for (Json::Value::iterator json_it = app_commands.begin();
- json_it != app_commands.end(); ++json_it) {
- Json::Value& json_command = *json_it;
- smart_objects::SmartObject message = smart_objects::SmartObject(
- smart_objects::SmartType::SmartType_Map);
- Formatters::CFormatterJsonBase::jsonValueToObj(json_command, message);
- application->AddCommand(message[strings::cmd_id].asUInt(), message);
- }
-
- requests = MessageHelper::CreateAddCommandRequestToHMI(application);
-
- for (MessageHelper::SmartObjectList::iterator it = requests.begin();
- it != requests.end(); ++it) {
- ProcessHMIRequest(*it, true);
- }
-
- //add choisets
- for (Json::Value::iterator json_it = app_choise_sets.begin();
- json_it != app_choise_sets.end(); ++json_it) {
- Json::Value& json_choiset = *json_it;
- smart_objects::SmartObject msg_param = smart_objects::SmartObject(
- smart_objects::SmartType::SmartType_Map);
- Formatters::CFormatterJsonBase::jsonValueToObj(json_choiset , msg_param);
- const int32_t choice_set_id = msg_param
- [strings::interaction_choice_set_id].asInt();
- uint32_t choice_grammar_id = msg_param[strings::grammar_id].asUInt();
- application->AddChoiceSet(choice_set_id, msg_param);
-
- for (size_t j = 0; j < msg_param[strings::choice_set].length(); ++j) {
- smart_objects::SmartObject choise_params = smart_objects::SmartObject(
- smart_objects::SmartType_Map);
- choise_params[strings::app_id] = application->app_id();
- choise_params[strings::cmd_id] =
- msg_param[strings::choice_set][j][strings::choice_id];
- choise_params[strings::vr_commands] = smart_objects::SmartObject(
- smart_objects::SmartType_Array);
- choise_params[strings::vr_commands] =
- msg_param[strings::choice_set][j][strings::vr_commands];
-
- choise_params[strings::type] = hmi_apis::Common_VRCommandType::Choice;
- choise_params[strings::grammar_id] = choice_grammar_id;
- SendHMIRequest(hmi_apis::FunctionID::VR_AddCommand, &choise_params);
- }
- }
-
- //setglobal properties
- if (!global_properties.isNull()) {
- smart_objects::SmartObject properties_so = smart_objects::SmartObject(
- smart_objects::SmartType::SmartType_Map);
- Formatters::CFormatterJsonBase::jsonValueToObj(global_properties , properties_so);
-
- const smart_objects::SmartObject& vr_help_title =
- properties_so.getElement(strings::vr_help_title);
- if (vr_help_title.getType() != smart_objects::SmartType::SmartType_Invalid &&
- vr_help_title.getType() != smart_objects::SmartType::SmartType_Null) {
- application->set_vr_help_title(vr_help_title);
- }
-
- const smart_objects::SmartObject& vr_help =
- properties_so.getElement(strings::vr_help);
- if (vr_help.getType() != smart_objects::SmartType::SmartType_Invalid &&
- vr_help.getType() != smart_objects::SmartType::SmartType_Null) {
- application->set_vr_help(vr_help);
- }
-
- const smart_objects::SmartObject& timeout_prompt =
- properties_so.getElement(strings::timeout_prompt);
- if (timeout_prompt.getType() != smart_objects::SmartType::SmartType_Invalid &&
- timeout_prompt.getType() != smart_objects::SmartType::SmartType_Null) {
- application->set_timeout_prompt(timeout_prompt);
- }
+ LOG4CXX_DEBUG(logger_, "ENTER app_id : " << application->app_id());
- const smart_objects::SmartObject& help_prompt =
- properties_so.getElement(strings::help_prompt);
- if (help_prompt.getType() != smart_objects::SmartType::SmartType_Invalid &&
- help_prompt.getType() != smart_objects::SmartType::SmartType_Null) {
- application->set_help_prompt(help_prompt);
- }
-
- const smart_objects::SmartObject& keyboard_properties =
- properties_so.getElement(strings::keyboard_properties);
- if (keyboard_properties.getType() != smart_objects::SmartType::SmartType_Invalid &&
- keyboard_properties.getType() != smart_objects::SmartType::SmartType_Null) {
- application->set_keyboard_props(keyboard_properties);
- }
-
- const smart_objects::SmartObject& menu_title =
- properties_so.getElement(strings::menu_title);
- if (menu_title.getType() != smart_objects::SmartType::SmartType_Invalid &&
- menu_title.getType() != smart_objects::SmartType::SmartType_Null) {
- application->set_menu_title(menu_title);
- }
-
- const smart_objects::SmartObject& menu_icon =
- properties_so.getElement(strings::menu_icon);
- if (menu_icon.getType() != smart_objects::SmartType::SmartType_Invalid &&
- menu_icon.getType() != smart_objects::SmartType::SmartType_Null) {
- application->set_menu_icon(menu_icon);
- }
-
- MessageHelper::SendGlobalPropertiesToHMI(application);
+ sync_primitives::AutoLock lock(resumtion_lock_);
+ const int idx = GetObjectIndex(application->mobile_app_id());
+ if (-1 == idx) {
+ LOG4CXX_WARN(logger_, "Application not saved");
+ return false;
}
- //subscribes
- if (!subscribtions.isNull()) {
- Json::Value& subscribtions_buttons = subscribtions[strings::application_buttons];
- Json::Value& subscribtions_ivi= subscribtions[strings::application_vehicle_info];
- for (Json::Value::iterator json_it = subscribtions_buttons.begin();
- json_it != subscribtions_buttons.end(); ++json_it) {
- mobile_apis::ButtonName::eType btn;
- btn = static_cast<mobile_apis::ButtonName::eType>((*json_it).asInt());
- application->SubscribeToButton(btn);
- }
-
- for (Json::Value::iterator json_it = subscribtions_ivi.begin();
- json_it != subscribtions_ivi.end(); ++json_it) {
- VehicleDataType ivi;
- ivi = static_cast<VehicleDataType>((*json_it).asInt());
- LOG4CXX_INFO(logger_, "VehicleDataType :" << ivi);
-#ifdef ENABLE_LOG
- bool result =
-#endif
- application->SubscribeToIVI(ivi);
- LOG4CXX_INFO(logger_, "result = :" << result);
- }
- requests = MessageHelper::GetIVISubscribtionRequests(application->app_id());
-
- for (MessageHelper::SmartObjectList::iterator it = requests.begin();
- it != requests.end(); ++it) {
- ProcessHMIRequest(*it,true);
- }
+ const Json::Value& saved_app = GetSavedApplications()[idx];
+ if(saved_app.isMember(strings::grammar_id)) {
+ const uint32_t app_grammar_id = saved_app[strings::grammar_id].asUInt();
+ application->set_grammar_id(app_grammar_id);
+
+ AddFiles(application, saved_app);
+ AddSubmenues(application, saved_app);
+ AddCommands(application, saved_app);
+ AddChoicesets(application, saved_app);
+ SetGlobalProperties(application, saved_app);
+ AddSubscriptions(application, saved_app);
}
return true;
}
bool ResumeCtrl::IsHMIApplicationIdExist(uint32_t hmi_app_id) {
- LOG4CXX_INFO(logger_, "ResumeCtrl::IsHMIApplicationIdExist " << hmi_app_id);
-
+ LOG4CXX_TRACE(logger_, "ENTER hmi_app_id :" << hmi_app_id);
+ sync_primitives::AutoLock lock(resumtion_lock_);
for (Json::Value::iterator it = GetSavedApplications().begin();
it != GetSavedApplications().end(); ++it) {
- if ((*it)[strings::hmi_app_id].asUInt() == hmi_app_id) {
- return true;
+ if ((*it).isMember(strings::hmi_app_id)) {
+ if ((*it)[strings::hmi_app_id].asUInt() == hmi_app_id) {
+ return true;
+ }
}
}
+ ApplicationManagerImpl::ApplicationListAccessor accessor;
+ ApplicationManagerImpl::ApplictionSet apps(accessor.applications());
+ ApplicationManagerImpl::ApplictionSetIt it = apps.begin();
+ ApplicationManagerImpl::ApplictionSetIt it_end = apps.end();
- std::set<ApplicationSharedPtr>::iterator it =
- app_mngr_->application_list_.begin();
- std::set<ApplicationSharedPtr>::iterator it_end =
- app_mngr_->application_list_.end();
for (;it != it_end; ++it) {
if (hmi_app_id == (*it)->hmi_app_id()) {
+ LOG4CXX_TRACE(logger_, "EXIT result = true");
return true;
}
}
-
+ LOG4CXX_TRACE(logger_, "EXIT result = false");
return false;
}
bool ResumeCtrl::IsApplicationSaved(const std::string& mobile_app_id) {
- bool result = false;
- for (Json::Value::iterator it = GetSavedApplications().begin();
- it != GetSavedApplications().end(); ++it) {
- if ((*it)[strings::app_id].asString() == mobile_app_id) {
- result = true;
- }
+ LOG4CXX_TRACE(logger_, "ENTER mobile_app_id :" << mobile_app_id);
+
+ sync_primitives::AutoLock lock(resumtion_lock_);
+ int index = GetObjectIndex(mobile_app_id);
+ if (-1 == index) {
+ return false;
}
- LOG4CXX_INFO(logger_, "IsApplicationSaved " << mobile_app_id << " : " << (result?"true":"false"));
- return result;
+
+ if (!IsResumptionDataValid(index)) {
+ LOG4CXX_INFO(logger_, "Resumption data for app " << mobile_app_id <<
+ " is corrupted. Remove application from resumption list");
+ RemoveApplicationFromSaved(mobile_app_id);
+ return false;
+ }
+
+ return true;
}
uint32_t ResumeCtrl::GetHMIApplicationID(const std::string& mobile_app_id) {
+ LOG4CXX_AUTO_TRACE(logger_);
uint32_t hmi_app_id = 0;
- for (Json::Value::iterator it = GetSavedApplications().begin();
- it != GetSavedApplications().end(); ++it) {
- if ((*it)[strings::app_id].asString() == mobile_app_id) {
- hmi_app_id = (*it)[strings::hmi_app_id].asUInt();
- }
+
+ sync_primitives::AutoLock lock(resumtion_lock_);
+ const int idx = GetObjectIndex(mobile_app_id);
+ if (-1 == idx) {
+ LOG4CXX_WARN(logger_, "Application not saved");
+ return hmi_app_id;
}
+ const Json::Value& json_app = GetSavedApplications()[idx];
+ if (json_app.isMember(strings::app_id)) {
+ hmi_app_id = json_app[strings::hmi_app_id].asUInt();
+ }
+ LOG4CXX_DEBUG(logger_, "hmi_app_id :" << hmi_app_id);
return hmi_app_id;
}
-bool ResumeCtrl::RemoveApplicationFromSaved(ApplicationConstSharedPtr application) {
- LOG4CXX_INFO(logger_, "ResumeCtrl::RemoveApplicationFromSaved ");
- DCHECK(application.get());
-
+bool ResumeCtrl::RemoveApplicationFromSaved(const std::string& mobile_app_id) {
+ LOG4CXX_TRACE(logger_, "Remove mobile_app_id " << mobile_app_id);
+ sync_primitives::AutoLock lock(resumtion_lock_);
bool result = false;
std::vector<Json::Value> temp;
for (Json::Value::iterator it = GetSavedApplications().begin();
it != GetSavedApplications().end(); ++it) {
- const std::string& saved_m_app_id = (*it)[strings::app_id].asString();
+ if ((*it).isMember(strings::app_id)) {
+ const std::string& saved_m_app_id = (*it)[strings::app_id].asString();
- if (saved_m_app_id != application->mobile_app_id()->asString()) {
- temp.push_back((*it));
- } else {
- result = true;
+ if (saved_m_app_id != mobile_app_id) {
+ temp.push_back((*it));
+ } else {
+ result = true;
+ }
}
}
if (false == result) {
+ LOG4CXX_TRACE(logger_, "EXIT result: " << (result ? "true" : "false"));
return result;
}
@@ -520,267 +369,395 @@ bool ResumeCtrl::RemoveApplicationFromSaved(ApplicationConstSharedPtr applicatio
it != temp.end(); ++it) {
GetSavedApplications().append((*it));
}
+ LOG4CXX_TRACE(logger_, "EXIT result: " << (result ? "true" : "false"));
return result;
}
-void ResumeCtrl::IgnitionOff() {
- LOG4CXX_INFO(logger_, "ResumeCtrl::IgnitionOff()");
-
+void ResumeCtrl::Suspend() {
+ LOG4CXX_AUTO_TRACE(logger_);
+ StopSavePersistentDataTimer();
+ SaveAllApplications();
Json::Value to_save;
+ sync_primitives::AutoLock lock(resumtion_lock_);
for (Json::Value::iterator it = GetSavedApplications().begin();
it != GetSavedApplications().end(); ++it) {
- uint32_t ign_off_count = (*it)[strings::ign_off_count].asUInt();
- if (ign_off_count < kApplicationLifes) {
- ign_off_count++;
- (*it)[strings::ign_off_count] = ign_off_count;
- to_save.append(*it);
+ if ((*it).isMember(strings::suspend_count)) {
+ const uint32_t suspend_count = (*it)[strings::suspend_count].asUInt();
+ (*it)[strings::suspend_count] = suspend_count + 1;
+ } else {
+ LOG4CXX_WARN(logger_, "Unknown key among saved applications");
+ (*it)[strings::suspend_count] = 1;
+ }
+ if ((*it).isMember(strings::ign_off_count)) {
+ const uint32_t ign_off_count = (*it)[strings::ign_off_count].asUInt();
+ if (ign_off_count < kApplicationLifes) {
+ (*it)[strings::ign_off_count] = ign_off_count + 1;
+ to_save.append(*it);
+ }
+ } else {
+ LOG4CXX_WARN(logger_, "Unknown key among saved applications");
+ (*it)[strings::ign_off_count] = 1;
}
}
SetSavedApplication(to_save);
+ SetLastIgnOffTime(time(NULL));
+ LOG4CXX_DEBUG(logger_,
+ GetResumptionData().toStyledString());
+ resumption::LastState::instance()->SaveToFileSystem();
+}
+
+void ResumeCtrl::OnAwake() {
+ LOG4CXX_AUTO_TRACE(logger_);
+
+ sync_primitives::AutoLock lock(resumtion_lock_);
+ for (Json::Value::iterator it = GetSavedApplications().begin();
+ it != GetSavedApplications().end(); ++it) {
+ if ((*it).isMember(strings::ign_off_count)) {
+ const uint32_t ign_off_count = (*it)[strings::ign_off_count].asUInt();
+ (*it)[strings::ign_off_count] = ign_off_count - 1;
+ } else {
+ LOG4CXX_WARN(logger_, "Unknown key among saved applications");
+ (*it)[strings::ign_off_count] = 0;
+ }
+ }
+ ResetLaunchTime();
+ StartSavePersistentDataTimer();
}
+
+
+void ResumeCtrl::StartSavePersistentDataTimer() {
+ LOG4CXX_AUTO_TRACE(logger_);
+ if (!save_persistent_data_timer_.isRunning()) {
+ save_persistent_data_timer_.start(
+ profile::Profile::instance()->app_resumption_save_persistent_data_timeout());
+ }
+}
+
+void ResumeCtrl::StopSavePersistentDataTimer() {
+ LOG4CXX_AUTO_TRACE(logger_);
+ if (save_persistent_data_timer_.isRunning()) {
+ save_persistent_data_timer_.stop();
+ }
+}
+
+
bool ResumeCtrl::StartResumption(ApplicationSharedPtr application,
- uint32_t hash) {
- LOG4CXX_INFO(logger_, "ResumeCtrl::StartResumption");
- if (!application.valid()) {
+ const std::string& hash) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ if (!application) {
LOG4CXX_WARN(logger_, "Application not exist");
return false;
}
- LOG4CXX_INFO(logger_, " app_id = " << application->app_id()
+ SetupDefaultHMILevel(application);
+
+ LOG4CXX_DEBUG(logger_, " Resume app_id = " << application->app_id()
<< " hmi_app_id = " << application->hmi_app_id()
- << " mobile_id = "
- << application->mobile_app_id()->asString());
+ << " mobile_id = " << application->mobile_app_id()
+ << "received hash = " << hash);
- Json::Value::iterator it = GetSavedApplications().begin();
- ApplicationManagerImpl::ApplicationListAccessor accessor;
- for (; it != GetSavedApplications().end(); ++it) {
- const std::string& saved_m_app_id = (*it)[strings::app_id].asString();
+ sync_primitives::AutoLock lock(resumtion_lock_);
+ const int idx = GetObjectIndex(application->mobile_app_id());
+ if (-1 == idx) {
+ LOG4CXX_WARN(logger_, "Application not saved");
+ return false;
+ }
- if (saved_m_app_id == application->mobile_app_id()->asString()) {
+ const Json::Value& json_app = GetSavedApplications()[idx];
+ LOG4CXX_DEBUG(logger_, "Saved_application_data: " << json_app.toStyledString());
+ if (json_app.isMember(strings::hash_id) && json_app.isMember(strings::time_stamp)) {
+ const std::string& saved_hash = json_app[strings::hash_id].asString();
- uint32_t saved_hash = (*it)[strings::hash_id].asUInt();
- uint32_t time_stamp= (*it)[strings::time_stamp].asUInt();
+ if (saved_hash == hash) {
+ RestoreApplicationData(application);
+ }
+ application->UpdateHash();
+
+ queue_lock_.Acquire();
+ waiting_for_timer_.push_back(application->app_id());
+ queue_lock_.Release();
+ if (!is_resumption_active_) {
+ is_resumption_active_ = true;
+ restore_hmi_level_timer_.start(
+ profile::Profile::instance()->app_resuming_timeout());
+ }
+ } else {
+ LOG4CXX_INFO(logger_, "There are some unknown keys in the dictionary.");
+ return false;
+ }
- if (hash == saved_hash) {
- RestoreApplicationData(application);
- }
+ return true;
+}
- application->UpdateHash();
- if (!timer_.isRunning() && accessor.applications().size() > 1) {
- RestoreApplicationHMILevel(application);
- RemoveApplicationFromSaved(application);
- } else {
- sync_primitives::AutoLock auto_lock(queue_lock_);
- SetupDefaultHMILevel(application);
- waiting_for_timer_.insert(std::make_pair(application->app_id(),
- time_stamp));
- timer_.start(kTimeStep);
- }
- return true;
+void ResumeCtrl::StartAppHmiStateResumption(ApplicationSharedPtr application) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ using namespace profile;
+ using namespace date_time;
+ DCHECK_OR_RETURN_VOID(application);
+ const int idx = GetObjectIndex(application->mobile_app_id());
+ DCHECK_OR_RETURN_VOID(idx != -1);
+ const Json::Value& json_app = GetSavedApplications()[idx];
+
+ if (!json_app.isMember(strings::ign_off_count)) {
+ LOG4CXX_INFO(logger_, "Do not need to resume application "
+ << application->app_id());
+ SetupDefaultHMILevel(application);
+ return;
+ }
+
+ // check if if is resumption during one IGN cycle
+ const uint32_t ign_off_count = json_app[strings::ign_off_count].asUInt();
+
+ if (0 == ign_off_count) {
+ if (CheckAppRestrictions(application, json_app)) {
+ LOG4CXX_INFO(logger_, "Resume application after short IGN cycle");
+ RestoreAppHMIState(application);
+ RemoveApplicationFromSaved(application->mobile_app_id());
+ } else {
+ LOG4CXX_INFO(logger_, "Do not need to resume application "
+ << application->app_id());
+ }
+ } else {
+ if (CheckIgnCycleRestrictions(json_app) &&
+ CheckAppRestrictions(application, json_app)) {
+ LOG4CXX_INFO(logger_, "Resume application after IGN cycle");
+ RestoreAppHMIState(application);
+ RemoveApplicationFromSaved(application->mobile_app_id());
+ } else {
+ LOG4CXX_INFO(logger_, "Do not need to resume application "
+ << application->app_id());
}
}
+}
- LOG4CXX_INFO(logger_, "ResumeCtrl::Application wasn't saved");
- MessageHelper::SendHMIStatusNotification(*application);
- return false;
+std::set<ApplicationSharedPtr> ResumeCtrl::retrieve_application() {
+ ApplicationManagerImpl::ApplicationListAccessor accessor;
+ return std::set<ApplicationSharedPtr>(accessor.begin(), accessor.end());
}
bool ResumeCtrl::StartResumptionOnlyHMILevel(ApplicationSharedPtr application) {
- LOG4CXX_INFO(logger_, "ResumeCtrl::StartResumptionOnlyHMILevel");
+ LOG4CXX_AUTO_TRACE(logger_);
if (!application.valid()) {
- LOG4CXX_WARN(logger_, "Application not exist");
+ LOG4CXX_WARN(logger_, "Application do not exists");
return false;
}
- LOG4CXX_INFO(logger_, "app_id = " << application->app_id()
+ SetupDefaultHMILevel(application);
+
+ LOG4CXX_DEBUG(logger_, "ENTER app_id = " << application->app_id()
<< "mobile_id = "
- << application->mobile_app_id()->asString());
+ << application->mobile_app_id());
- Json::Value::iterator it = GetSavedApplications().begin();
- ApplicationManagerImpl::ApplicationListAccessor accessor;
- for (; it != GetSavedApplications().end(); ++it) {
- const std::string& saved_m_app_id = (*it)[strings::app_id].asString();
- if (saved_m_app_id == application->mobile_app_id()->asString()) {
- uint32_t time_stamp= (*it)[strings::time_stamp].asUInt();
- if (!timer_.isRunning() && accessor.applications().size() > 1) {
- // resume in case there is already registered app
- RestoreApplicationHMILevel(application);
- RemoveApplicationFromSaved(application);
- } else {
- sync_primitives::AutoLock auto_lock(queue_lock_);
- SetupDefaultHMILevel(application);
- waiting_for_timer_.insert(std::make_pair(application->app_id(),
- time_stamp));
- // woun't start timer if it is active already
- timer_.start(kTimeStep);
- }
- return true;
- }
+ sync_primitives::AutoLock lock(resumtion_lock_);
+ const int idx = GetObjectIndex(application->mobile_app_id());
+ if (-1 == idx) {
+ LOG4CXX_WARN(logger_, "Application not saved");
+ return false;
}
- LOG4CXX_INFO(logger_, "ResumeCtrl::Application wasn't saved");
- MessageHelper::SendHMIStatusNotification(*application);
- return false;
+ queue_lock_.Acquire();
+ waiting_for_timer_.push_back(application->app_id());
+ queue_lock_.Release();
+ if (!is_resumption_active_) {
+ is_resumption_active_ = true;
+ restore_hmi_level_timer_.start(
+ profile::Profile::instance()->app_resuming_timeout());
+ }
+
+ return true;
}
bool ResumeCtrl::CheckPersistenceFilesForResumption(ApplicationSharedPtr application) {
- LOG4CXX_INFO(logger_, "CheckPersistenceFilesForResumption");
- DCHECK(application.get());
+ LOG4CXX_AUTO_TRACE(logger_);
- Json::Value::iterator it = GetSavedApplications().begin();
- for (; it != GetSavedApplications().end(); ++it) {
- const std::string& saved_m_app_id = (*it)[strings::app_id].asString();
-
- if (saved_m_app_id == application->mobile_app_id()->asString()) {
- break;
- }
+ if (!application.valid()) {
+ LOG4CXX_WARN(logger_, "Application do not exists");
+ return false;
}
+ LOG4CXX_DEBUG(logger_, "Process app_id = " << application->app_id());
- if (it == GetSavedApplications().end()) {
+ sync_primitives::AutoLock lock(resumtion_lock_);
+ const int idx = GetObjectIndex(application->mobile_app_id());
+ if (-1 == idx) {
LOG4CXX_WARN(logger_, "Application not saved");
return false;
}
- Json::Value& saved_app = *it;
- MessageHelper::SmartObjectList requests;
-
- LOG4CXX_INFO(logger_, saved_app.toStyledString());
- Json::Value& app_commands = saved_app[strings::application_commands];
- Json::Value& app_choise_sets = saved_app[strings::application_choise_sets];
-
- //add commands
- for (Json::Value::iterator json_it = app_commands.begin();
- json_it != app_commands.end(); ++json_it) {
- Json::Value& json_command = *json_it;
- smart_objects::SmartObject message =
- smart_objects::SmartObject(smart_objects::SmartType::SmartType_Map);
- Formatters::CFormatterJsonBase::jsonValueToObj(json_command, message);
- mobile_apis::Result::eType verification_result =
- MessageHelper::VerifyImageFiles(message, application);
- if (verification_result == mobile_apis::Result::INVALID_DATA) {
- LOG4CXX_WARN(logger_, "app_commands missed icons");
+ const Json::Value& saved_app = GetSavedApplications()[idx];
+
+ if (!saved_app.isMember(strings::application_commands) ||
+ !saved_app.isMember(strings::application_choise_sets)) {
+ LOG4CXX_WARN(logger_, "application_commands or "
+ "application_choise_sets are not exists");
return false;
}
- }
- //add choice sets
- for (Json::Value::iterator json_it = app_choise_sets.begin();
- json_it != app_choise_sets.end(); ++json_it) {
- Json::Value& json_choiset = *json_it;
- smart_objects::SmartObject msg_param =
- smart_objects::SmartObject(smart_objects::SmartType::SmartType_Map);
- Formatters::CFormatterJsonBase::jsonValueToObj(json_choiset , msg_param);
- mobile_apis::Result::eType verification_result =
- MessageHelper::VerifyImageFiles(msg_param, application);
- if (verification_result == mobile_apis::Result::INVALID_DATA) {
- LOG4CXX_WARN(logger_, "app_choise_sets missed icons");
+ if (!CheckIcons(application, saved_app[strings::application_commands])) {
return false;
}
- }
-
+ if (!CheckIcons(application, saved_app[strings::application_choise_sets])) {
+ return false;
+ }
+ LOG4CXX_DEBUG(logger_, " result = true");
return true;
}
bool ResumeCtrl::CheckApplicationHash(ApplicationSharedPtr application,
- uint32_t hash) {
- Json::Value::iterator it = GetSavedApplications().begin();
- for (; it != GetSavedApplications().end(); ++it) {
- std::string saved_m_app_id = (*it)[strings::app_id].asString();
-
- if (saved_m_app_id == application->mobile_app_id()->asString()) {
- uint32_t saved_hash = (*it)[strings::hash_id].asUInt();
- LOG4CXX_INFO(logger_, "received hash = " << hash);
- LOG4CXX_INFO(logger_, "saved hash = " << saved_hash);
- if (hash == saved_hash) {
- return true;
- }
- }
+ const std::string& hash) {
+ if (!application) {
+ LOG4CXX_ERROR(logger_, "Application pointer is invalid");
+ return false;
}
- return false;
-}
+ LOG4CXX_DEBUG(logger_, "ENTER app_id : " << application->app_id()
+ << " hash : " << hash);
-void ResumeCtrl::onTimer() {
- LOG4CXX_INFO(logger_, "ResumeCtrl::onTimer() size is "
- << waiting_for_timer_.size());
- sync_primitives::AutoLock auto_lock(queue_lock_);
+ sync_primitives::AutoLock lock(resumtion_lock_);
+ const int idx = GetObjectIndex(application->mobile_app_id());
+ if (-1 == idx) {
+ LOG4CXX_WARN(logger_, "Application not saved");
+ return false;
+ }
- std::multiset<application_timestamp, TimeStampComparator>::iterator it=
- waiting_for_timer_.begin();
+ const Json::Value& json_app = GetSavedApplications()[idx];
- for (; it != waiting_for_timer_.end(); ++it) {
- ApplicationSharedPtr app =
- ApplicationManagerImpl::instance()->application((*it).first);
- if (!app.get()) {
- LOG4CXX_ERROR(logger_, "Invalid app_id = " << (*it).first);
- continue;
+ if (json_app.isMember(strings::hash_id)) {
+ const std::string& saved_hash = json_app[strings::hash_id].asString();
+
+ LOG4CXX_TRACE(logger_, "Found saved application : " << json_app.toStyledString());
+ LOG4CXX_INFO(logger_, "received hash = " << hash);
+ LOG4CXX_INFO(logger_, "saved hash = " << saved_hash);
+ if (hash == saved_hash) {
+ return true;
}
+ }
+
+ return false;
+}
- RestoreApplicationHMILevel(app);
- RemoveApplicationFromSaved(app);
+void ResumeCtrl::SaveDataOnTimer() {
+ LOG4CXX_AUTO_TRACE(logger_);
+ if (is_resumption_active_) {
+ LOG4CXX_WARN(logger_, "Resumption timer is active skip saving");
+ return;
}
- waiting_for_timer_.clear();
+ if (false == is_data_saved) {
+ SaveAllApplications();
+ is_data_saved = true;
+ resumption::LastState::instance()->SaveToFileSystem();
+ }
}
bool ResumeCtrl::IsDeviceMacAddressEqual(ApplicationSharedPtr application,
const std::string& saved_device_mac) {
const std::string device_mac =
MessageHelper::GetDeviceMacAddressForHandle(application->device());
-
return device_mac == saved_device_mac;
}
+Json::Value&ResumeCtrl::GetResumptionData() {
+ LOG4CXX_AUTO_TRACE(logger_);
+ Json::Value& last_state = resumption::LastState::instance()->dictionary;
+ if (!last_state.isMember(strings::resumption)) {
+ last_state[strings::resumption] = Json::Value(Json::objectValue);
+ LOG4CXX_WARN(logger_, "resumption section is missed");
+ }
+ Json::Value& resumption = last_state[strings::resumption];
+ if (!resumption.isObject()) {
+ LOG4CXX_ERROR(logger_, "resumption type INVALID rewrite");
+ resumption = Json::Value(Json::objectValue);
+ }
+ return resumption;
+}
+
Json::Value& ResumeCtrl::GetSavedApplications() {
- return resumption::LastState::instance()->dictionary[strings::resumption];
+ LOG4CXX_AUTO_TRACE(logger_);
+ Json::Value& resumption = GetResumptionData();
+ if (!resumption.isMember(strings::resume_app_list)) {
+ resumption[strings::resume_app_list] = Json::Value(Json::arrayValue);
+ LOG4CXX_WARN(logger_, "app_list section is missed");
+ }
+ Json::Value& resume_app_list = resumption[strings::resume_app_list];
+ if (!resume_app_list.isArray()) {
+ LOG4CXX_ERROR(logger_, "resume_app_list type INVALID rewrite");
+ resume_app_list = Json::Value(Json::arrayValue);
+ }
+ return resume_app_list;
+}
+
+time_t ResumeCtrl::GetIgnOffTime() {
+ LOG4CXX_AUTO_TRACE(logger_);
+ Json::Value& resumption = GetResumptionData();
+ if (!resumption.isMember(strings::last_ign_off_time)) {
+ resumption[strings::last_ign_off_time] = 0;
+ LOG4CXX_WARN(logger_, "last_save_time section is missed");
+ }
+ time_t last_ign_off = static_cast<time_t>(
+ resumption[strings::last_ign_off_time].asUInt());
+ return last_ign_off;
+}
+
+void ResumeCtrl::SetLastIgnOffTime(time_t ign_off_time) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ LOG4CXX_WARN(logger_, "ign_off_time = " << ign_off_time);
+ Json::Value& resumption = GetResumptionData();
+ resumption[strings::last_ign_off_time] = static_cast<uint32_t>(ign_off_time);
}
+
void ResumeCtrl::SetSavedApplication(Json::Value& apps_json) {
- resumption::LastState::instance()->dictionary[strings::resumption] = apps_json ;
+ Json::Value& app_list = GetSavedApplications();
+ app_list = apps_json;
}
void ResumeCtrl::ClearResumptionInfo() {
- Json::Value empty_json;
+ LOG4CXX_AUTO_TRACE(logger_);
+ Json::Value empty_json;
- SetSavedApplication(empty_json);
- resumption::LastState::instance()->SaveToFileSystem();
+ SetSavedApplication(empty_json);
+ resumption::LastState::instance()->SaveToFileSystem();
}
Json::Value ResumeCtrl::GetApplicationCommands(
ApplicationConstSharedPtr application) {
- DCHECK(application.get());
- LOG4CXX_INFO(logger_, "ResumeCtrl::GetApplicationCommands "
- << application->app_id());
-
+ LOG4CXX_AUTO_TRACE(logger_);
Json::Value result;
- const CommandsMap& commands = application->commands_map();
+ DCHECK(application.get());
+ if (!application) {
+ LOG4CXX_ERROR(logger_, "NULL Pointer App");
+ return result;
+ }
+ const DataAccessor<CommandsMap> accessor = application->commands_map();
+ const CommandsMap& commands = accessor.GetData();
CommandsMap::const_iterator it = commands.begin();
for (;it != commands.end(); ++it) {
smart_objects::SmartObject* so = it->second;
Json::Value curr;
Formatters::CFormatterJsonBase::objToJsonValue(*so, curr);
result.append(curr);
- LOG4CXX_INFO(logger_, "Converted:" << curr.toStyledString());
}
return result;
}
Json::Value ResumeCtrl::GetApplicationSubMenus(
ApplicationConstSharedPtr application) {
- DCHECK(application.get());
- LOG4CXX_INFO(logger_, "ResumeCtrl::GetApplicationCommands "
- << application->app_id());
-
+ LOG4CXX_AUTO_TRACE(logger_);
Json::Value result;
- const SubMenuMap& sub_menus = application->sub_menu_map();
+ DCHECK(application.get());
+ if (!application) {
+ LOG4CXX_ERROR(logger_, "NULL Pointer App");
+ return result;
+ }
+ const DataAccessor<SubMenuMap> accessor = application->sub_menu_map();
+ const SubMenuMap& sub_menus = accessor.GetData();
SubMenuMap::const_iterator it = sub_menus.begin();
for (;it != sub_menus.end(); ++it) {
smart_objects::SmartObject* so = it->second;
Json::Value curr;
Formatters::CFormatterJsonBase::objToJsonValue(*so, curr);
result.append(curr);
- LOG4CXX_INFO(logger_, "Converted:" << curr.toStyledString());
}
return result;
}
@@ -788,29 +765,32 @@ Json::Value ResumeCtrl::GetApplicationSubMenus(
Json::Value ResumeCtrl::GetApplicationInteractionChoiseSets(
ApplicationConstSharedPtr application) {
DCHECK(application.get());
- LOG4CXX_INFO(logger_, "ResumeCtrl::GetApplicationInteractionChoiseSets "
+ LOG4CXX_TRACE(logger_, "ENTER app_id:"
<< application->app_id());
Json::Value result;
- const ChoiceSetMap& choices = application->choice_set_map();
+ const DataAccessor<ChoiceSetMap> accessor = application->choice_set_map();
+ const ChoiceSetMap& choices = accessor.GetData();
ChoiceSetMap::const_iterator it = choices.begin();
for ( ;it != choices.end(); ++it) {
smart_objects::SmartObject* so = it->second;
Json::Value curr;
Formatters::CFormatterJsonBase::objToJsonValue(*so, curr);
result.append(curr);
- LOG4CXX_INFO(logger_, "Converted:" << curr.toStyledString());
}
return result;
}
Json::Value ResumeCtrl::GetApplicationGlobalProperties(
ApplicationConstSharedPtr application) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ Json::Value sgp;
DCHECK(application.get());
- LOG4CXX_INFO(logger_, "ResumeCtrl::GetApplicationGlobalProperties "
- << application->app_id());
+ if (!application) {
+ LOG4CXX_ERROR(logger_, "NULL Pointer App");
+ return sgp;
+ }
- Json::Value result;
const smart_objects::SmartObject* help_promt = application->help_prompt();
const smart_objects::SmartObject* timeout_prompt = application->timeout_prompt();
const smart_objects::SmartObject* vr_help = application->vr_help();
@@ -820,7 +800,6 @@ Json::Value ResumeCtrl::GetApplicationGlobalProperties(
const smart_objects::SmartObject* menu_title = application->menu_title();
const smart_objects::SmartObject* menu_icon = application->menu_icon();
- Json::Value sgp;
sgp[strings::help_prompt] = JsonFromSO(help_promt);
sgp[strings::timeout_prompt] = JsonFromSO(timeout_prompt);
sgp[strings::vr_help] = JsonFromSO(vr_help);
@@ -829,35 +808,34 @@ Json::Value ResumeCtrl::GetApplicationGlobalProperties(
sgp[strings::keyboard_properties] = JsonFromSO(keyboard_props);
sgp[strings::menu_title] = JsonFromSO(menu_title);
sgp[strings::menu_icon] = JsonFromSO(menu_icon);
-
return sgp;
}
Json::Value ResumeCtrl::GetApplicationSubscriptions(
ApplicationConstSharedPtr application) {
- DCHECK(application.get());
- LOG4CXX_INFO(logger_, "ResumeCtrl::GetApplicationSubscriptions "
- << application->app_id());
-
+ LOG4CXX_AUTO_TRACE(logger_);
Json::Value result;
- std::set<mobile_apis::ButtonName::eType>::iterator it_button ;
- std::set<uint32_t>::iterator it_vehicle;
-
- for (it_button = application->SubscribedButtons().begin() ;
- it_button != application->SubscribedButtons().end(); ++it_button) {
- result[strings::application_buttons].append(*it_button);
- }
- for (it_vehicle = application->SubscribesIVI().begin();
- it_vehicle != application->SubscribesIVI().end(); ++it_vehicle) {
- result[strings::application_vehicle_info].append(*it_vehicle);
+ DCHECK(application.get());
+ if (!application) {
+ LOG4CXX_ERROR(logger_, "NULL Pointer App");
+ return result;
}
+ LOG4CXX_DEBUG(logger_, "app_id:" << application->app_id());
+ LOG4CXX_DEBUG(logger_, "SubscribedButtons:" << application->SubscribedButtons().size());
+ Append(application->SubscribedButtons().begin(),
+ application->SubscribedButtons().end(),
+ strings::application_buttons, result);
+ LOG4CXX_DEBUG(logger_, "SubscribesIVI:" << application->SubscribesIVI().size());
+ Append(application->SubscribesIVI().begin(),
+ application->SubscribesIVI().end(),
+ strings::application_vehicle_info, result);
return result;
}
Json::Value ResumeCtrl::GetApplicationFiles(
ApplicationConstSharedPtr application) {
DCHECK(application.get());
- LOG4CXX_INFO(logger_, "ResumeCtrl::GetApplicationFiles "
+ LOG4CXX_TRACE(logger_, "ENTER app_id:"
<< application->app_id());
Json::Value result;
@@ -880,8 +858,8 @@ Json::Value ResumeCtrl::GetApplicationFiles(
Json::Value ResumeCtrl::GetApplicationShow(
ApplicationConstSharedPtr application) {
DCHECK(application.get());
- LOG4CXX_INFO(logger_, "ResumeCtrl::GetApplicationShow "
- << application->app_id());
+ LOG4CXX_TRACE(logger_, "ENTER app_id:"
+ << application->app_id());
Json::Value result;
const smart_objects::SmartObject* show_so = application->show_command();
@@ -900,8 +878,9 @@ Json::Value ResumeCtrl::JsonFromSO(const smart_objects::SmartObject *so) {
return temp;
}
-bool ResumeCtrl::ProcessHMIRequest(smart_objects::SmartObject* request,
+bool ResumeCtrl::ProcessHMIRequest(smart_objects::SmartObjectSPtr request,
bool use_events) {
+ LOG4CXX_AUTO_TRACE(logger_);
if (use_events) {
const hmi_apis::FunctionID::eType function_id =
static_cast<hmi_apis::FunctionID::eType>(
@@ -918,11 +897,391 @@ bool ResumeCtrl::ProcessHMIRequest(smart_objects::SmartObject* request,
return false;
}
+void ResumeCtrl::AddFiles(ApplicationSharedPtr application, const Json::Value& saved_app) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ if (saved_app.isMember(strings::application_files)) {
+ const Json::Value& application_files = saved_app[strings::application_files];
+ for (Json::Value::iterator json_it = application_files.begin();
+ json_it != application_files.end(); ++json_it) {
+ const Json::Value& file_data = *json_it;
+
+ const bool is_persistent = file_data.isMember(strings::persistent_file) &&
+ file_data[strings::persistent_file].asBool();
+ if (is_persistent) {
+ AppFile file;
+ file.is_persistent = is_persistent;
+ file.is_download_complete = file_data[strings::is_download_complete].asBool();
+ file.file_name = file_data[strings::sync_file_name].asString();
+ file.file_type = static_cast<mobile_apis::FileType::eType> (
+ file_data[strings::file_type].asInt());
+ application->AddFile(file);
+ }
+ }
+ } else {
+ LOG4CXX_FATAL(logger_, "application_files section is not exists");
+ }
+}
+
+void ResumeCtrl::AddSubmenues(ApplicationSharedPtr application, const Json::Value& saved_app) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ if (saved_app.isMember(strings::application_submenus)) {
+ const Json::Value& app_submenus = saved_app[strings::application_submenus];
+ for (Json::Value::iterator json_it = app_submenus.begin();
+ json_it != app_submenus.end(); ++json_it) {
+ const Json::Value& json_submenu = *json_it;
+ smart_objects::SmartObject message(smart_objects::SmartType::SmartType_Map);
+ Formatters::CFormatterJsonBase::jsonValueToObj(json_submenu, message);
+ application->AddSubMenu(message[strings::menu_id].asUInt(), message);
+ }
+
+ ProcessHMIRequests(MessageHelper::CreateAddSubMenuRequestToHMI(application));
+ } else {
+ LOG4CXX_FATAL(logger_, "application_submenus section is not exists");
+ }
+}
+
+void ResumeCtrl::AddCommands(ApplicationSharedPtr application, const Json::Value& saved_app) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ if (saved_app.isMember(strings::application_commands)) {
+ const Json::Value& app_commands = saved_app[strings::application_commands];
+ for (Json::Value::iterator json_it = app_commands.begin();
+ json_it != app_commands.end(); ++json_it) {
+ const Json::Value& json_command = *json_it;
+ smart_objects::SmartObject message(smart_objects::SmartType::SmartType_Map);
+ Formatters::CFormatterJsonBase::jsonValueToObj(json_command, message);
+ application->AddCommand(message[strings::cmd_id].asUInt(), message);
+ }
+
+ ProcessHMIRequests(MessageHelper::CreateAddCommandRequestToHMI(application));
+ } else {
+ LOG4CXX_FATAL(logger_, "application_commands section is not exists");
+ }
+}
+
+void ResumeCtrl::AddChoicesets(ApplicationSharedPtr application, const Json::Value& saved_app) {
+ if(saved_app.isMember(strings::application_choise_sets)) {
+ const Json::Value& app_choise_sets = saved_app[strings::application_choise_sets];
+ for (Json::Value::iterator json_it = app_choise_sets.begin();
+ json_it != app_choise_sets.end(); ++json_it) {
+ const Json::Value& json_choiset = *json_it;
+ smart_objects::SmartObject msg_param(smart_objects::SmartType::SmartType_Map);
+ Formatters::CFormatterJsonBase::jsonValueToObj(json_choiset , msg_param);
+ const int32_t choice_set_id = msg_param
+ [strings::interaction_choice_set_id].asInt();
+ uint32_t choice_grammar_id = msg_param[strings::grammar_id].asUInt();
+ application->AddChoiceSet(choice_set_id, msg_param);
+
+ const size_t size = msg_param[strings::choice_set].length();
+ for (size_t j = 0; j < size; ++j) {
+ smart_objects::SmartObject choise_params(smart_objects::SmartType_Map);
+ choise_params[strings::app_id] = application->app_id();
+ choise_params[strings::cmd_id] =
+ msg_param[strings::choice_set][j][strings::choice_id];
+ choise_params[strings::vr_commands] = smart_objects::SmartObject(
+ smart_objects::SmartType_Array);
+ choise_params[strings::vr_commands] =
+ msg_param[strings::choice_set][j][strings::vr_commands];
+
+ choise_params[strings::type] = hmi_apis::Common_VRCommandType::Choice;
+ choise_params[strings::grammar_id] = choice_grammar_id;
+ SendHMIRequest(hmi_apis::FunctionID::VR_AddCommand, &choise_params);
+ }
+ }
+ } else {
+ LOG4CXX_FATAL(logger_, "There is no any choicesets");
+ }
+}
+
+void ResumeCtrl::SetGlobalProperties(ApplicationSharedPtr application, const Json::Value& saved_app) {
+ const Json::Value& global_properties = saved_app[strings::application_global_properties];
+ if (!global_properties.isNull()) {
+ smart_objects::SmartObject properties_so(smart_objects::SmartType::SmartType_Map);
+ Formatters::CFormatterJsonBase::jsonValueToObj(global_properties , properties_so);
+ application->load_global_properties(properties_so);
+ MessageHelper::SendGlobalPropertiesToHMI(application);
+ }
+}
+
+void ResumeCtrl::AddSubscriptions(ApplicationSharedPtr application, const Json::Value& saved_app) {
+ if (saved_app.isMember(strings::application_subscribtions)) {
+ const Json::Value& subscribtions = saved_app[strings::application_subscribtions];
+
+ if (subscribtions.isMember(strings::application_buttons)) {
+ const Json::Value& subscribtions_buttons = subscribtions[strings::application_buttons];
+ mobile_apis::ButtonName::eType btn;
+ for (Json::Value::iterator json_it = subscribtions_buttons.begin();
+ json_it != subscribtions_buttons.end(); ++json_it) {
+ btn = static_cast<mobile_apis::ButtonName::eType>((*json_it).asInt());
+ application->SubscribeToButton(btn);
+ }
+ }
+ if (subscribtions.isMember(strings::application_vehicle_info)) {
+ const Json::Value& subscribtions_ivi= subscribtions[strings::application_vehicle_info];
+ VehicleDataType ivi;
+ for (Json::Value::iterator json_it = subscribtions_ivi.begin();
+ json_it != subscribtions_ivi.end(); ++json_it) {
+ ivi = static_cast<VehicleDataType>((*json_it).asInt());
+ application->SubscribeToIVI(ivi);
+ }
+ }
+
+ ProcessHMIRequests(MessageHelper::GetIVISubscriptionRequests(application));
+ }
+}
+
+void ResumeCtrl::ProcessHMIRequests(const smart_objects::SmartObjectList& requests) {
+ for (smart_objects::SmartObjectList::const_iterator it = requests.begin(),
+ total = requests.end();
+ it != total; ++it) {
+ ProcessHMIRequest(*it, true);
+ }
+}
+
+bool ResumeCtrl::CheckIcons(ApplicationSharedPtr application,
+ const Json::Value& json_object) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ bool result = true;
+ if (!json_object.isNull()) {
+ Json::Value::const_iterator json_it = json_object.begin();
+ for (;json_it != json_object.end() && result; ++json_it) {
+ const Json::Value& json_command = *json_it;
+ if (!json_command.isNull()) {
+ smart_objects::SmartObject message(smart_objects::SmartType::SmartType_Map);
+ Formatters::CFormatterJsonBase::jsonValueToObj(json_command, message);
+ const mobile_apis::Result::eType verify_images =
+ MessageHelper::VerifyImageFiles(message, application);
+ result = (mobile_apis::Result::INVALID_DATA != verify_images);
+ } else {
+ LOG4CXX_WARN(logger_, "Invalid json object");
+ }
+ }
+ } else {
+ LOG4CXX_WARN(logger_, "Passed json object is null");
+ }
+ LOG4CXX_DEBUG(logger_, "CheckIcons result " << result);
+ return result;
+}
+
+Json::Value& ResumeCtrl::GetFromSavedOrAppend(const std::string& mobile_app_id) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ for (Json::Value::iterator it = GetSavedApplications().begin();
+ it != GetSavedApplications().end(); ++it) {
+ if (mobile_app_id == (*it)[strings::app_id].asString()) {
+ return *it;
+ }
+ }
+
+ return GetSavedApplications().append(Json::Value());
+}
+
+bool ResumeCtrl::CheckIgnCycleRestrictions(const Json::Value& json_app) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ bool result = true;
+
+ if (!CheckDelayAfterIgnOn()) {
+ LOG4CXX_INFO(logger_, "Application was connected long after ign on");
+ result = false;
+ }
+
+ if (!DisconnectedJustBeforeIgnOff(json_app)) {
+ LOG4CXX_INFO(logger_, "Application was dissconnected long before ign off");
+ result = false;
+ }
+ return result;
+}
+
+bool ResumeCtrl::DisconnectedInLastIgnCycle(const Json::Value& json_app) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ DCHECK_OR_RETURN(json_app.isMember(strings::suspend_count), false);
+ const uint32_t suspend_count = json_app[strings::suspend_count].asUInt();
+ LOG4CXX_DEBUG(logger_, " suspend_count " << suspend_count);
+ return (1 == suspend_count);
+}
+
+bool ResumeCtrl::DisconnectedJustBeforeIgnOff(const Json::Value& json_app) {
+ using namespace date_time;
+ using namespace profile;
+ LOG4CXX_AUTO_TRACE(logger_);
+ DCHECK_OR_RETURN(json_app.isMember(strings::time_stamp), false);
+
+ const time_t time_stamp =
+ static_cast<time_t>(json_app[strings::time_stamp].asUInt());
+ time_t ign_off_time = GetIgnOffTime();
+ const uint32_t sec_spent_before_ign = labs(ign_off_time - time_stamp);
+ LOG4CXX_DEBUG(logger_,"ign_off_time " << ign_off_time
+ << "; app_disconnect_time " << time_stamp
+ << "; sec_spent_before_ign " << sec_spent_before_ign
+ << "; resumption_delay_before_ign " <<
+ Profile::instance()->resumption_delay_before_ign());
+ return sec_spent_before_ign <=
+ Profile::instance()->resumption_delay_before_ign();
+}
+
+bool ResumeCtrl::CheckDelayAfterIgnOn() {
+ using namespace date_time;
+ using namespace profile;
+ LOG4CXX_AUTO_TRACE(logger_);
+ time_t curr_time = time(NULL);
+ time_t sdl_launch_time = launch_time();
+ const uint32_t seconds_from_sdl_start = labs(curr_time - sdl_launch_time);
+ const uint32_t wait_time =
+ Profile::instance()->resumption_delay_after_ign();
+ LOG4CXX_DEBUG(logger_, "curr_time " << curr_time
+ << "; sdl_launch_time " << sdl_launch_time
+ << "; seconds_from_sdl_start " << seconds_from_sdl_start
+ << "; wait_time " << wait_time);
+ return seconds_from_sdl_start <= wait_time;
+}
+
+bool ResumeCtrl::CheckAppRestrictions(ApplicationSharedPtr application,
+ const Json::Value& json_app) {
+ using namespace mobile_apis;
+ LOG4CXX_AUTO_TRACE(logger_);
+ DCHECK_OR_RETURN(json_app.isMember(strings::hmi_level), false);
+
+ const bool is_media_app = application->is_media_application();
+ const HMILevel::eType hmi_level =
+ static_cast<HMILevel::eType>(json_app[strings::hmi_level].asInt());
+ LOG4CXX_DEBUG(logger_, "is_media_app " << is_media_app
+ << "; hmi_level " << hmi_level);
+
+ if (is_media_app) {
+ if (hmi_level == HMILevel::HMI_FULL ||
+ hmi_level == HMILevel::HMI_LIMITED) {
+ return true;
+ }
+ }
+ return false;
+}
+
+int ResumeCtrl::GetObjectIndex(const std::string& mobile_app_id) {
+ LOG4CXX_AUTO_TRACE(logger_);
+
+ sync_primitives::AutoLock lock(resumtion_lock_);
+ const Json::Value& apps = GetSavedApplications();
+ const Json::ArrayIndex size = apps.size();
+ Json::ArrayIndex idx = 0;
+ for (; idx != size; ++idx) {
+ const std::string& saved_app_id = apps[idx][strings::app_id].asString();
+ if (mobile_app_id == saved_app_id) {
+ LOG4CXX_DEBUG(logger_, "Found " << idx);
+ return idx;
+ }
+ }
+ return -1;
+}
+time_t ResumeCtrl::launch_time() const {
+ return launch_time_;
+}
+
+void ResumeCtrl::ResetLaunchTime() {
+ launch_time_ = time(NULL);
+}
+
+void ResumeCtrl::ApplicationResumptiOnTimer() {
+ LOG4CXX_AUTO_TRACE(logger_);
+ sync_primitives::AutoLock auto_lock(queue_lock_);
+ is_resumption_active_ = false;
+ std::vector<uint32_t>::iterator it = waiting_for_timer_.begin();
+
+ for (; it != waiting_for_timer_.end(); ++it) {
+ ApplicationSharedPtr app =
+ ApplicationManagerImpl::instance()->application(*it);
+ if (!app.get()) {
+ LOG4CXX_ERROR(logger_, "Invalid app_id = " << *it);
+ continue;
+ }
+
+ StartAppHmiStateResumption(app);
+ }
+
+ waiting_for_timer_.clear();
+}
+
+void ResumeCtrl::LoadResumeData() {
+ LOG4CXX_AUTO_TRACE(logger_);
+
+ sync_primitives::AutoLock lock(resumtion_lock_);
+
+ Json::Value& resume_app_list = GetSavedApplications();
+ Json::Value::iterator full_app = resume_app_list.end();
+ time_t time_stamp_full = 0;
+ Json::Value::iterator limited_app = resume_app_list.end();
+ time_t time_stamp_limited = 0;
+
+ Json::Value::iterator it = resume_app_list.begin();
+ for (; it != resume_app_list.end(); ++it) {
+ if ((*it).isMember(strings::ign_off_count) &&
+ (*it).isMember(strings::hmi_level)) {
+
+ // only apps with first IGN should be resumed
+ const int32_t first_ign = 1;
+ if (first_ign == (*it)[strings::ign_off_count].asInt()) {
+
+ const mobile_apis::HMILevel::eType saved_hmi_level =
+ static_cast<mobile_apis::HMILevel::eType>((*it)[strings::hmi_level].asInt());
+
+ const time_t saved_time_stamp =
+ static_cast<time_t>((*it)[strings::time_stamp].asUInt());
+
+ if (mobile_apis::HMILevel::HMI_FULL == saved_hmi_level) {
+ if (time_stamp_full < saved_time_stamp) {
+ time_stamp_full = saved_time_stamp;
+ full_app = it;
+ }
+ }
+
+ if (mobile_apis::HMILevel::HMI_LIMITED == saved_hmi_level) {
+ if (time_stamp_limited < saved_time_stamp) {
+ time_stamp_limited = saved_time_stamp;
+ limited_app = it;
+ }
+ }
+ }
+
+ // set invalid HMI level for all
+ (*it)[strings::hmi_level] =
+ static_cast<int32_t>(mobile_apis::HMILevel::INVALID_ENUM);
+ }
+ }
+
+ if (full_app != resume_app_list.end()) {
+ (*full_app)[strings::hmi_level] =
+ static_cast<int32_t>(mobile_apis::HMILevel::HMI_FULL);
+ }
+
+ if (limited_app != resume_app_list.end()) {
+ (*limited_app)[strings::hmi_level] =
+ static_cast<int32_t>(mobile_apis::HMILevel::HMI_LIMITED);
+ }
+ LOG4CXX_DEBUG(logger_, GetResumptionData().toStyledString());
+}
+
+bool ResumeCtrl::IsResumptionDataValid(uint32_t index) {
+ const Json::Value& json_app = GetSavedApplications()[index];
+ if (!json_app.isMember(strings::app_id) ||
+ !json_app.isMember(strings::ign_off_count) ||
+ !json_app.isMember(strings::hmi_level) ||
+ !json_app.isMember(strings::hmi_app_id) ||
+ !json_app.isMember(strings::time_stamp)) {
+ LOG4CXX_ERROR(logger_, "Wrong resumption data");
+ return false;
+ }
+
+ if (json_app.isMember(strings::hmi_app_id) &&
+ 0 >= json_app[strings::hmi_app_id].asUInt()) {
+ LOG4CXX_ERROR(logger_, "Wrong resumption hmi app ID");
+ return false;
+ }
+
+ return true;
+}
+
void ResumeCtrl::SendHMIRequest(
const hmi_apis::FunctionID::eType& function_id,
const smart_objects::SmartObject* msg_params, bool use_events) {
-
- NsSmartDeviceLink::NsSmartObjects::SmartObject* result =
+ LOG4CXX_AUTO_TRACE(logger_);
+ smart_objects::SmartObjectSPtr result =
MessageHelper::CreateModuleInfoSO(function_id);
int32_t hmi_correlation_id =
(*result)[strings::params][strings::correlation_id].asInt();
diff --git a/src/components/application_manager/src/usage_statistics.cc b/src/components/application_manager/src/usage_statistics.cc
index 44ab164538..ad986d2223 100644
--- a/src/components/application_manager/src/usage_statistics.cc
+++ b/src/components/application_manager/src/usage_statistics.cc
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2014, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/CMakeLists.txt b/src/components/application_manager/test/CMakeLists.txt
index 4d0e7a738f..6c76af526a 100644
--- a/src/components/application_manager/test/CMakeLists.txt
+++ b/src/components/application_manager/test/CMakeLists.txt
@@ -1,4 +1,37 @@
-#Replace include for mocking singltone
+# Copyright (c) 2014, Ford Motor Company
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided with the
+# distribution.
+#
+# Neither the name of the Ford Motor Company nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+# TODO{ALeshin}: APPLINK-10792. Do not write tests which use
+# application manager(AM) singleton while refactoring of AM is finished.
+
+# Replace include for mocking singltone
get_property(the_include_dirs DIRECTORY "" PROPERTY INCLUDE_DIRECTORIES)
set(class_to_mock ${CMAKE_SOURCE_DIR}/src/components/application_manager/include)
list(FIND the_include_dirs ${class_to_mock} find_idx)
@@ -7,20 +40,24 @@ if(find_idx GREATER -1)
endif()
set_property(DIRECTORY "" PROPERTY INCLUDE_DIRECTORIES ${the_include_dirs})
-include_directories (
+include_directories(
${CMAKE_SOURCE_DIR}/src/3rd_party-static/gmock-1.7.0/include
${CMAKE_SOURCE_DIR}/src/3rd_party-static/gmock-1.7.0/gtest/include
+ ${COMPONENTS_DIR}/application_manager/include/application_manager/policies
)
set(testSources
${CMAKE_SOURCE_DIR}/src/3rd_party-static/gmock-1.7.0/src/gmock_main.cc
- ${AM_TEST_DIR}/command_impl_test.cc
+ ${AM_TEST_DIR}/command_impl_test.cc
+ ${COMPONENTS_DIR}/application_manager/test/mobile_message_handler_test.cc
+ ${AM_TEST_DIR}/request_info_test.cc
)
-set (mockedSources
+
+set(mockedSources
${AM_MOCK_DIR}/src/application_manager_impl.cc
)
-set (AM_SOURCES
+set(AM_SOURCES
${AM_SOURCE_DIR}/src/policies/policy_handler.cc
${AM_SOURCE_DIR}/src/policies/policy_event_observer.cc
@@ -28,6 +65,7 @@ set (AM_SOURCES
${AM_SOURCE_DIR}/src/commands/command_request_impl.cc
${AM_SOURCE_DIR}/src/commands/command_response_impl.cc
${AM_SOURCE_DIR}/src/commands/command_notification_impl.cc
+ ${AM_SOURCE_DIR}/src/commands/command_notification_from_mobile_impl.cc
${AM_SOURCE_DIR}/src/commands/pending.cc
${AM_SOURCE_DIR}/src/usage_statistics.cc
@@ -47,20 +85,14 @@ set (AM_SOURCES
include_directories(
${AM_SOURCE_DIR}/policy/src/policy/policy_table/table_struct
)
- list(APPEND AM_SOURCES
- ${COMPONENTS_DIR}/application_manager/src/policies/pt_exchange_handler_impl.cc
- ${COMPONENTS_DIR}/application_manager/src/policies/policy_retry_sequence.cc
- )
set(testLibraries
gmock
- gtest
- gmock
gmock_main
UsageStatistics
dl
ProtocolLibrary
- )
+)
set(test_exec_libraries
HMI_API
@@ -77,6 +109,7 @@ set(test_exec_libraries
MediaManager
Resumption
)
+
IF(${CMAKE_SYSTEM_NAME} MATCHES "QNX")
list(REMOVE_ITEM test_exec_libraries dl)
endif()
@@ -89,10 +122,14 @@ if(ENABLE_LOG)
endif()
add_library("ApplicationManagerTest" ${mockedSources} ${testSources} ${AM_SOURCES})
+
target_link_libraries("ApplicationManagerTest" ${testLibraries} AMHMICommandsLibrary
AMMobileCommandsLibrary
AMEventEngine
AMPolicyLibrary)
-add_executable(application_manager_test ${testSources})
-target_link_libraries(application_manager_test ApplicationManagerTest ${test_exec_libraries})
+create_test("application_manager_test" "${testSources}" "${ApplicationManagerTest}")
+target_link_libraries("application_manager_test" ApplicationManagerTest ${test_exec_libraries})
+
+#add_executable(application_manager_test ${testSources})
+#target_link_libraries(application_manager_test ApplicationManagerTest ${test_exec_libraries})
diff --git a/src/components/application_manager/test/command_impl_test.cc b/src/components/application_manager/test/command_impl_test.cc
index 40b16b5c28..677515784f 100644
--- a/src/components/application_manager/test/command_impl_test.cc
+++ b/src/components/application_manager/test/command_impl_test.cc
@@ -1,3 +1,35 @@
+/*
+ * Copyright (c) 2014, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
#include "gtest/gtest.h"
#include "gmock/gmock.h"
#include "application_manager/application_manager_impl.h"
@@ -25,19 +57,18 @@ bool MessageResultCodeIsGENERIC_ERROR(const utils::SharedPtr<smart_objects::Smar
}
}
-TEST(ApplicationManagerTest, SingltoneTestCheckWork) {
+TEST(ApplicationManager, SingletonInstance_CallTwice_ReferencesAreSame) {
application_manager::ApplicationManagerImpl* am = application_manager::ApplicationManagerImpl::instance();
application_manager::ApplicationManagerImpl* am2 = application_manager::ApplicationManagerImpl::instance();
- ASSERT_TRUE(am == am2);
- EXPECT_CALL((*am), GetNextHMICorrelationID()).WillRepeatedly(Return(1));
- smart_objects::SmartObject* so = application_manager::MessageHelper::CreateModuleInfoSO(0);
- delete so;
+ ASSERT_EQ(am, am2);
+ //EXPECT_CALL((*am), GetNextHMICorrelationID()).WillRepeatedly(Return(1));
+ //smart_objects::SmartObjectSPtr so = application_manager::MessageHelper::CreateModuleInfoSO(0);
application_manager::ApplicationManagerImpl::destroy();
}
TEST(MobileCommandsTest, CommandImplTimeOut) {
application_manager::ApplicationManagerImpl* am = application_manager::ApplicationManagerImpl::instance();
- smart_objects::SmartObject* so = application_manager::MessageHelper::CreateModuleInfoSO(0);
+ smart_objects::SmartObjectSPtr so = application_manager::MessageHelper::CreateModuleInfoSO(0);
application_manager::commands::CommandRequestImpl request(so);
EXPECT_CALL((*am), ManageMobileCommand(Truly(MessageResultCodeIsGENERIC_ERROR)));
request.onTimeOut();
diff --git a/src/components/application_manager/test/mobile_message_handler_test.cc b/src/components/application_manager/test/mobile_message_handler_test.cc
new file mode 100644
index 0000000000..ec144826a8
--- /dev/null
+++ b/src/components/application_manager/test/mobile_message_handler_test.cc
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2014, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+
+#include "gmock/gmock.h"
+#include "application_manager/mobile_message_handler.h"
+
+
+using ::testing::_;
+
+namespace application_manager {
+
+TEST(mobile_message_test, basic_test) {
+ // Example message
+ MobileMessage message = new application_manager::Message(
+ protocol_handler::MessagePriority::kDefault);
+ EXPECT_FALSE(message->has_binary_data());
+ BinaryData* binary_data = new BinaryData;
+ binary_data->push_back('X');
+ message->set_binary_data(binary_data);
+ EXPECT_TRUE(message->has_binary_data());
+}
+
+}
diff --git a/src/components/application_manager/test/mock/include/application_manager/application.h b/src/components/application_manager/test/mock/include/application_manager/application.h
index 5f1f598851..531e1fd465 100644
--- a/src/components/application_manager/test/mock/include/application_manager/application.h
+++ b/src/components/application_manager/test/mock/include/application_manager/application.h
@@ -1,5 +1,5 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
+/*
+ * Copyright (c) 2015, Ford Motor Company
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -36,6 +36,7 @@
#include <string>
#include <map>
#include "utils/shared_ptr.h"
+#include "utils/data_accessor.h"
#include "interfaces/MOBILE_API.h"
#include "connection_handler/device.h"
#include "application_manager/message.h"
@@ -61,7 +62,8 @@ enum APIVersion {
kAPIV0 = 0,
kAPIV1 = 1,
kAPIV2 = 2,
- kAPIV3 = 3
+ kAPIV3 = 3,
+ kAPIV4 = 4
};
enum TLimitSource {
@@ -104,7 +106,7 @@ class InitialApplicationData {
virtual const smart_objects::SmartObject* app_types() const = 0;
virtual const smart_objects::SmartObject* vr_synonyms() const = 0;
- virtual const smart_objects::SmartObject* mobile_app_id() const = 0;
+ virtual std::string mobile_app_id() const = 0;
virtual const smart_objects::SmartObject* tts_name() const = 0;
virtual const smart_objects::SmartObject* ngn_media_screen_name() const = 0;
virtual const mobile_api::Language::eType& language() const = 0;
@@ -112,8 +114,7 @@ class InitialApplicationData {
virtual void set_app_types(const smart_objects::SmartObject& app_types) = 0;
virtual void set_vr_synonyms(
const smart_objects::SmartObject& vr_synonyms) = 0;
- virtual void set_mobile_app_id(
- const smart_objects::SmartObject& mobile_app_id) = 0;
+ virtual void set_mobile_app_id(const std::string& mobile_app_id) = 0;
virtual void set_tts_name(const smart_objects::SmartObject& tts_name) = 0;
virtual void set_ngn_media_screen_name(
const smart_objects::SmartObject& ngn_name) = 0;
@@ -164,6 +165,7 @@ class DynamicApplicationData {
virtual const smart_objects::SmartObject* menu_title() const = 0;
virtual const smart_objects::SmartObject* menu_icon() const = 0;
+ virtual void load_global_properties(const smart_objects::SmartObject& so) = 0;
virtual void set_help_prompt(
const smart_objects::SmartObject& help_prompt) = 0;
virtual void set_timeout_prompt(
@@ -268,7 +270,7 @@ class DynamicApplicationData {
*
* @return ChoiceSet map that is currently in use
*/
- virtual const PerformChoiceSetMap&
+ virtual DataAccessor<PerformChoiceSetMap>
performinteraction_choice_set_map() const = 0;
/*
@@ -285,17 +287,17 @@ class DynamicApplicationData {
/*
* @brief Retrieve application commands
*/
- virtual const CommandsMap& commands_map() const = 0;
+ virtual DataAccessor<CommandsMap> commands_map() const = 0;
/*
* @brief Retrieve application sub menus
*/
- virtual const SubMenuMap& sub_menu_map() const = 0;
+ virtual DataAccessor<SubMenuMap> sub_menu_map() const = 0;
/*
* @brief Retrieve application choice set map
*/
- virtual const ChoiceSetMap& choice_set_map() const = 0;
+ virtual DataAccessor<ChoiceSetMap> choice_set_map() const = 0;
/*
* @brief Sets perform interaction state
@@ -359,6 +361,12 @@ class DynamicApplicationData {
class Application : public virtual InitialApplicationData,
public virtual DynamicApplicationData {
public:
+ enum ApplicationState {
+ kRegistered = 0,
+ kWaitingForRegistration
+ };
+
+ public:
virtual ~Application() {
}
@@ -370,41 +378,41 @@ class Application : public virtual InitialApplicationData,
virtual const smart_objects::SmartObject* active_message() const = 0;
/**
- * @brief Change Hash value and return it
- * @return next Hash value
+ * @brief returns current hash value
+ * @return current hash value
*/
- virtual uint32_t nextHash() = 0;
-
- /**
- * @brief returns cuurent hash value
- * @return current Hash value
- */
- virtual uint32_t curHash() const = 0;
+ virtual const std::string& curHash() const = 0;
/**
* @brief Change Hash for current application
* and send notification to mobile
* @return updated_hash
*/
- virtual uint32_t UpdateHash() = 0;
+ virtual void UpdateHash() = 0;
virtual void CloseActiveMessage() = 0;
virtual bool IsFullscreen() const = 0;
- virtual bool MakeFullscreen() = 0;
+ virtual void ChangeSupportingAppHMIType() = 0;
virtual bool IsAudible() const = 0;
- virtual void MakeNotAudible() = 0;
- virtual bool allowed_support_navigation() const = 0;
- virtual void set_allowed_support_navigation(bool allow) = 0;
+ virtual bool is_navi() const = 0;
+ virtual void set_is_navi(bool allow) = 0;
virtual bool hmi_supports_navi_video_streaming() const = 0;
virtual void set_hmi_supports_navi_video_streaming(bool supports) = 0;
virtual bool hmi_supports_navi_audio_streaming() const = 0;
virtual void set_hmi_supports_navi_audio_streaming(bool supports) = 0;
+ bool is_streaming_allowed() const { return can_stream_;}
+ void set_streaming_allowed(bool can_stream) { can_stream_ = can_stream;}
+ bool streaming() const {return streaming_;}
+ void set_streaming(bool can_stream) { streaming_ = can_stream;}
+
+
virtual bool is_voice_communication_supported() const = 0;
virtual void set_voice_communication_supported(
bool is_voice_communication_supported) = 0;
virtual bool app_allowed() const = 0;
virtual bool has_been_activated() const = 0;
+ virtual bool set_activated(bool is_active) = 0;
virtual const Version& version() const = 0;
virtual void set_hmi_application_id(uint32_t hmi_app_id) = 0;
@@ -539,6 +547,62 @@ class Application : public virtual InitialApplicationData,
*/
virtual bool IsAudioApplication() const = 0;
+ /**
+ * @brief IsRegistered allows to distinguish if this
+ * application has been registered.
+ *
+ * @return true if registered, false otherwise.
+ */
+ bool IsRegistered() const { return app_state_ == kRegistered;}
+
+ /**
+ * @brief MarkRegistered allows to mark application as registered.
+ */
+ void MarkRegistered() {app_state_ = kRegistered;}
+
+ /**
+ * @brief MarkUnregistered allows to mark application as unregistered.
+ */
+ void MarkUnregistered() {app_state_ = kWaitingForRegistration;}
+
+ /**
+ * @brief schemaUrl contains application's url (for 4th protocol version)
+ *
+ * @return application's url.
+ */
+ std::string SchemaUrl() const {return url_;}
+
+ /**
+ * @brief SetShemaUrl allows to store schema url for application.
+ *
+ * @param url url to store.
+ */
+ void SetShemaUrl(const std::string& url) {url_ = url;}
+
+ /**
+ * @brief packagName allows to obtain application's package name.
+ *
+ * @return pakage name.
+ */
+ std::string PackageName() const {return package_name_;}
+
+ /**
+ * @brief SetPackageName allows to store package name for application.
+ *
+ * @param packageName package name to store.
+ */
+ void SetPackageName(const std::string& packageName) {
+ package_name_ = packageName;
+ }
+
+ /**
+ * @brief GetDeviceId allows to obtain device id which posseses
+ * by this application.
+ *
+ * @return device the device id.
+ */
+ std::string GetDeviceId() const {return device_id_;}
+
protected:
// interfaces for NAVI retry sequence
@@ -548,6 +612,14 @@ class Application : public virtual InitialApplicationData,
virtual void set_audio_stream_retry_active(bool active) = 0;
virtual void OnVideoStreamRetry() = 0;
virtual void OnAudioStreamRetry() = 0;
+
+ protected:
+ ApplicationState app_state_;
+ std::string url_;
+ std::string package_name_;
+ std::string device_id_;
+ bool can_stream_;
+ bool streaming_;
};
typedef utils::SharedPtr<Application> ApplicationSharedPtr;
diff --git a/src/components/application_manager/test/mock/include/application_manager/application_data_impl.h b/src/components/application_manager/test/mock/include/application_manager/application_data_impl.h
index 556eee4349..9977ad6dbd 100644
--- a/src/components/application_manager/test/mock/include/application_manager/application_data_impl.h
+++ b/src/components/application_manager/test/mock/include/application_manager/application_data_impl.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -34,6 +34,7 @@
#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_APPLICATION_DATA_IMPL_H_
#include <string>
+#include "utils/lock.h"
#include "smart_objects/smart_object.h"
#include "application_manager/application.h"
#include "interfaces/MOBILE_API.h"
@@ -49,14 +50,14 @@ class InitialApplicationDataImpl : public virtual Application {
const smart_objects::SmartObject* app_types() const;
const smart_objects::SmartObject* vr_synonyms() const;
- const smart_objects::SmartObject* mobile_app_id() const;
+ virtual std::string mobile_app_id() const;
const smart_objects::SmartObject* tts_name() const;
const smart_objects::SmartObject* ngn_media_screen_name() const;
const mobile_api::Language::eType& language() const;
const mobile_api::Language::eType& ui_language() const;
void set_app_types(const smart_objects::SmartObject& app_types);
void set_vr_synonyms(const smart_objects::SmartObject& vr_synonyms);
- void set_mobile_app_id(const smart_objects::SmartObject& mobile_app_id);
+ void set_mobile_app_id(const std::string& mobile_app_id);
void set_tts_name(const smart_objects::SmartObject& tts_name);
void set_ngn_media_screen_name(const smart_objects::SmartObject& ngn_name);
void set_language(const mobile_api::Language::eType& language);
@@ -65,7 +66,7 @@ class InitialApplicationDataImpl : public virtual Application {
protected:
smart_objects::SmartObject* app_types_;
smart_objects::SmartObject* vr_synonyms_;
- smart_objects::SmartObject* mobile_app_id_;
+ std::string mobile_app_id_;
smart_objects::SmartObject* tts_name_;
smart_objects::SmartObject* ngn_media_screen_name_;
mobile_api::Language::eType language_;
@@ -89,6 +90,7 @@ class DynamicApplicationDataImpl : public virtual Application {
const smart_objects::SmartObject* menu_title() const;
const smart_objects::SmartObject* menu_icon() const;
+ void load_global_properties(const smart_objects::SmartObject& properties_so);
void set_help_prompt(const smart_objects::SmartObject& help_prompt);
void set_timeout_prompt(const smart_objects::SmartObject& timeout_prompt);
void set_vr_help_title(const smart_objects::SmartObject& vr_help_title);
@@ -180,7 +182,7 @@ class DynamicApplicationDataImpl : public virtual Application {
*
* @return ChoiceSet map that is currently in use
*/
- inline const PerformChoiceSetMap& performinteraction_choice_set_map() const;
+ inline DataAccessor<PerformChoiceSetMap> performinteraction_choice_set_map() const;
/*
* @brief Retrieves choice set that is currently in use by perform
@@ -196,17 +198,17 @@ class DynamicApplicationDataImpl : public virtual Application {
/*
* @brief Retrieve application commands
*/
- inline const CommandsMap& commands_map() const;
+ inline DataAccessor<CommandsMap> commands_map() const;
/*
* @brief Retrieve application sub menus
*/
- inline const SubMenuMap& sub_menu_map() const;
+ inline DataAccessor<SubMenuMap> sub_menu_map() const;
/*
* @brief Retrieve application choice set map
*/
- inline const ChoiceSetMap& choice_set_map() const;
+ inline DataAccessor<ChoiceSetMap> choice_set_map() const;
/*
* @brief Sets perform interaction state
@@ -279,27 +281,41 @@ class DynamicApplicationDataImpl : public virtual Application {
CommandsMap commands_;
+ mutable sync_primitives::Lock commands_lock_;
SubMenuMap sub_menu_;
+ mutable sync_primitives::Lock sub_menu_lock_;
ChoiceSetMap choice_set_map_;
+ mutable sync_primitives::Lock choice_set_map_lock_;
PerformChoiceSetMap performinteraction_choice_set_map_;
+ mutable sync_primitives::Lock performinteraction_choice_set_lock_;
uint32_t is_perform_interaction_active_;
uint32_t perform_interaction_ui_corrid_;
bool is_reset_global_properties_active_;
int32_t perform_interaction_mode_;
private:
+ void SetGlobalProperties(const smart_objects::SmartObject& param,
+ void (DynamicApplicationData::*callback)(
+ const NsSmartDeviceLink::NsSmartObjects::SmartObject&));
DISALLOW_COPY_AND_ASSIGN(DynamicApplicationDataImpl);
};
-const CommandsMap& DynamicApplicationDataImpl::commands_map() const {
- return commands_;
+DataAccessor<CommandsMap> DynamicApplicationDataImpl::commands_map() const {
+ return DataAccessor<CommandsMap>(commands_, commands_lock_);
}
-const SubMenuMap& DynamicApplicationDataImpl::sub_menu_map() const {
- return sub_menu_;
+DataAccessor<SubMenuMap> DynamicApplicationDataImpl::sub_menu_map() const {
+ return DataAccessor<SubMenuMap>(sub_menu_, sub_menu_lock_);
}
-const ChoiceSetMap& DynamicApplicationDataImpl::choice_set_map() const {
- return choice_set_map_;
+DataAccessor<ChoiceSetMap> DynamicApplicationDataImpl::choice_set_map() const {
+ return DataAccessor<ChoiceSetMap>(choice_set_map_, choice_set_map_lock_);
+}
+
+DataAccessor<PerformChoiceSetMap>
+DynamicApplicationDataImpl::performinteraction_choice_set_map() const {
+ return DataAccessor<PerformChoiceSetMap>(
+ performinteraction_choice_set_map_,
+ performinteraction_choice_set_lock_);
}
uint32_t DynamicApplicationDataImpl::is_perform_interaction_active() const {
@@ -314,11 +330,6 @@ bool DynamicApplicationDataImpl::is_reset_global_properties_active() const {
return is_reset_global_properties_active_;
}
-const PerformChoiceSetMap&
-DynamicApplicationDataImpl::performinteraction_choice_set_map() const {
- return performinteraction_choice_set_map_;
-}
-
inline int32_t DynamicApplicationDataImpl::perform_interaction_mode() const {
return perform_interaction_mode_;
}
diff --git a/src/components/application_manager/test/mock/include/application_manager/application_impl.h b/src/components/application_manager/test/mock/include/application_manager/application_impl.h
index dadfce0929..d2d39c8e10 100644
--- a/src/components/application_manager/test/mock/include/application_manager/application_impl.h
+++ b/src/components/application_manager/test/mock/include/application_manager/application_impl.h
@@ -1,5 +1,5 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
+/*
+ * Copyright (c) 2015, Ford Motor Company
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -70,13 +70,16 @@ class ApplicationImpl : public virtual InitialApplicationDataImpl,
const smart_objects::SmartObject* active_message() const;
void CloseActiveMessage();
bool IsFullscreen() const;
- bool MakeFullscreen();
+
+ /**
+ * @brief change supporting COMMUNICATION NAVIGATION
+ */
+ virtual void ChangeSupportingAppHMIType();
bool IsAudible() const;
- void MakeNotAudible();
// navi
- bool allowed_support_navigation() const;
- void set_allowed_support_navigation(bool allow);
+ inline bool is_navi() const { return is_navi_; }
+ void set_is_navi(bool allow);
bool hmi_supports_navi_video_streaming() const;
void set_hmi_supports_navi_video_streaming(bool supports);
bool hmi_supports_navi_audio_streaming() const;
@@ -87,6 +90,7 @@ class ApplicationImpl : public virtual InitialApplicationDataImpl,
bool is_voice_communication_supported);
inline bool app_allowed() const;
bool has_been_activated() const;
+ bool set_activated(bool is_active);
const Version& version() const;
void set_hmi_application_id(uint32_t hmi_app_id);
@@ -149,15 +153,13 @@ class ApplicationImpl : public virtual InitialApplicationDataImpl,
virtual const std::set<mobile_apis::ButtonName::eType>& SubscribedButtons() const;
virtual const std::set<uint32_t>& SubscribesIVI() const;
- virtual uint32_t nextHash();
- virtual uint32_t curHash() const;
-
+ virtual const std::string& curHash() const;
/**
* @brief Change Hash for current application
* and send notification to mobile
* @return updated_hash
*/
- virtual uint32_t UpdateHash();
+ virtual void UpdateHash();
UsageStatistics& usage_report();
@@ -198,7 +200,7 @@ class ApplicationImpl : public virtual InitialApplicationDataImpl,
void OnVideoStreamRetry();
void OnAudioStreamRetry();
- uint32_t hash_val_;
+ std::string hash_val_;
uint32_t grammar_id_;
@@ -208,7 +210,7 @@ class ApplicationImpl : public virtual InitialApplicationDataImpl,
uint32_t app_id_;
smart_objects::SmartObject* active_message_;
bool is_media_;
- bool allowed_support_navigation_;
+ bool is_navi_;
bool hmi_supports_navi_video_streaming_;
bool hmi_supports_navi_audio_streaming_;
bool is_app_allowed_;
@@ -231,7 +233,6 @@ class ApplicationImpl : public virtual InitialApplicationDataImpl,
UsageStatistics usage_report_;
ProtocolVersion protocol_version_;
bool is_voice_communication_application_;
-
// NAVI retry stream
volatile bool is_video_stream_retry_active_;
volatile bool is_audio_stream_retry_active_;
diff --git a/src/components/application_manager/test/mock/include/application_manager/application_manager_impl.h b/src/components/application_manager/test/mock/include/application_manager/application_manager_impl.h
index 85048477a5..789e8047e8 100644
--- a/src/components/application_manager/test/mock/include/application_manager/application_manager_impl.h
+++ b/src/components/application_manager/test/mock/include/application_manager/application_manager_impl.h
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright (c) 2014, Ford Motor Company
* All rights reserved.
*
@@ -133,6 +133,13 @@ typedef threads::MessageLoopThread<utils::PrioritizedQueue<MessageToMobile> > To
typedef threads::MessageLoopThread<utils::PrioritizedQueue<MessageFromHmi> > FromHmiQueue;
typedef threads::MessageLoopThread<utils::PrioritizedQueue<MessageToHmi> > ToHmiQueue;
+// AudioPassThru
+typedef struct {
+std::vector<uint8_t> binary_data;
+int32_t session_key;
+} AudioData;
+typedef std::queue<AudioData> RawAudioDataQueue;
+typedef threads::MessageLoopThread<RawAudioDataQueue> AudioPassThruQueue;
}
typedef std::vector<std::string> RPCParams;
@@ -142,6 +149,7 @@ class ApplicationManagerImpl : public ApplicationManager,
public connection_handler::ConnectionHandlerObserver,
public impl::FromMobileQueue::Handler, public impl::ToMobileQueue::Handler,
public impl::FromHmiQueue::Handler, public impl::ToHmiQueue::Handler,
+ public impl::AudioPassThruQueue::Handler,
public utils::Singleton<ApplicationManagerImpl> {
friend class ResumeCtrl;
@@ -166,10 +174,13 @@ class ApplicationManagerImpl : public ApplicationManager,
const protocol_handler::ServiceType&));
MOCK_METHOD2(OnServiceEndedCallback, void (const int32_t&,
const protocol_handler::ServiceType&));
+ MOCK_METHOD1(OnApplicationFloodCallBack, void(const uint32_t&));
+ MOCK_METHOD1(OnMalformedMessageCallback, void(const uint32_t&));
MOCK_METHOD1(Handle, void (const impl::MessageFromMobile));
MOCK_METHOD1(Handle, void (const impl::MessageToMobile));
MOCK_METHOD1(Handle, void (const impl::MessageFromHmi));
MOCK_METHOD1(Handle, void (const impl::MessageToHmi));
+ MOCK_METHOD1(Handle, void (const impl::AudioData));
//ApplicationManager methods
MOCK_METHOD1(set_hmi_message_handler, void (hmi_message_handler::HMIMessageHandler*));
@@ -177,11 +188,13 @@ class ApplicationManagerImpl : public ApplicationManager,
MOCK_METHOD1(set_connection_handler, void (connection_handler::ConnectionHandler*));
//ApplicationManagerImpl methods:
-
+#ifdef TIME_TESTER
MOCK_METHOD1(SetTimeMetricObserver, void(AMMetricObserver*));
+#endif
MOCK_METHOD1(RegisterApplication,
ApplicationSharedPtr(const utils::SharedPtr<smart_objects::SmartObject>&));
MOCK_METHOD0(hmi_capabilities, HMICapabilities& ());
+ MOCK_METHOD1(ProcessQueryApp, void (const smart_objects::SmartObject& sm_object));
MOCK_METHOD1(ManageHMICommand, bool (const utils::SharedPtr<smart_objects::SmartObject>&));
MOCK_METHOD1(ManageMobileCommand, bool (const utils::SharedPtr<smart_objects::SmartObject>& message));
MOCK_METHOD1(SendMessageToHMI, bool (const utils::SharedPtr<smart_objects::SmartObject>&));
@@ -193,13 +206,12 @@ class ApplicationManagerImpl : public ApplicationManager,
MOCK_METHOD1(application_by_policy_id, ApplicationSharedPtr (const std::string&));
MOCK_METHOD1(RemoveAppDataFromHMI, bool(ApplicationSharedPtr));
MOCK_METHOD1(HeadUnitReset, void(mobile_api::AppInterfaceUnregisteredReason::eType));
- MOCK_METHOD0(HeadUnitSuspend, void());
MOCK_METHOD1(LoadAppDataToHMI, bool(ApplicationSharedPtr));
MOCK_METHOD1(ActivateApplication, bool (ApplicationSharedPtr));
- MOCK_METHOD1(PutApplicationInFull, mobile_api::HMILevel::eType (ApplicationSharedPtr));
+ MOCK_METHOD1(IsHmiLevelFullAllowed, mobile_api::HMILevel::eType (ApplicationSharedPtr));
MOCK_METHOD2(UnregisterRevokedApplication, void(uint32_t, mobile_apis::Result::eType));
MOCK_METHOD1(SetUnregisterAllApplicationsReason, void(mobile_api::AppInterfaceUnregisteredReason::eType));
- MOCK_METHOD1(UnregisterAllApplications, void(bool));
+ MOCK_METHOD0(UnregisterAllApplications, void());
MOCK_METHOD0(connection_handler, connection_handler::ConnectionHandler*());
MOCK_METHOD0(protocol_handler, protocol_handler::ProtocolHandler*());
MOCK_METHOD0(hmi_message_handler, hmi_message_handler::HMIMessageHandler*());
@@ -230,6 +242,8 @@ class ApplicationManagerImpl : public ApplicationManager,
MOCK_METHOD1(ReplaceMobileByHMIAppId, void(smart_objects::SmartObject&));
MOCK_METHOD0(resume_controller, ResumeCtrl&());
MOCK_METHOD1(IsVideoStreamingAllowed, bool(uint32_t));
+ MOCK_METHOD1(GetDefaultHmiLevel, mobile_api::HMILevel::eType (ApplicationSharedPtr));
+
MOCK_METHOD1(IsAudioStreamingAllowed, bool(uint32_t));
MOCK_METHOD1(Unmute, void(VRTTSSessionChanging));
MOCK_METHOD1(Mute, void(VRTTSSessionChanging));
@@ -238,7 +252,7 @@ class ApplicationManagerImpl : public ApplicationManager,
MOCK_METHOD1(removeNotification, void(const commands::Command*));
MOCK_METHOD1(addNotification, void(const CommandSharedPtr ));
MOCK_METHOD0(StartDevicesDiscovery, void());
- MOCK_METHOD2(SendAudioPassThroughNotification, void(uint32_t, std::vector<uint8_t>));
+ MOCK_METHOD2(SendAudioPassThroughNotification, void(uint32_t, std::vector<uint8_t>&));
MOCK_METHOD1(set_all_apps_allowed, void(const bool));
MOCK_CONST_METHOD0(all_apps_allowed, bool());
MOCK_METHOD1(set_vr_session_started, void(const bool));
@@ -252,6 +266,9 @@ class ApplicationManagerImpl : public ApplicationManager,
MOCK_METHOD0(OnTimerSendTTSGlobalProperties, void());
MOCK_METHOD0(CreatePhoneCallAppList, void());
MOCK_METHOD0(ResetPhoneCallAppList, void());
+ MOCK_METHOD2(ChangeAppsHMILevel, void(uint32_t, mobile_apis::HMILevel::eType));
+ MOCK_METHOD1(MakeAppNotAudible, void(uint32_t app_id));
+ MOCK_METHOD1(MakeAppFullScreen, bool(uint32_t app_id));
MOCK_METHOD1(AddAppToTTSGlobalPropertiesList, void(const uint32_t));
MOCK_METHOD1(RemoveAppFromTTSGlobalPropertiesList, void(const uint32_t));
MOCK_METHOD1(application_by_hmi_app, ApplicationSharedPtr(uint32_t));
@@ -260,16 +277,54 @@ class ApplicationManagerImpl : public ApplicationManager,
bool));
MOCK_METHOD4(UnregisterApplication, void(const uint32_t,mobile_apis::Result::eType,
bool, bool));
+ MOCK_METHOD1(OnAppUnauthorized, void(const uint32_t&));
MOCK_CONST_METHOD0(get_limited_media_application, ApplicationSharedPtr());
MOCK_CONST_METHOD0(get_limited_navi_application, ApplicationSharedPtr());
MOCK_CONST_METHOD0(get_limited_voice_application, ApplicationSharedPtr());
MOCK_CONST_METHOD1(DoesAudioAppWithSameHMITypeExistInFullOrLimited, bool(ApplicationSharedPtr));
MOCK_CONST_METHOD0(active_application, ApplicationSharedPtr ());
MOCK_METHOD0(OnApplicationListUpdateTimer, void());
+ MOCK_METHOD0(OnLowVoltage, void());
+ MOCK_METHOD0(OnWakeUp, void());
+ MOCK_METHOD1(OnUpdateHMIAppType, void(std::map<std::string, std::vector<std::string> >));
+
+ struct ApplicationsAppIdSorter {
+ bool operator() (const ApplicationSharedPtr lhs,
+ const ApplicationSharedPtr rhs) {
+ return lhs->app_id() < rhs->app_id();
+ }
+ };
+
+ // typedef for Applications list
+ typedef std::set<ApplicationSharedPtr,
+ ApplicationsAppIdSorter> ApplictionSet;
+
+ // typedef for Applications list iterator
+ typedef ApplictionSet::iterator ApplictionSetIt;
+
+ // typedef for Applications list const iterator
+ typedef ApplictionSet::const_iterator ApplictionSetConstIt;
+
+
+ /**
+ * Class for thread-safe access to applications list
+ */
+ class ApplicationListAccessor: public DataAccessor<ApplictionSet> {
+ public:
+ ApplicationListAccessor() :
+ DataAccessor<ApplictionSet>(ApplictionSet(),sync_primitives::Lock()) {
+ }
+ MOCK_CONST_METHOD0(applications, const ApplictionSet());
+ MOCK_METHOD0(begin, ApplictionSetConstIt());
+ MOCK_METHOD0(end, ApplictionSetConstIt());
+ MOCK_METHOD1(Erase, void(ApplicationSharedPtr));
+ MOCK_METHOD1(Insert, void(ApplicationSharedPtr));
+ MOCK_METHOD0(Empty, bool());
+ };
+
+ friend class ApplicationListAccessor;
+
- typedef const std::set<ApplicationSharedPtr> TAppList;
- typedef std::set<ApplicationSharedPtr>::iterator TAppListIt;
- typedef std::set<ApplicationSharedPtr>::const_iterator TAppListConstIt;
class ApplicationListUpdateTimer : public timer::TimerThread<ApplicationManagerImpl> {
public:
ApplicationListUpdateTimer(ApplicationManagerImpl* callee) :
@@ -280,16 +335,10 @@ class ApplicationManagerImpl : public ApplicationManager,
};
typedef utils::SharedPtr<ApplicationListUpdateTimer> ApplicationListUpdateTimerSptr;
- class ApplicationListAccessor {
- public:
- MOCK_METHOD0(applications, TAppList());
- private:
- };
- friend class ApplicationListAccessor;
private:
//FIXME(AKutsan) In resume_controller is is nessesery to change realisation for remove using application_list_
- std::set<ApplicationSharedPtr> application_list_;
+ ApplictionSet application_list_;
FRIEND_BASE_SINGLETON_CLASS(ApplicationManagerImpl);
};
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/command.h b/src/components/application_manager/test/mock/include/application_manager/commands/command.h
index 587c3d834c..742873a2c0 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/command.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/command.h
@@ -1,4 +1,4 @@
-/**
+/*
Copyright (c) 2014, Ford Motor Company
All rights reserved.
@@ -44,7 +44,6 @@ namespace application_manager {
**/
namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
-typedef utils::SharedPtr<smart_objects::SmartObject> MessageSharedPtr;
namespace commands {
@@ -108,8 +107,14 @@ class Command {
*/
virtual void onTimeOut() = 0;
+ enum CommandOrigin {
+ ORIGIN_SDL,
+ ORIGIN_MOBILE
+ };
};
+typedef smart_objects::SmartObjectSPtr MessageSharedPtr;
+
} // namespace commands
} // namespace application_manager
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/command_impl.h b/src/components/application_manager/test/mock/include/application_manager/commands/command_impl.h
index a34716bd62..c7b7cbb59c 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/command_impl.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/command_impl.h
@@ -1,4 +1,4 @@
-/**
+/*
Copyright (c) 2014, Ford Motor Company
All rights reserved.
@@ -121,7 +121,7 @@ class CommandImpl : public Command {
// members
static const int32_t hmi_protocol_type_;
static const int32_t mobile_protocol_type_;
- static const int32_t protocol_version_;
+ static const int32_t protocol_version_;
protected:
MessageSharedPtr message_;
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/command_notification_from_mobile_impl.h b/src/components/application_manager/test/mock/include/application_manager/commands/command_notification_from_mobile_impl.h
new file mode 100644
index 0000000000..9f95a52850
--- /dev/null
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/command_notification_from_mobile_impl.h
@@ -0,0 +1,64 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_NOTIFICATION_FROM_MOBILE_IMPL_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_NOTIFICATION_FROM_MOBILE_IMPL_H_
+
+#include "application_manager/commands/command_impl.h"
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+class SmartObject;
+}
+}
+
+namespace application_manager {
+
+namespace commands {
+
+class CommandNotificationFromMobileImpl : public CommandImpl {
+ public:
+ explicit CommandNotificationFromMobileImpl(const MessageSharedPtr& message);
+ virtual ~CommandNotificationFromMobileImpl();
+ virtual bool Init();
+ virtual bool CleanUp();
+ virtual void Run();
+ void SendNotification();
+ private:
+ DISALLOW_COPY_AND_ASSIGN(CommandNotificationFromMobileImpl);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_NOTIFICATION_FROM_MOBILE_IMPL_H_
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/command_request_impl.h b/src/components/application_manager/test/mock/include/application_manager/commands/command_request_impl.h
index 1bbba5aa0b..68fff9bb47 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/command_request_impl.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/command_request_impl.h
@@ -1,4 +1,4 @@
-/**
+/*
Copyright (c) 2014, Ford Motor Company
All rights reserved.
@@ -91,7 +91,7 @@ class CommandRequestImpl : public CommandImpl,
void SendResponse(const bool success,
const mobile_apis::Result::eType& result_code,
const char* info = NULL,
- const NsSmart::SmartObject* response_params = NULL);
+ const smart_objects::SmartObject* response_params = NULL);
/**
* @brief Check syntax of string from mobile
@@ -110,7 +110,7 @@ class CommandRequestImpl : public CommandImpl,
*
*/
void SendHMIRequest(const hmi_apis::FunctionID::eType& function_id,
- const NsSmart::SmartObject* msg_params = NULL,
+ const smart_objects::SmartObject* msg_params = NULL,
bool use_events = false);
/*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/activate_app_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/activate_app_request.h
index 3495ce1377..7d1b294c86 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/activate_app_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/activate_app_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -52,7 +52,7 @@ class ActivateAppRequest : public RequestToHMI, event_engine::EventObserver {
explicit ActivateAppRequest(const MessageSharedPtr& message);
/**
- * @brief Calback for response
+ * @brief Callback for response
*
* @param event - event response
**/
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/activate_app_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/activate_app_response.h
index 1df9bc095a..a15d317077 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/activate_app_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/activate_app_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/add_statistics_info_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/add_statistics_info_notification.h
index 1569af434d..1aa3b7a512 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/add_statistics_info_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/add_statistics_info_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2014, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/allow_all_apps_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/allow_all_apps_request.h
index 6c2db489ce..3d42b6d5a6 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/allow_all_apps_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/allow_all_apps_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/allow_all_apps_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/allow_all_apps_response.h
index 0eb8184fa8..ccc8d5ae7d 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/allow_all_apps_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/allow_all_apps_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/allow_app_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/allow_app_request.h
index 91228440a2..e90576a7df 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/allow_app_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/allow_app_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/allow_app_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/allow_app_response.h
index 5a24ac1a74..6bedf30a38 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/allow_app_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/allow_app_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/basic_communication_system_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/basic_communication_system_request.h
index d066df813e..867596f189 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/basic_communication_system_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/basic_communication_system_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/basic_communication_system_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/basic_communication_system_response.h
index 1948211c48..5c174eac85 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/basic_communication_system_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/basic_communication_system_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/button_get_capabilities_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/button_get_capabilities_request.h
index 3c9fbac684..639800a047 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/button_get_capabilities_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/button_get_capabilities_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/button_get_capabilities_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/button_get_capabilities_response.h
index 067954537d..7cd174477b 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/button_get_capabilities_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/button_get_capabilities_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/close_popup_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/close_popup_request.h
index 72ff8a2c5b..34722bc4f1 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/close_popup_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/close_popup_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/close_popup_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/close_popup_response.h
index 05318e3cb9..ce3a6d2936 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/close_popup_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/close_popup_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/get_system_info_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/get_system_info_request.h
index 8cb34718a1..8262dbb6fa 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/get_system_info_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/get_system_info_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/get_system_info_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/get_system_info_response.h
index f10c07c52f..70983d3ce3 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/get_system_info_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/get_system_info_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/get_urls.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/get_urls.h
index 9241446676..551ab20431 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/get_urls.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/get_urls.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/get_urls_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/get_urls_response.h
index 6b025142e2..956e5a788e 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/get_urls_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/get_urls_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/mixing_audio_supported_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/mixing_audio_supported_request.h
index 905b5b3836..2957693c9e 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/mixing_audio_supported_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/mixing_audio_supported_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/mixing_audio_supported_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/mixing_audio_supported_response.h
index c8bfe4e156..e2b5affe34 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/mixing_audio_supported_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/mixing_audio_supported_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_alert_maneuver_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_alert_maneuver_request.h
index 1e2a39df94..58f85f829a 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_alert_maneuver_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_alert_maneuver_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_alert_maneuver_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_alert_maneuver_response.h
index 41e0f623f1..11f46d5da8 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_alert_maneuver_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_alert_maneuver_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_audio_start_stream_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_audio_start_stream_request.h
index a321d32dd9..97de7102f7 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_audio_start_stream_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_audio_start_stream_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_is_ready_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_is_ready_request.h
index a31efc7fe4..e779ecb699 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_is_ready_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_is_ready_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_is_ready_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_is_ready_response.h
index 0fbad35154..3da6933bc3 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_is_ready_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_is_ready_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_send_location_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_send_location_request.h
index 9c91df648a..45474b532a 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_send_location_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_send_location_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_send_location_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_send_location_response.h
index 029d903192..ef9a605c36 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_send_location_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_send_location_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_show_constant_tbt_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_show_constant_tbt_request.h
index 5da47e580b..b866ce3e1f 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_show_constant_tbt_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_show_constant_tbt_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_show_constant_tbt_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_show_constant_tbt_response.h
index 4a26b26b09..3f212985f9 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_show_constant_tbt_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_show_constant_tbt_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_start_stream_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_start_stream_request.h
index f43b992219..5b73e2dbab 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_start_stream_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_start_stream_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_update_turn_list_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_update_turn_list_request.h
index 61beef1b3b..a5e2f8bf37 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_update_turn_list_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_update_turn_list_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_update_turn_list_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_update_turn_list_response.h
index 9e711b8be9..0e15a9175c 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_update_turn_list_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/navi_update_turn_list_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/notification_from_hmi.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/notification_from_hmi.h
index 219306d375..1dcae4366d 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/notification_from_hmi.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/notification_from_hmi.h
@@ -46,7 +46,7 @@ namespace application_manager {
namespace commands {
-namespace NsSmartObj = NsSmartDeviceLink::NsSmartObjects;
+namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
class NotificationFromHMI : public CommandImpl {
public:
@@ -57,7 +57,7 @@ class NotificationFromHMI : public CommandImpl {
virtual void Run();
void SendNotificationToMobile(const MessageSharedPtr& message);
void CreateHMIRequest(const hmi_apis::FunctionID::eType& function_id,
- const NsSmartObj::SmartObject& msg_params) const;
+ const smart_objects::SmartObject& msg_params) const;
private:
DISALLOW_COPY_AND_ASSIGN(NotificationFromHMI);
};
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_allow_sdl_functionality_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_allow_sdl_functionality_notification.h
index aa549638e4..6ec14e35b0 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_allow_sdl_functionality_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_allow_sdl_functionality_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_app_activated_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_app_activated_notification.h
index a8bdeb6c91..011df3832c 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_app_activated_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_app_activated_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_app_deactivated_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_app_deactivated_notification.h
index 4c56dc4158..8731fc43f1 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_app_deactivated_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_app_deactivated_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_app_permission_changed_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_app_permission_changed_notification.h
index 034efb7a8c..c6ea82a15c 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_app_permission_changed_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_app_permission_changed_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_app_permission_consent_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_app_permission_consent_notification.h
index a5037820cc..ea36d55b39 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_app_permission_consent_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_app_permission_consent_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2014, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_app_registered_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_app_registered_notification.h
index 4364aa9a35..1ebbfcd483 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_app_registered_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_app_registered_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_app_unregistered_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_app_unregistered_notification.h
index d8470af396..96fd19e9bc 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_app_unregistered_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_app_unregistered_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_button_event_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_button_event_notification.h
index a4657ea24e..0a56d7d924 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_button_event_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_button_event_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_button_press_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_button_press_notification.h
index 065cdc4a72..ce5f1de8f1 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_button_press_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_button_press_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_device_chosen_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_device_chosen_notification.h
index e980bfe41b..17ba26b7f7 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_device_chosen_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_device_chosen_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_device_state_changed_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_device_state_changed_notification.h
index 5c12bdfd9f..b87a6e2d9f 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_device_state_changed_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_device_state_changed_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2014, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_driver_distraction_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_driver_distraction_notification.h
index 77da5cf3b2..01a87aae05 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_driver_distraction_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_driver_distraction_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_exit_all_applications_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_exit_all_applications_notification.h
index c913509e5e..65d78f60c6 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_exit_all_applications_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_exit_all_applications_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_exit_application_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_exit_application_notification.h
index b78c0e2afe..479dd3a09c 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_exit_application_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_exit_application_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_file_removed_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_file_removed_notification.h
index b6b46041f8..cc47705c82 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_file_removed_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_file_removed_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_find_applications.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_find_applications.h
index 2499129b2c..f9fb9cdb21 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_find_applications.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_find_applications.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ignition_cycle_over_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ignition_cycle_over_notification.h
index ed0638f3cc..f8fccdc382 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ignition_cycle_over_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ignition_cycle_over_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_navi_tbt_client_state_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_navi_tbt_client_state_notification.h
index 6e42e1a0cd..a657ffcc68 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_navi_tbt_client_state_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_navi_tbt_client_state_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_play_tone_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_play_tone_notification.h
index 8e463c3276..ceba0528fa 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_play_tone_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_play_tone_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_policy_update.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_policy_update.h
index f71de540e5..81278fb75a 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_policy_update.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_policy_update.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2014, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_put_file_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_put_file_notification.h
index 839af785be..bc60284309 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_put_file_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_put_file_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ready_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ready_notification.h
index a3e2dd731d..24fc52deac 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ready_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ready_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_received_policy_update.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_received_policy_update.h
index 38a4470d22..0eeb28218f 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_received_policy_update.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_received_policy_update.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_record_start_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_record_start_notification.h
index 81f0b5bdda..67cccdd816 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_record_start_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_record_start_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_resume_audio_source_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_resume_audio_source_notification.h
index c27e2e5ee8..03f84d0907 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_resume_audio_source_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_resume_audio_source_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2014, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_sdl_close_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_sdl_close_notification.h
index e6b4418d6d..5b9ac04e8f 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_sdl_close_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_sdl_close_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_sdl_consent_needed_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_sdl_consent_needed_notification.h
index c9b93a4dcf..4f30873e4e 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_sdl_consent_needed_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_sdl_consent_needed_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_sdl_persistence_complete_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_sdl_persistence_complete_notification.h
index 5da06ef34c..6f8f3a6e1a 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_sdl_persistence_complete_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_sdl_persistence_complete_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_start_device_discovery.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_start_device_discovery.h
index 3e4dc1daf4..bfa14f67fc 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_start_device_discovery.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_start_device_discovery.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_status_update_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_status_update_notification.h
index ae85d13713..c123826886 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_status_update_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_status_update_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_system_context_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_system_context_notification.h
index b16df6069e..35d6f49daa 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_system_context_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_system_context_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_system_error_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_system_error_notification.h
index cb3fc12017..ee7df7acd6 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_system_error_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_system_error_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2014, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_system_info_changed_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_system_info_changed_notification.h
index d0bcadfaac..9b6c62782c 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_system_info_changed_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_system_info_changed_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_system_request_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_system_request_notification.h
index 6e3a0eea7f..f1d25e24a4 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_system_request_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_system_request_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_tts_language_change_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_tts_language_change_notification.h
index d9b55ac0c1..79ae9b496e 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_tts_language_change_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_tts_language_change_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_tts_reset_timeout_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_tts_reset_timeout_notification.h
index 3bafc920b7..11cb755544 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_tts_reset_timeout_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_tts_reset_timeout_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_tts_started_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_tts_started_notification.h
index 8cb6256074..c7e88ac558 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_tts_started_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_tts_started_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_tts_stopped_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_tts_stopped_notification.h
index 31fb6fb31c..bf5dc7fb9e 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_tts_stopped_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_tts_stopped_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ui_command_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ui_command_notification.h
index 1d0aaf3078..b4a0228c78 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ui_command_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ui_command_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ui_keyboard_input_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ui_keyboard_input_notification.h
index bb0a6a72d3..77b771065b 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ui_keyboard_input_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ui_keyboard_input_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ui_language_change_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ui_language_change_notification.h
index 85b8f60c4d..bcb661c89d 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ui_language_change_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ui_language_change_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ui_reset_timeout_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ui_reset_timeout_notification.h
index 511606d077..f97c8768b5 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ui_reset_timeout_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ui_reset_timeout_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ui_touch_event_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ui_touch_event_notification.h
index 3231d1ca29..6d8005e12f 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ui_touch_event_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_ui_touch_event_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_update_device_list.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_update_device_list.h
index c0d355c925..f56d01a5cc 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_update_device_list.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_update_device_list.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_acc_pedal_position_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_acc_pedal_position_notification.h
index 04bb3e54bc..d591ab2be6 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_acc_pedal_position_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_acc_pedal_position_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_belt_status_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_belt_status_notification.h
index 3cfb048cdc..f901462fdf 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_belt_status_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_belt_status_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_body_information_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_body_information_notification.h
index b9ecf5a34b..a0bc31778a 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_body_information_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_body_information_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_device_status_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_device_status_notification.h
index 925989e8c6..0e24616f3e 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_device_status_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_device_status_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_driver_braking_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_driver_braking_notification.h
index 7baea90651..0290388756 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_driver_braking_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_driver_braking_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_engine_torque_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_engine_torque_notification.h
index 33dd824c6e..8307e5359e 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_engine_torque_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_engine_torque_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_external_temperature_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_external_temperature_notification.h
index 207302a373..be5b086853 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_external_temperature_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_external_temperature_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_fuel_level_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_fuel_level_notification.h
index 535758db25..83e6f845e0 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_fuel_level_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_fuel_level_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_fuel_level_state_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_fuel_level_state_notification.h
index 92dffd89b3..42a6b8e0d9 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_fuel_level_state_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_fuel_level_state_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_gps_data_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_gps_data_notification.h
index d8f2a768fc..01c2cf60b6 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_gps_data_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_gps_data_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_head_lamp_status_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_head_lamp_status_notification.h
index 47802e97eb..dc80b33ddd 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_head_lamp_status_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_head_lamp_status_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_instant_fuel_consumption_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_instant_fuel_consumption_notification.h
index fe38412980..c4e5accead 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_instant_fuel_consumption_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_instant_fuel_consumption_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_my_key_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_my_key_notification.h
index d636b6e779..e2d9d91ae1 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_my_key_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_my_key_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_odometer_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_odometer_notification.h
index 1cf4c25878..7c1c691ac5 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_odometer_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_odometer_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_prndl_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_prndl_notification.h
index 5a3a136374..bf2ca83f8f 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_prndl_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_prndl_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_rpm_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_rpm_notification.h
index 80dea2a6e2..ebcfe3a86c 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_rpm_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_rpm_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_speed_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_speed_notification.h
index 19bffabf4f..37bf66e4d0 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_speed_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_speed_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_steering_wheel_angle_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_steering_wheel_angle_notification.h
index 0826cb6c6f..bf01b2bf76 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_steering_wheel_angle_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_steering_wheel_angle_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_tire_pressure_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_tire_pressure_notification.h
index ba8eceefc3..1c1e00d893 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_tire_pressure_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_tire_pressure_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_vehicle_data_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_vehicle_data_notification.h
index 30ad9d6acc..59da271a04 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_vehicle_data_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_vehicle_data_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_vin_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_vin_notification.h
index 0cb5fb17d2..06b73c508d 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_vin_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_vin_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_wiper_status_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_wiper_status_notification.h
index c7a1a6bd62..399b38112e 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_wiper_status_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vi_wiper_status_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vr_command_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vr_command_notification.h
index 677bc26727..37bc2556f8 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vr_command_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vr_command_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vr_language_change_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vr_language_change_notification.h
index 24c60c32d9..be408f0aa0 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vr_language_change_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vr_language_change_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vr_started_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vr_started_notification.h
index cc78f010b6..5ae5ace27b 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vr_started_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vr_started_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vr_stopped_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vr_stopped_notification.h
index 2ee8ad429e..311ee8acde 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vr_stopped_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/on_vr_stopped_notification.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/request_from_hmi.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/request_from_hmi.h
index 39ebd95819..31dabf7617 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/request_from_hmi.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/request_from_hmi.h
@@ -1,4 +1,4 @@
- /**
+ /*
Copyright (c) 2014, Ford Motor Company
All rights reserved.
@@ -48,14 +48,29 @@
namespace NsSmart = NsSmartDeviceLink::NsSmartObjects;
- class RequestFromHMI : public CommandImpl {
+ class RequestFromHMI : public CommandImpl, public event_engine::EventObserver {
public:
explicit RequestFromHMI(const MessageSharedPtr& message);
virtual ~RequestFromHMI();
virtual bool Init();
virtual bool CleanUp();
virtual void Run();
-
+ virtual void on_event(const event_engine::Event& event);
+ /**
+ * @brief SendResponse allows to send response to hmi
+ *
+ * @param success the response result.
+ *
+ * @param correlation_id the correlation id for the rfesponse.
+ *
+ * @param function_id the function id for which response will be sent
+ *
+ * @param result_code the result code.
+ */
+ void SendResponse(bool success,
+ uint32_t correlation_id,
+ hmi_apis::FunctionID::eType function_id,
+ hmi_apis::Common_Result::eType result_code);
private:
DISALLOW_COPY_AND_ASSIGN(RequestFromHMI);
};
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/request_to_hmi.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/request_to_hmi.h
index 3a9de4b7b5..fe359182dd 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/request_to_hmi.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/request_to_hmi.h
@@ -1,4 +1,4 @@
-/**
+/*
Copyright (c) 2014, Ford Motor Company
All rights reserved.
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/response_from_hmi.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/response_from_hmi.h
index 21497a1335..7769caa0a7 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/response_from_hmi.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/response_from_hmi.h
@@ -1,4 +1,4 @@
-/**
+/*
Copyright (c) 2014, Ford Motor Company
All rights reserved.
@@ -46,7 +46,7 @@ namespace application_manager {
namespace commands {
-namespace NsSmart = NsSmartDeviceLink::NsSmartObjects;
+namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
class ResponseFromHMI : public CommandImpl {
public:
@@ -64,7 +64,7 @@ class ResponseFromHMI : public CommandImpl {
* @param msg_params HMI request msg params
*/
void CreateHMIRequest(const hmi_apis::FunctionID::eType& function_id,
- const NsSmart::SmartObject& msg_params) const;
+ const smart_objects::SmartObject& msg_params) const;
private:
DISALLOW_COPY_AND_ASSIGN(ResponseFromHMI);
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_activate_app_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_activate_app_request.h
index db4a93b0b5..77960e5f60 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_activate_app_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_activate_app_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -61,7 +61,20 @@ class SDLActivateAppRequest : public RequestFromHMI {
**/
virtual void Run();
+ /**
+ * @brief onTimeOut allows to process case when timeout has appeared
+ * during request execution.
+ */
+ virtual void onTimeOut();
+
+ /**
+ * @brief on_event allows to handle events
+ *
+ * @param event event type that current request subscribed on.
+ */
+ virtual void on_event(const event_engine::Event& event);
private:
+ uint32_t app_id() const;
DISALLOW_COPY_AND_ASSIGN(SDLActivateAppRequest);
};
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_activate_app_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_activate_app_response.h
index 63adc6c0d3..bf0789e60e 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_activate_app_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_activate_app_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_get_list_of_permissions_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_get_list_of_permissions_request.h
index 5da473b1a7..7c8f10529b 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_get_list_of_permissions_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_get_list_of_permissions_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_get_list_of_permissions_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_get_list_of_permissions_response.h
index 5de9fc0ea8..452784d92c 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_get_list_of_permissions_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_get_list_of_permissions_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_get_status_update_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_get_status_update_request.h
index a098e0a113..cb7d37d336 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_get_status_update_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_get_status_update_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_get_status_update_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_get_status_update_response.h
index 6299cde630..a3fc0862b5 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_get_status_update_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_get_status_update_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_get_user_friendly_message_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_get_user_friendly_message_request.h
index b729a16170..96f46cfa3d 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_get_user_friendly_message_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_get_user_friendly_message_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_get_user_friendly_message_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_get_user_friendly_message_response.h
index bb7a7f8e20..4cf7be56c9 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_get_user_friendly_message_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_get_user_friendly_message_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_policy_update.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_policy_update.h
index ee2b9865c8..481f37a257 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_policy_update.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_policy_update.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_policy_update_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_policy_update_response.h
index b6ab925fd6..d3f7105523 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_policy_update_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/sdl_policy_update_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_change_registration_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_change_registration_request.h
index a587af950b..a25309e5d5 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_change_registration_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_change_registration_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_change_registration_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_change_registration_response.h
index 3a9e9fda51..73ad180286 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_change_registration_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_change_registration_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_get_capabilities_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_get_capabilities_request.h
index 73edd9de73..543945e8ef 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_get_capabilities_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_get_capabilities_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_get_capabilities_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_get_capabilities_response.h
index 71f85d68e3..2fc16d1a40 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_get_capabilities_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_get_capabilities_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_get_language_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_get_language_request.h
index 94e38ec473..e0ae0da0c4 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_get_language_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_get_language_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_get_language_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_get_language_response.h
index bd67d64f32..0d9df07ae6 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_get_language_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_get_language_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_get_supported_languages_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_get_supported_languages_request.h
index ff80dd2389..136edbb5f4 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_get_supported_languages_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_get_supported_languages_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_get_supported_languages_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_get_supported_languages_response.h
index 244f223460..38e3c673bb 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_get_supported_languages_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_get_supported_languages_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_is_ready_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_is_ready_request.h
index dc58d852ea..676faabc01 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_is_ready_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_is_ready_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_is_ready_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_is_ready_response.h
index 375e5a5d1f..12bb3bb870 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_is_ready_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_is_ready_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_set_global_properties_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_set_global_properties_request.h
index b398e0b2d2..92a260d77f 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_set_global_properties_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_set_global_properties_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_set_global_properties_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_set_global_properties_response.h
index adf0b70276..0766decf9f 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_set_global_properties_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_set_global_properties_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_speak_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_speak_request.h
index 326c638f4d..f5555f6495 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_speak_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_speak_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_speak_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_speak_response.h
index e22c549871..541ea0d2ab 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_speak_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_speak_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_stop_speaking_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_stop_speaking_request.h
index 0d82121fd7..46c464425d 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_stop_speaking_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_stop_speaking_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_stop_speaking_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_stop_speaking_response.h
index b9055bfbe5..aab8ca8c5b 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_stop_speaking_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/tts_stop_speaking_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_add_command_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_add_command_request.h
index ffd6eeeefd..6b857818e7 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_add_command_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_add_command_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_add_command_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_add_command_response.h
index f84b71d0f1..c6a02fdd03 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_add_command_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_add_command_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_add_submenu_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_add_submenu_request.h
index 1227de0463..bba9a4c47e 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_add_submenu_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_add_submenu_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_add_submenu_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_add_submenu_response.h
index 1b3a10729e..0c4afc2fa3 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_add_submenu_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_add_submenu_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_alert_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_alert_request.h
index 7395eb19e1..72cd733eb5 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_alert_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_alert_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_alert_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_alert_response.h
index 1d17d98095..97eb2ba94b 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_alert_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_alert_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_change_registration_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_change_registration_request.h
index 51276b7b0f..8e68dee2ec 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_change_registration_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_change_registration_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_change_registration_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_change_registration_response.h
index edb7574e8d..50b092639b 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_change_registration_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_change_registration_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_delete_command_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_delete_command_request.h
index 398f78c28f..9eceb2eb6f 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_delete_command_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_delete_command_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_delete_command_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_delete_command_response.h
index bb19811908..c4d7ab6cac 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_delete_command_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_delete_command_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_delete_submenu_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_delete_submenu_request.h
index 1b3747234b..24bf5878ff 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_delete_submenu_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_delete_submenu_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_delete_submenu_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_delete_submenu_response.h
index 8bbab99468..05d77c82d7 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_delete_submenu_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_delete_submenu_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_end_audio_pass_thru_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_end_audio_pass_thru_request.h
index 9e8e11c1ad..06637fc8d4 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_end_audio_pass_thru_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_end_audio_pass_thru_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_end_audio_pass_thru_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_end_audio_pass_thru_response.h
index 740fc5501d..6d5594f69f 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_end_audio_pass_thru_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_end_audio_pass_thru_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_get_capabilities_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_get_capabilities_request.h
index 2d0469d6a6..ad9a566078 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_get_capabilities_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_get_capabilities_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_get_capabilities_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_get_capabilities_response.h
index dc6052e049..ce6ad6f7ef 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_get_capabilities_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_get_capabilities_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_get_language_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_get_language_request.h
index 4fca4826be..7371cd1031 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_get_language_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_get_language_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_get_language_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_get_language_response.h
index ea43e3856d..f6536452ce 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_get_language_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_get_language_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_get_supported_languages_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_get_supported_languages_request.h
index cc0e70feae..d0975e68da 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_get_supported_languages_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_get_supported_languages_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_get_supported_languages_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_get_supported_languages_response.h
index 15e400687f..c888c7b208 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_get_supported_languages_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_get_supported_languages_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_is_ready_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_is_ready_request.h
index 5e2cb7ef9f..7cb4287244 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_is_ready_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_is_ready_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_is_ready_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_is_ready_response.h
index bc7210f2a8..64106654e9 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_is_ready_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_is_ready_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_request.h
index 94bc4827a9..69566324f2 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_response.h
index 04afedfba0..c3283101f9 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_perform_interaction_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_perform_interaction_request.h
index 0d63139437..d8e2f6c682 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_perform_interaction_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_perform_interaction_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_perform_interaction_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_perform_interaction_response.h
index 32a87c73c2..04286897a3 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_perform_interaction_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_perform_interaction_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_scrollable_message_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_scrollable_message_request.h
index 6f23d3b21c..06bfadbae7 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_scrollable_message_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_scrollable_message_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_scrollable_message_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_scrollable_message_response.h
index 7bf15a0511..6d6d09c313 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_scrollable_message_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_scrollable_message_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_app_icon_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_app_icon_request.h
new file mode 100644
index 0000000000..96f91d0f82
--- /dev/null
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_app_icon_request.h
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_ICON_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_ICON_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UISetIconRequest command class
+ **/
+class UISetAppIconRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief UISetIconRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UISetAppIconRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief UISetIconRequest class destructor
+ **/
+ virtual ~UISetAppIconRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UISetAppIconRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_ICON_REQUEST_H_
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_app_icon_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_app_icon_response.h
new file mode 100644
index 0000000000..b323a91c36
--- /dev/null
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_app_icon_response.h
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_ICON_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_ICON_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UISetIconResponse command class
+ **/
+class UISetAppIconResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief UISetIconResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UISetAppIconResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief UISetIconResponse class destructor
+ **/
+ virtual ~UISetAppIconResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UISetAppIconResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_ICON_RESPONSE_H_
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_display_layout_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_display_layout_response.h
index 74df2030e5..3e7a898af0 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_display_layout_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_display_layout_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_global_properties_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_global_properties_request.h
index f3f7d0e733..8b54e85332 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_global_properties_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_global_properties_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_global_properties_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_global_properties_response.h
index bc00397e37..b3cb38d49f 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_global_properties_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_global_properties_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_media_clock_timer_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_media_clock_timer_request.h
index 44cbbbfcf9..443fc8d1a7 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_media_clock_timer_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_media_clock_timer_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_media_clock_timer_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_media_clock_timer_response.h
index dd46f128d9..9358707117 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_media_clock_timer_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_set_media_clock_timer_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_show_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_show_request.h
index 6f22263e61..136a99622b 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_show_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_show_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_show_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_show_response.h
index a6391fa6c9..4a9b49253e 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_show_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_show_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_slider_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_slider_request.h
index 5cb31b4a95..8a3b37bfef 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_slider_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_slider_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_slider_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_slider_response.h
index aae5408e21..2384f248aa 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_slider_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/ui_slider_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/update_app_list_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/update_app_list_request.h
index d2307232e3..b606134409 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/update_app_list_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/update_app_list_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/update_app_list_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/update_app_list_response.h
index 3e6a1d78a2..135481cb0b 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/update_app_list_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/update_app_list_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/update_device_list_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/update_device_list_request.h
index e9a32e9fc4..f645d312c5 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/update_device_list_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/update_device_list_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/update_device_list_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/update_device_list_response.h
index d4191c8bee..6ea2c1e528 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/update_device_list_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/update_device_list_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/update_sdl_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/update_sdl_request.h
index 506c137861..f84f93f2ed 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/update_sdl_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/update_sdl_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/update_sdl_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/update_sdl_response.h
index 729483cfa1..b0d370ecfd 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/update_sdl_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/update_sdl_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_diagnostic_message_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_diagnostic_message_request.h
index 90e1e145c2..c60533d2ea 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_diagnostic_message_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_diagnostic_message_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_diagnostic_message_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_diagnostic_message_response.h
index f332a32812..027e007e42 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_diagnostic_message_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_diagnostic_message_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_dtcs_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_dtcs_request.h
index 93f046d7d6..170eb895fd 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_dtcs_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_dtcs_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_dtcs_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_dtcs_response.h
index 9ee7fac44a..3ba4656d5b 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_dtcs_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_dtcs_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_vehicle_data_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_vehicle_data_request.h
index 9cb964981c..7413b6bf3b 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_vehicle_data_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_vehicle_data_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_vehicle_data_request_template.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_vehicle_data_request_template.h
index 951bf0c334..af991186fd 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_vehicle_data_request_template.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_vehicle_data_request_template.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_vehicle_data_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_vehicle_data_response.h
index 952b0fb4d3..1f9736b56a 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_vehicle_data_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_vehicle_data_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_vehicle_data_response_template.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_vehicle_data_response_template.h
index ecd465365a..156664cac3 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_vehicle_data_response_template.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_vehicle_data_response_template.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_vehicle_type_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_vehicle_type_request.h
index 876f7d2e55..67d8ae046c 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_vehicle_type_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_vehicle_type_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_vehicle_type_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_vehicle_type_response.h
index 8b632182f0..b36b193418 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_vehicle_type_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_get_vehicle_type_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_is_ready_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_is_ready_request.h
index e905cf4c09..061681029a 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_is_ready_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_is_ready_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_is_ready_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_is_ready_response.h
index e13e368b34..52e00f85da 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_is_ready_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_is_ready_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_read_did_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_read_did_request.h
index 336ad4443a..6520db5e7d 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_read_did_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_read_did_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_read_did_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_read_did_response.h
index af66505174..0855be454b 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_read_did_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_read_did_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request.h
index ef14a05f2d..1eb06c6217 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request_template.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request_template.h
index bcfa2f6f1a..fc9b7dd2ea 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request_template.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request_template.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response.h
index 057fd52e13..b5e2788f32 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response_template.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response_template.h
index 740d8c386a..64f3c51cbc 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response_template.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response_template.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request.h
index 18d118fadb..1320ae477a 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request_template.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request_template.h
index d604d4d536..9aa529d407 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request_template.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request_template.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response.h
index b71b8241f5..8818709afe 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response_template.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response_template.h
index 8730cc0361..3dfcc763cb 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response_template.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response_template.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_add_command_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_add_command_request.h
index 3675cfb153..9fdc3f776f 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_add_command_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_add_command_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_add_command_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_add_command_response.h
index 328e8a2058..7418ed5865 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_add_command_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_add_command_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_change_registration_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_change_registration_request.h
index 5e69b4c18b..53584ee970 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_change_registration_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_change_registration_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_change_registration_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_change_registration_response.h
index f79da44598..d71a14da34 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_change_registration_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_change_registration_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_delete_command_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_delete_command_request.h
index b843f498f8..91a5dc7d99 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_delete_command_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_delete_command_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_delete_command_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_delete_command_response.h
index 11a681bd5e..ad8c82e38c 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_delete_command_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_delete_command_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_get_capabilities_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_get_capabilities_request.h
index 7771bdd141..676967083f 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_get_capabilities_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_get_capabilities_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_get_capabilities_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_get_capabilities_response.h
index ced60c9d65..8b88eb4e3b 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_get_capabilities_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_get_capabilities_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_get_language_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_get_language_request.h
index 955355d06c..9dd9133ffd 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_get_language_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_get_language_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_get_language_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_get_language_response.h
index 2bd59b8be2..d9c4fc2126 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_get_language_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_get_language_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_get_supported_languages_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_get_supported_languages_request.h
index 79105978b0..0a010cdfec 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_get_supported_languages_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_get_supported_languages_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_get_supported_languages_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_get_supported_languages_response.h
index 38f5056225..dbbe57ba36 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_get_supported_languages_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_get_supported_languages_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_is_ready_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_is_ready_request.h
index ac734638b1..e66c9c36a5 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_is_ready_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_is_ready_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_is_ready_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_is_ready_response.h
index 4f4f86d84c..a9b1a68455 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_is_ready_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_is_ready_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_perform_interaction_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_perform_interaction_request.h
index b71b31baf5..b819fdb927 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_perform_interaction_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_perform_interaction_request.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_perform_interaction_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_perform_interaction_response.h
index fbf5b87cb6..ffbbd613e2 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_perform_interaction_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/hmi/vr_perform_interaction_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/mobile/add_command_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/add_command_request.h
index fc683988bf..2c36d8425e 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/mobile/add_command_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/add_command_request.h
@@ -131,6 +131,8 @@ class AddCommandRequest : public CommandRequestImpl {
*/
bool IsWhiteSpaceExist();
+ inline bool BothSend() const;
+
bool send_ui_;
bool send_vr_;
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/mobile/change_registration_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/change_registration_request.h
index 3de3e8fc2f..d36f16a976 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/mobile/change_registration_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/change_registration_request.h
@@ -105,9 +105,9 @@ class ChangeRegistrationRequest : public CommandRequestImpl {
/*
* @brief Checks result codes
*
- * @return true if one of result codes is success
+ * @return true if all of result codes is success
*/
- static bool WasAnySuccess(const hmi_apis::Common_Result::eType ui,
+ bool AllHmiResponsesSuccess(const hmi_apis::Common_Result::eType ui,
const hmi_apis::Common_Result::eType vr,
const hmi_apis::Common_Result::eType tts);
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/mobile/generic_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/generic_response.h
index c3b39bf917..1fb931d508 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/mobile/generic_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/generic_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/mobile/on_hmi_status_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/on_hmi_status_notification.h
index aefa7f9c24..11d82925ec 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/mobile/on_hmi_status_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/on_hmi_status_notification.h
@@ -63,7 +63,7 @@ class OnHMIStatusNotification : public CommandNotificationImpl {
**/
virtual void Run();
- private:
+private:
DISALLOW_COPY_AND_ASSIGN(OnHMIStatusNotification);
};
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/mobile/on_hmi_status_notification_from_mobile.h b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/on_hmi_status_notification_from_mobile.h
new file mode 100644
index 0000000000..ed3cb9147d
--- /dev/null
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/on_hmi_status_notification_from_mobile.h
@@ -0,0 +1,75 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_HMI_STATUS_NOTIFICATION_FROM_MOBILE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_HMI_STATUS_NOTIFICATION_FROM_MOBILE_H_
+
+#include "application_manager/commands/command_notification_from_mobile_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnHMIStatusNotificationFromMobile class
+ **/
+class OnHMIStatusNotificationFromMobile :
+ public CommandNotificationFromMobileImpl {
+ public:
+ /**
+ * @brief OnHMIStatusNotificationFromMobile class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnHMIStatusNotificationFromMobile(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnHMIStatusNotificationFromMobile class destructor
+ **/
+ virtual ~OnHMIStatusNotificationFromMobile();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+private:
+ static bool is_apps_requested_;
+ DISALLOW_COPY_AND_ASSIGN(OnHMIStatusNotificationFromMobile);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_HMI_STATUS_NOTIFICATION_FROM_MOBILE_H_
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/mobile/on_system_request_notification.h b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/on_system_request_notification.h
index 183b673afd..7eee611700 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/mobile/on_system_request_notification.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/on_system_request_notification.h
@@ -64,8 +64,7 @@ class OnSystemRequestNotification : public CommandNotificationImpl {
* @brief Execute command
**/
virtual void Run();
-
- private:
+ private:
DISALLOW_COPY_AND_ASSIGN(OnSystemRequestNotification);
};
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/mobile/perform_interaction_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/perform_interaction_request.h
index ce85a70176..9109172833 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/mobile/perform_interaction_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/perform_interaction_request.h
@@ -80,12 +80,6 @@ class PerformInteractionRequest : public CommandRequestImpl {
*/
virtual void on_event(const event_engine::Event& event);
- /**
- * @brief Timer callback function
- *
- */
- void onTimer();
-
private:
/*
* @brief Function is called by RequestController when request execution time
@@ -204,14 +198,13 @@ class PerformInteractionRequest : public CommandRequestImpl {
bool CheckChoiceIDFromResponse(ApplicationSharedPtr app, int32_t choice_id);
// members
- timer::TimerThread<PerformInteractionRequest> timer_;
-
- DISALLOW_COPY_AND_ASSIGN(PerformInteractionRequest);
mobile_apis::Result::eType vr_perform_interaction_code_;
mobile_apis::InteractionMode::eType interaction_mode_;
- bool ui_response_recived;
- bool vr_response_recived;
+ bool ui_response_recived_;
+ bool vr_response_recived_;
+ bool app_pi_was_active_before_;
+ DISALLOW_COPY_AND_ASSIGN(PerformInteractionRequest);
};
} // namespace commands
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/mobile/register_app_interface_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/register_app_interface_request.h
index 9c1d46368f..fcee810606 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/mobile/register_app_interface_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/register_app_interface_request.h
@@ -72,14 +72,6 @@ class RegisterAppInterfaceRequest : public CommandRequestImpl {
* @brief Execute command
**/
virtual void Run();
- // virtual void cleanUp() = 0;
-
- /**
- * @brief Interface method that is called whenever new event received
- *
- * @param event The received event
- */
- virtual void on_event(const event_engine::Event& event);
/**
* @brief Sends RegisterAppInterface response to mobile
@@ -99,23 +91,6 @@ class RegisterAppInterfaceRequest : public CommandRequestImpl {
bool IsApplicationWithSameAppIdRegistered();
/*
- * @brief Check for some request param. names restrictions, e.g. for
- * newline characters
- *
- * return SUCCESS if param name pass the check, otherwise - error code
- * will be returned
- */
- mobile_apis::Result::eType CheckRestrictions() const;
-
- /*
- * @brief Removes hidden symbols and spaces
- *
- * return cleared copy of param name
- */
- std::string ClearParamName(std::string param_name) const;
-
-
- /*
* @brief Check new application parameters (name, tts, vr) for
* coincidence with already known parameters of registered applications
*
@@ -163,6 +138,8 @@ class RegisterAppInterfaceRequest : public CommandRequestImpl {
bool IsWhiteSpaceExist();
std::string response_info_;
+ mobile_apis::Result::eType result_checking_app_hmi_type_;
+
DISALLOW_COPY_AND_ASSIGN(RegisterAppInterfaceRequest);
};
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/mobile/scrollable_message_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/scrollable_message_response.h
index 36fd311ad6..f0c0ea8f7a 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/mobile/scrollable_message_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/scrollable_message_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/mobile/send_location_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/send_location_request.h
index e178e284d9..581c779aa5 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/mobile/send_location_request.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/send_location_request.h
@@ -67,6 +67,7 @@ class SendLocationRequest : public CommandRequestImpl {
*/
virtual void on_event(const event_engine::Event& event);
+
private:
/**
@@ -76,7 +77,7 @@ class SendLocationRequest : public CommandRequestImpl {
*/
bool IsWhiteSpaceExist();
-
+ bool CheckHMICapabilities(std::list<hmi_apis::Common_TextFieldName::eType>& fields_names);
DISALLOW_COPY_AND_ASSIGN(SendLocationRequest);
};
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/mobile/send_location_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/send_location_response.h
index 6e18aa5f27..fe88a2af29 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/mobile/send_location_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/send_location_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/mobile/set_app_icon_request.h b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/set_app_icon_request.h
new file mode 100644
index 0000000000..fdc6d6f1b6
--- /dev/null
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/set_app_icon_request.h
@@ -0,0 +1,101 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_ICON_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_ICON_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief SetIconRequest command class
+ **/
+class SetAppIconRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief Contains information about the type of image
+ */
+ typedef enum {
+ STATIC = 0,
+ DYNAMIC
+ } ImageType;
+
+ /**
+ * @brief SetIconRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit SetAppIconRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief SetIconRequest class destructor
+ **/
+ virtual ~SetAppIconRequest();
+
+ /**
+ * @brief Interface method that is called whenever new event received
+ *
+ * @param event The received event
+ */
+ void on_event(const event_engine::Event& event);
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ /**
+ * @brief Copies file to icon storage
+ * @param path_to_file Path to icon
+ */
+ void CopyToIconStorage(const std::string& path_to_file) const;
+
+ /**
+ * @brief Remove oldest icons
+ * @param storage Path to icons storage
+ * @param icons_amount Amount of icons to be deleted
+ */
+ void RemoveOldestIcons(const std::string& storage,
+ const uint32_t icons_amount) const;
+ DISALLOW_COPY_AND_ASSIGN(SetAppIconRequest);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_ICON_REQUEST_H_
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/mobile/set_app_icon_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/set_app_icon_response.h
new file mode 100644
index 0000000000..02be7fe37e
--- /dev/null
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/set_app_icon_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_ICON_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_ICON_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief SetIconResponse command class
+ **/
+class SetAppIconResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief SetIconResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit SetAppIconResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief SetIconResponse class destructor
+ **/
+ virtual ~SetAppIconResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(SetAppIconResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_ICON_RESPONSE_H_
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/mobile/set_media_clock_timer_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/set_media_clock_timer_response.h
index e835c17c80..46844bd2f3 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/mobile/set_media_clock_timer_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/set_media_clock_timer_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/mobile/show_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/show_response.h
index 970b54747e..c327bc3b3a 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/mobile/show_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/show_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/mobile/slider_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/slider_response.h
index b7821adca2..1888388e7c 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/mobile/slider_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/slider_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/commands/mobile/speak_response.h b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/speak_response.h
index ef9b8f89d3..cbf1ec40de 100644
--- a/src/components/application_manager/test/mock/include/application_manager/commands/mobile/speak_response.h
+++ b/src/components/application_manager/test/mock/include/application_manager/commands/mobile/speak_response.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/event_engine/event.h b/src/components/application_manager/test/mock/include/application_manager/event_engine/event.h
index e76b767f17..55f5cd1320 100644
--- a/src/components/application_manager/test/mock/include/application_manager/event_engine/event.h
+++ b/src/components/application_manager/test/mock/include/application_manager/event_engine/event.h
@@ -77,7 +77,7 @@ class Event {
*
* @param so The smart_object received in HMI response
*/
- void set_smart_object(smart_objects::SmartObject& so);
+ void set_smart_object(const smart_objects::SmartObject& so);
/*
* @brief Retrieves event smart object
diff --git a/src/components/application_manager/test/mock/include/application_manager/event_engine/event_dispatcher.h b/src/components/application_manager/test/mock/include/application_manager/event_engine/event_dispatcher.h
index 875add2828..ff21b01c58 100644
--- a/src/components/application_manager/test/mock/include/application_manager/event_engine/event_dispatcher.h
+++ b/src/components/application_manager/test/mock/include/application_manager/event_engine/event_dispatcher.h
@@ -97,6 +97,13 @@ class EventDispatcher : public utils::Singleton<EventDispatcher> {
*/
virtual ~EventDispatcher();
+ /*
+ * @brief removes observer
+ * when occurs unsubscribe from event
+ * @param observer to be removed
+ */
+ void remove_observer_from_list(EventObserver* const observer);
+
DISALLOW_COPY_AND_ASSIGN(EventDispatcher);
FRIEND_BASE_SINGLETON_CLASS(EventDispatcher);
@@ -108,7 +115,10 @@ class EventDispatcher : public utils::Singleton<EventDispatcher> {
// Members section
sync_primitives::Lock state_lock_;
+ sync_primitives::Lock observer_list_lock_;
EventObserverMap observers_;
+ ObserverList observers_list_;
+
};
}
diff --git a/src/components/application_manager/test/mock/include/application_manager/hmi_capabilities.h b/src/components/application_manager/test/mock/include/application_manager/hmi_capabilities.h
index 20a849baee..000242daf0 100644
--- a/src/components/application_manager/test/mock/include/application_manager/hmi_capabilities.h
+++ b/src/components/application_manager/test/mock/include/application_manager/hmi_capabilities.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/hmi_command_factory.h b/src/components/application_manager/test/mock/include/application_manager/hmi_command_factory.h
index d6f85a480d..89936e4ca6 100644
--- a/src/components/application_manager/test/mock/include/application_manager/hmi_command_factory.h
+++ b/src/components/application_manager/test/mock/include/application_manager/hmi_command_factory.h
@@ -51,7 +51,7 @@ class HMICommandFactory {
* @param smartObject SmartObject shared pointer.
* @return Pointer to created command object.
**/
- static CommandSharedPtr CreateCommand(const MessageSharedPtr& message);
+ static CommandSharedPtr CreateCommand(const commands::MessageSharedPtr& message);
private:
HMICommandFactory();
diff --git a/src/components/application_manager/test/mock/include/application_manager/message.h b/src/components/application_manager/test/mock/include/application_manager/message.h
index d92c89adf1..5a2c8bdc18 100644
--- a/src/components/application_manager/test/mock/include/application_manager/message.h
+++ b/src/components/application_manager/test/mock/include/application_manager/message.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2013, Ford Motor Company
* All rights reserved.
*
@@ -64,7 +64,8 @@ enum ProtocolVersion {
kHMI = 0,
kV1 = 1,
kV2 = 2,
- kV3 = 3
+ kV3 = 3,
+ kV4 = 4
};
class Message {
diff --git a/src/components/application_manager/test/mock/include/application_manager/message_helper.h b/src/components/application_manager/test/mock/include/application_manager/message_helper.h
index 69c7b7bba7..8ee8256001 100644
--- a/src/components/application_manager/test/mock/include/application_manager/message_helper.h
+++ b/src/components/application_manager/test/mock/include/application_manager/message_helper.h
@@ -1,4 +1,4 @@
-/*
+/*
Copyright (c) 2013, Ford Motor Company
All rights reserved.
@@ -67,9 +67,6 @@ typedef std::map<std::string, VehicleDataType> VehicleData;
**/
class MessageHelper {
public:
-
- typedef std::vector<smart_objects::SmartObject*> SmartObjectList;
-
/**
* @brief Creates request for different interfaces(JSON, DBUS)
* @param correlation_id unique ID
@@ -99,7 +96,7 @@ class MessageHelper {
/**
* @brief Create mobile HashUpdateNotification
*/
- static smart_objects::SmartObject* GetHashUpdateNotification(const uint32_t app_id);
+ static smart_objects::SmartObjectSPtr GetHashUpdateNotification(const uint32_t app_id);
/**
* @brief Sends to mobile HashUpdateNotification
@@ -149,7 +146,7 @@ class MessageHelper {
static std::string StringifiedFunctionID(
mobile_apis::FunctionID::eType function_id);
- static smart_objects::SmartObject* CreateBlockedByPoliciesResponse(
+ static smart_objects::SmartObjectSPtr CreateBlockedByPoliciesResponse(
mobile_apis::FunctionID::eType function_id,
mobile_apis::Result::eType result, uint32_t correlation_id,
uint32_t connection_key);
@@ -161,14 +158,14 @@ class MessageHelper {
* @param devices Devices list
*
*/
- static smart_objects::SmartObject* CreateDeviceListSO(
- const connection_handler::DeviceMap& devices);
+ static smart_objects::SmartObjectSPtr CreateDeviceListSO(
+ const connection_handler::DeviceMap& devices);
- static smart_objects::SmartObject* CreateModuleInfoSO(
- uint32_t function_id);
+ static smart_objects::SmartObjectSPtr CreateModuleInfoSO(
+ uint32_t function_id);
- static smart_objects::SmartObject* CreateSetAppIcon(
- const std::string& path_to_icon, uint32_t app_id);
+ static smart_objects::SmartObjectSPtr CreateSetAppIcon(
+ const std::string& path_to_icon, uint32_t app_id);
/**
* @brief Sends IVI subscriptions
@@ -178,28 +175,34 @@ class MessageHelper {
/**
* @brief Sends IVI subscriptions
*/
- static SmartObjectList GetIVISubscribtionRequests(const uint32_t app_id);
+ static smart_objects::SmartObjectList GetIVISubscriptionRequests(ApplicationSharedPtr app);
static void SendAppDataToHMI(ApplicationConstSharedPtr app);
static void SendGlobalPropertiesToHMI(ApplicationConstSharedPtr app);
- static SmartObjectList CreateGlobalPropertiesRequestsToHMI(ApplicationConstSharedPtr app);
+ static smart_objects::SmartObjectList CreateGlobalPropertiesRequestsToHMI(ApplicationConstSharedPtr app);
- static smart_objects::SmartObject* CreateAppVrHelp(ApplicationConstSharedPtr app);
+ static smart_objects::SmartObjectSPtr CreateAppVrHelp(
+ ApplicationConstSharedPtr app);
- static SmartObjectList CreateShowRequestToHMI(ApplicationConstSharedPtr app);
+ static smart_objects::SmartObjectList CreateShowRequestToHMI(ApplicationConstSharedPtr app);
static void SendShowRequestToHMI(ApplicationConstSharedPtr app);
static void SendShowConstantTBTRequestToHMI(ApplicationConstSharedPtr app);
static void SendAddCommandRequestToHMI(ApplicationConstSharedPtr app);
- static SmartObjectList CreateAddCommandRequestToHMI(ApplicationConstSharedPtr app);
+ static smart_objects::SmartObjectList CreateAddCommandRequestToHMI(ApplicationConstSharedPtr app);
+ /**
+ * @brief Sends UI_ChangeRegistration to HMI with list of AppHMIType
+ * @param app applicaton instace
+ */
+ static void SendUIChangeRegistrationRequestToHMI(ApplicationConstSharedPtr app);
static void SendChangeRegistrationRequestToHMI(ApplicationConstSharedPtr app);
static void SendAddVRCommandToHMI(
uint32_t cmd_id, const smart_objects::SmartObject& vr_commands,
uint32_t app_id);
- static smart_objects::SmartObject* CreateAddVRCommandToHMI(
- uint32_t cmd_id, const smart_objects::SmartObject& vr_commands,
- uint32_t app_id);
+ static smart_objects::SmartObjectSPtr CreateAddVRCommandToHMI(
+ uint32_t cmd_id, const smart_objects::SmartObject& vr_commands,
+ uint32_t app_id);
/*
* @brief Create Common.HMIApplication struct application instance
@@ -211,19 +214,20 @@ class MessageHelper {
smart_objects::SmartObject& output);
static void SendAddSubMenuRequestToHMI(ApplicationConstSharedPtr app);
- static SmartObjectList CreateAddSubMenuRequestToHMI(ApplicationConstSharedPtr app);
+ static smart_objects::SmartObjectList CreateAddSubMenuRequestToHMI(ApplicationConstSharedPtr app);
/*
* @brief Creates BasicCommunication.OnAppUnregistered notification
* @param app Application instance
- * @param is_unexpected_disconnect
+ * @param is_unexpected_disconnect
* Indicates if connection was unexpectedly lost by TM or HB
*/
static void SendOnAppUnregNotificationToHMI(ApplicationConstSharedPtr app,
bool is_unexpected_disconnect = false);
static void SendActivateAppToHMI(
uint32_t const app_id,
- hmi_apis::Common_HMILevel::eType level = hmi_apis::Common_HMILevel::FULL);
+ hmi_apis::Common_HMILevel::eType level = hmi_apis::Common_HMILevel::FULL,
+ bool send_policy_priority = true);
static void SendOnResumeAudioSourceToHMI(const uint32_t app_id);
@@ -305,6 +309,29 @@ class MessageHelper {
unsigned int connection_key, const std::vector<uint8_t>& policy_data,
const std::string& url = "", int timeout = -1);
+ static void SendSystemRequestNotification(
+ uint32_t connection_key,
+ NsSmartDeviceLink::NsSmartObjects::SmartObject& content);
+
+ /**
+ * @brief SendLaunchApp allows to send OnSystemRequest with LAUNCH_UP.
+ *
+ * @param connection_key application id.
+ *
+ * @param urlSchema application's url schema.
+ *
+ * @param packageName application's package name.
+ */
+ static void SendLaunchApp(uint32_t connection_key,
+ const std::string& urlSchema,
+ const std::string& packageName);
+
+ /**
+ * @brief Sends OnSystemRequest which queries remote apps list
+ * @param connection_key application id, which is used for sending out
+ */
+ static void SendQueryApps(uint32_t connection_key);
+
/*
* @brief Send notification to mobile on application permissions update
* @param connection_key Id of application to send message to
@@ -374,9 +401,9 @@ class MessageHelper {
*/
static bool SendStopAudioPathThru();
- static smart_objects::SmartObject* CreateNegativeResponse(
- uint32_t connection_key, int32_t function_id, uint32_t correlation_id,
- int32_t result_code);
+ static smart_objects::SmartObjectSPtr CreateNegativeResponse(
+ uint32_t connection_key, int32_t function_id, uint32_t correlation_id,
+ int32_t result_code);
/*
* @brief Verify image and add image file full path
@@ -421,6 +448,16 @@ class MessageHelper {
smart_objects::SmartObject& message_params,
ApplicationConstSharedPtr app);
+ /**
+ * @brief checkWithPolicy allows to check soft button's parameters
+ * according to the current policy
+ * @param system_action system action
+ * @param app_mobile_id policy application id
+ * @return
+ */
+ static bool CheckWithPolicy(mobile_apis::SystemAction::eType system_action,
+ const std::string& app_mobile_id);
+
/*
* @brief subscribe application to softbutton
*
@@ -471,7 +508,16 @@ class MessageHelper {
static void SendTTSGlobalProperties(
ApplicationSharedPtr app, bool default_help_prompt);
- private:
+ /**
+ * @brief SendSetAppIcon allows to send SetAppIcon request.
+ *
+ * @param app_id application for which icon request should be sent.
+ *
+ * @param icon_path path to the icon.
+ */
+ static void SendSetAppIcon(uint32_t app_id,
+ const std::string& icon_path);
+ private:
/**
* @brief Allows to fill SO according to the current permissions.
* @param permissions application permissions.
@@ -480,8 +526,9 @@ class MessageHelper {
static void FillAppRevokedPermissions(const policy::AppPermissions& permissions,
smart_objects::SmartObject& message);
- static smart_objects::SmartObject* CreateChangeRegistration(
- int32_t function_id, int32_t language, uint32_t app_id);
+ static smart_objects::SmartObjectSPtr CreateChangeRegistration(
+ int32_t function_id, int32_t language, uint32_t app_id,
+ const smart_objects::SmartObject* app_types = NULL);
MessageHelper();
diff --git a/src/components/application_manager/test/mock/include/application_manager/mobile_command_factory.h b/src/components/application_manager/test/mock/include/application_manager/mobile_command_factory.h
index 1bf60fb745..b28e0abb34 100644
--- a/src/components/application_manager/test/mock/include/application_manager/mobile_command_factory.h
+++ b/src/components/application_manager/test/mock/include/application_manager/mobile_command_factory.h
@@ -51,7 +51,9 @@ class MobileCommandFactory {
* @param smartObject SmartObject shared pointer.
* @return Pointer to created command object.
**/
- static commands::Command* CreateCommand(const MessageSharedPtr& message);
+ static commands::Command* CreateCommand(
+ const commands::MessageSharedPtr& message,
+ commands::Command::CommandOrigin origin);
private:
MobileCommandFactory();
diff --git a/src/components/application_manager/test/mock/include/application_manager/mobile_message_handler.h b/src/components/application_manager/test/mock/include/application_manager/mobile_message_handler.h
index 67d51c0dab..5e8d551aee 100644
--- a/src/components/application_manager/test/mock/include/application_manager/mobile_message_handler.h
+++ b/src/components/application_manager/test/mock/include/application_manager/mobile_message_handler.h
@@ -41,13 +41,20 @@ namespace application_manager {
typedef utils::SharedPtr<application_manager::Message> MobileMessage;
class MobileMessageHandler {
public:
+ static application_manager::Message* HandleIncomingMessageProtocol(
+ const protocol_handler::RawMessagePtr message);
+
+ static protocol_handler::RawMessage* HandleOutgoingMessageProtocol(
+ const MobileMessage& message);
+ //! -------------------------------------------------------------
+ private:
static application_manager::Message* HandleIncomingMessageProtocolV1(
const protocol_handler::RawMessagePtr message);
static application_manager::Message* HandleIncomingMessageProtocolV2(
const protocol_handler::RawMessagePtr message);
- //! -------------------------------------------------------------
+ //! -------------------------------------------------------------
static protocol_handler::RawMessage* HandleOutgoingMessageProtocolV1(
const MobileMessage& message);
@@ -55,8 +62,6 @@ class MobileMessageHandler {
static protocol_handler::RawMessage* HandleOutgoingMessageProtocolV2(
const MobileMessage& message);
- //! -------------------------------------------------------------
- private:
DISALLOW_COPY_AND_ASSIGN(MobileMessageHandler);
};
} // namespace application_manager
diff --git a/src/components/application_manager/test/mock/include/application_manager/policies/policy_event_observer.h b/src/components/application_manager/test/mock/include/application_manager/policies/policy_event_observer.h
index 7fdfb4e0ac..e251170fec 100644
--- a/src/components/application_manager/test/mock/include/application_manager/policies/policy_event_observer.h
+++ b/src/components/application_manager/test/mock/include/application_manager/policies/policy_event_observer.h
@@ -34,26 +34,26 @@
#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_POLICY_EVENT_OBSERVER_H_
#include "application_manager/event_engine/event_observer.h"
-#include "utils/shared_ptr.h"
namespace policy {
namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
-class PolicyManager;
+class PolicyHandler;
class PolicyEventObserver :
public application_manager::event_engine::EventObserver {
public:
- PolicyEventObserver(utils::SharedPtr<PolicyManager> policy_manager);
+ explicit PolicyEventObserver(policy::PolicyHandler* const policy_handler);
+ void set_policy_handler(policy::PolicyHandler* const policy_handler);
void on_event(const application_manager::event_engine::Event& event);
void subscribe_on_event(
const application_manager::event_engine::Event::EventID& event_id,
int32_t hmi_correlation_id = 0);
private:
- utils::SharedPtr<PolicyManager> policy_manager_;
+ sync_primitives::Lock policy_handler_lock_;
+ PolicyHandler* policy_handler_;
void ProcessOdometerEvent(const smart_objects::SmartObject& message);
};
} // namespace policy
-
#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_POLICY_EVENT_OBSERVER_H_
diff --git a/src/components/application_manager/test/mock/include/application_manager/policies/policy_handler.h b/src/components/application_manager/test/mock/include/application_manager/policies/policy_handler.h
index dfc29fe00a..239ef8e55c 100644
--- a/src/components/application_manager/test/mock/include/application_manager/policies/policy_handler.h
+++ b/src/components/application_manager/test/mock/include/application_manager/policies/policy_handler.h
@@ -1,4 +1,4 @@
-/*
+/*
Copyright (c) 2013, Ford Motor Company
All rights reserved.
@@ -39,10 +39,17 @@
#include <vector>
#include "policy/policy_manager.h"
#include "application_manager/policies/policy_event_observer.h"
-#include "application_manager/policies/pt_exchange_handler.h"
+#include "application_manager/policies/delegates/statistics_delegate.h"
#include "utils/logger.h"
#include "utils/singleton.h"
+#include "utils/threads/thread.h"
+#include "utils/threads/thread_delegate.h"
+#include "utils/conditional_variable.h"
+#include "utils/rwlock.h"
#include "usage_statistics/statistics_manager.h"
+#include "policy_handler_observer.h"
+#include "utils/threads/async_runner.h"
+#include "application_manager/application_manager_impl.h"
namespace Json {
class Value;
@@ -54,7 +61,8 @@ typedef std::vector<uint32_t> DeviceHandles;
class PolicyHandler :
public utils::Singleton<PolicyHandler, utils::deleters::Deleter<PolicyHandler> >,
- public PolicyListener {
+ public PolicyListener,
+ public threads::AsyncRunner {
public:
virtual ~PolicyHandler();
bool LoadPolicyLibrary();
@@ -62,14 +70,20 @@ class PolicyHandler :
bool InitPolicyTable();
bool ResetPolicyTable();
bool ClearUserConsent();
- bool SendMessageToSDK(const BinaryMessage& pt_string);
+ bool SendMessageToSDK(const BinaryMessage& pt_string, const std::string& url);
bool ReceiveMessageFromSDK(const std::string& file,
const BinaryMessage& pt_string);
bool UnloadPolicyLibrary();
- void OnPTExchangeNeeded();
- void OnPermissionsUpdated(const std::string& policy_app_id,
- const Permissions& permissions,
- const HMILevel& default_hmi);
+ virtual void OnPermissionsUpdated(const std::string& policy_app_id,
+ const Permissions& permissions,
+ const HMILevel& default_hmi);
+
+ virtual void OnPermissionsUpdated(const std::string& policy_app_id,
+ const Permissions& permissions);
+
+ virtual void OnSnapshotCreated(const BinaryMessage& pt_string,
+ const std::vector<int>& retry_delay_seconds,
+ int timeout_exchange);
bool GetPriority(const std::string& policy_app_id, std::string* priority);
void CheckPermissions(const PTString& app_id,
@@ -85,33 +99,28 @@ class PolicyHandler :
bool GetInitialAppData(const std::string& application_id,
StringArray* nicknames = NULL,
StringArray* app_hmi_types = NULL);
- EndpointUrls GetUpdateUrls(int service_type);
+ void GetUpdateUrls(int service_type, EndpointUrls& end_points);
void ResetRetrySequence();
int NextRetryTimeout();
int TimeoutExchange();
void OnExceededTimeout();
- BinaryMessageSptr RequestPTUpdate();
- const std::vector<int> RetrySequenceDelaysSeconds();
+ void OnSystemReady();
+ void PTUpdatedAt(int kilometers, int days_after_epoch);
+ void add_listener(PolicyHandlerObserver* listener);
+ void remove_listener(PolicyHandlerObserver* listener);
utils::SharedPtr<usage_statistics::StatisticsManager> GetStatisticManager();
/**
- * Checks system action of application for permission of keep context
- * @param system_action system action (see mobile api)
- * @param policy_app_id unique application id
- * @return false if system_action is KEEP_CONTEXT and it isn't allowed by policy
- * otherwise true
- */
- bool CheckKeepContext(int system_action, const std::string& policy_app_id);
-
- /**
- * Checks system action of application for permission of steal focus
- * @param system_action system action (see mobile api)
- * @param policy_app_id unique application id
- * @return false if system_action is STEAL_FOCUS and it isn't allowed by policy
- * otherwise true
+ * @brief CheckSystemAction allows to check whether certain system
+ * action is enabled.
+ *
+ * @param system_action system action to check.
+ *
+ * @return true if specified system action is enabled, false otherwise.
*/
- bool CheckStealFocus(int system_action, const std::string& policy_app_id);
+ bool CheckSystemAction(mobile_apis::SystemAction::eType system_action,
+ const std::string& policy_app_id);
/**
* Lets client to notify PolicyHandler that more kilometers expired
@@ -138,20 +147,9 @@ class PolicyHandler :
*/
void OnIgnitionCycleOver();
- /**
- * @brief Send notification to HMI concerning revocation of application
- * @param policy_app_id Unique identifier of application
- */
- void OnAppRevoked(const std::string& policy_app_id);
-
void OnPendingPermissionChange(const std::string& policy_app_id);
/**
- * Initializes PT exchange at ignition if need
- */
- void PTExchangeAtRegistration(const std::string& app_id);
-
- /**
* Initializes PT exchange at user request
* @param correlation_id correlation id of request
*/
@@ -171,7 +169,7 @@ class PolicyHandler :
* @param permissions User-changed group permissions consent
*/
void OnAppPermissionConsent(const uint32_t connection_key,
- PermissionConsent& permissions);
+ const PermissionConsent &permissions);
/**
* @brief Get appropriate message parameters and send them with response
@@ -204,7 +202,7 @@ class PolicyHandler :
* @brief Send notification to HMI with changed policy update status
* @param status Current policy update state
*/
- void OnUpdateStatusChanged(policy::PolicyTableStatus status);
+ void OnUpdateStatusChanged(const std::string& status);
/**
* @brief Update currently used device id in policies manager for given
@@ -271,11 +269,19 @@ class PolicyHandler :
std::string GetAppName(const std::string& policy_app_id);
- virtual void OnUserRequestedUpdateCheckRequired();
+ virtual void OnUpdateHMIAppType(std::map<std::string, StringArray> app_hmi_types);
+
+ virtual void OnCertificateUpdated(const std::string& certificate_data);
+
+ virtual bool CanUpdate();
virtual void OnDeviceConsentChanged(const std::string& device_id,
bool is_allowed);
+ virtual void OnPTExchangeNeeded();
+
+ virtual void GetAvailableApps(std::queue<std::string>& apps);
+
/**
* @brief Allows to add new or update existed application during
* registration process
@@ -303,6 +309,21 @@ class PolicyHandler :
*/
uint16_t HeartBeatTimeout(const std::string& app_id) const;
+ /**
+ * @brief Returns URL for querying list of remote apps
+ */
+ const std::string RemoteAppsUrl() const;
+
+ /**
+ * @brief Handler on applications search started
+ */
+ virtual void OnAppsSearchStarted();
+
+ /**
+ * @brief Handler on applications search completed
+ */
+ virtual void OnAppsSearchCompleted();
+
//TODO(AKutsan) REMOVE THIS UGLY HOTFIX
virtual void Increment(usage_statistics::GlobalCounterId type);
virtual void Increment(const std::string& app_id,
@@ -314,7 +335,6 @@ class PolicyHandler :
usage_statistics::AppStopwatchId type,
int32_t timespan_seconds);
-
protected:
/**
@@ -322,72 +342,80 @@ protected:
*/
void StartNextRetry();
- /**
- * Initializes PT exchange at odometer if need
- * @param kilometers value from odometer in kilometers
- */
- void PTExchangeAtOdometer(int kilometers);
+ private:
/**
- * Starts proccess updating policy table
+ * Checks system action of application for permission of keep context
+ * @param system_action system action (see mobile api)
+ * @param policy_app_id unique application id
+ * @return false if system_action is KEEP_CONTEXT and it isn't allowed by policy
+ * otherwise true
*/
- void StartPTExchange(bool skip_device_selection = false);
+ bool CheckKeepContext(const std::string& policy_app_id);
- private:
/**
- * @brief Choose device according to app HMI status and user consent for
- * device
- * @param device_info Struct with selected device parameters
- * @return consent status for selected device
+ * Checks system action of application for permission of steal focus
+ * @param system_action system action (see mobile api)
+ * @param policy_app_id unique application id
+ * @return false if system_action is STEAL_FOCUS and it isn't allowed by policy
+ * otherwise true
*/
- DeviceConsent GetDeviceForSending(DeviceParams& device_params);
+ bool CheckStealFocus(const std::string& policy_app_id);
/**
- * @brief Convert internal policy update status to appropriate status for HMI
- * @param status Internal policy update status
- * @return Converted status for sending to HMI
+ * @brief OnAppPermissionConsentInternal reacts on permission changing
+ *
+ * @param connection_key connection key
+ *
+ * @param permissions new permissions.
*/
- const std::string ConvertUpdateStatus(policy::PolicyTableStatus status);
-
+ void OnAppPermissionConsentInternal(const uint32_t connection_key,
+ PermissionConsent& permissions);
private:
-
class StatisticManagerImpl: public usage_statistics::StatisticsManager {
//TODO(AKutsan) REMOVE THIS UGLY HOTFIX
virtual void Increment(usage_statistics::GlobalCounterId type) {
- return PolicyHandler::instance()->Increment(type);
+
+ PolicyHandler::instance()->AsyncRun(new StatisticsDelegate(type));
}
virtual void Increment(const std::string& app_id,
usage_statistics::AppCounterId type) {
- return PolicyHandler::instance()->Increment(app_id, type);
+
+ PolicyHandler::instance()->AsyncRun(new StatisticsDelegate(app_id,
+ type));
}
virtual void Set(const std::string& app_id,
usage_statistics::AppInfoId type,
const std::string& value) {
- return PolicyHandler::instance()->Set(app_id, type, value);
+
+ PolicyHandler::instance()->AsyncRun(new StatisticsDelegate(app_id,
+ type,
+ value));
}
virtual void Add(const std::string& app_id,
usage_statistics::AppStopwatchId type,
int32_t timespan_seconds) {
- return PolicyHandler::instance()->Add(app_id, type, timespan_seconds);
+
+ PolicyHandler::instance()->AsyncRun(new StatisticsDelegate(
+ app_id, type, timespan_seconds));
}
};
//TODO(AKutsan) REMOVE THIS UGLY HOTFIX
PolicyHandler();
+ bool SaveSnapshot(const BinaryMessage& pt_string, std::string& snap_path);
static PolicyHandler* instance_;
static const std::string kLibrary;
+ mutable sync_primitives::RWLock policy_manager_lock_;
utils::SharedPtr<PolicyManager> policy_manager_;
void* dl_handle_;
AppIds last_used_app_ids_;
- utils::SharedPtr<PTExchangeHandler> exchange_handler_;
utils::SharedPtr<PolicyEventObserver> event_observer_;
- bool on_ignition_check_done_;
uint32_t last_activated_app_id_;
- bool registration_in_progress;
/**
* @brief Contains device handles, which were sent for user consent to HMI
@@ -396,7 +424,9 @@ private:
inline bool CreateManager();
- bool is_user_requested_policy_table_update_;
+ typedef std::list <PolicyHandlerObserver*> HandlersCollection;
+ HandlersCollection listeners_;
+ sync_primitives::Lock listeners_lock_;
/**
* @brief Application-to-device map is used for getting/setting user consents
@@ -404,9 +434,12 @@ private:
*/
std::map<std::string, std::string> app_to_device_link_;
+ // Lock for app to device list
+ sync_primitives::Lock app_to_device_link_lock_;
utils::SharedPtr<StatisticManagerImpl> statistic_manager_impl_;
+ friend class AppPermissionDelegate;
DISALLOW_COPY_AND_ASSIGN(PolicyHandler);
FRIEND_BASE_SINGLETON_CLASS_WITH_DELETER(PolicyHandler,
diff --git a/src/components/application_manager/test/mock/include/application_manager/request_controller.h b/src/components/application_manager/test/mock/include/application_manager/request_controller.h
index 2bc5f54666..8a307c7fc7 100644
--- a/src/components/application_manager/test/mock/include/application_manager/request_controller.h
+++ b/src/components/application_manager/test/mock/include/application_manager/request_controller.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2014, Ford Motor Company
* All rights reserved.
*
@@ -54,20 +54,16 @@ namespace application_manager {
namespace request_controller {
-using namespace threads;
-
/**
* @brief RequestController class is used to control currently active mobile
* requests.
*/
class RequestController {
public:
-
/**
* @brief Result code for addRequest
*/
- enum TResult
- {
+ enum TResult {
SUCCESS = 0,
TOO_MANY_REQUESTS,
TOO_MANY_PENDING_REQUESTS,
@@ -78,8 +74,7 @@ class RequestController {
/**
* @brief Thread pool state
*/
- enum TPoolState
- {
+ enum TPoolState {
UNDEFINED = 0,
STARTED,
STOPPED,
@@ -120,7 +115,7 @@ class RequestController {
* @return Result code
*
*/
- TResult addMobileRequest(const MobileRequestPtr& request,
+ TResult addMobileRequest(const RequestPtr request,
const mobile_apis::HMILevel::eType& hmi_level);
@@ -140,19 +135,31 @@ class RequestController {
*/
void addNotification(const RequestPtr ptr);
+
+ /**
+ * @brief Removes request from queue
+ *
+ * @param correlation_id Active request correlation ID,
+ * connection_key - Active request connection key (0 for HMI requersts)
+ *
+ */
+ void terminateRequest(const uint32_t& correlation_id,
+ const uint32_t& connection_key);
+
/**
* @brief Removes request from queue
*
- * @param mobile_corellation_id Active mobile request correlation ID
+ * @param mobile_correlation_id Active mobile request correlation ID
*
*/
- void terminateMobileRequest(const uint32_t& mobile_correlation_id);
+ void terminateMobileRequest(const uint32_t& mobile_correlation_id,
+ const uint32_t& connection_key);
/**
* @brief Removes request from queue
*
- * @param mobile_corellation_id Active mobile request correlation ID
+ * @param mobile_correlation_id Active mobile request correlation ID
*
*/
void terminateHMIRequest(const uint32_t& correlation_id);
@@ -177,6 +184,12 @@ class RequestController {
*/
void terminateAllHMIRequests();
+
+ /**
+ * @brief Terminates all requests from Mobile
+ */
+ void terminateAllMobileRequests();
+
/**
* @brief Updates request timeout
*
@@ -188,30 +201,23 @@ class RequestController {
const uint32_t& mobile_correlation_id,
const uint32_t& new_timeout);
- protected:
-
- /**
- * @brief Checs if this app as able to add new requests, or limits was exceeded
- * @param app_id - application id
- * @param app_time_scale - time scale (seconds)
- * @param max_request_per_time_scale - maximum count of request that should be allowed for app_time_scale secconds
+ /*
+ * @brief Function Should be called when Low Voltage is occured
*/
- bool checkTimeScaleMaxRequest(const uint32_t& app_id,
- const uint32_t& app_time_scale,
- const uint32_t& max_request_per_time_scale);
+ void OnLowVoltage();
- /**
- * @brief Checs if this app as able to add new requests in current hmi_level, or limits was exceeded
- * @param hmi_level - hmi level
- * @param app_id - application id
- * @param app_time_scale - time scale (seconds)
- * @param max_request_per_time_scale - maximum count of request that should be allowed for app_time_scale secconds
+ /*
+ * @brief Function Should be called when Low Voltage is occured
*/
- bool checkHMILevelTimeScaleMaxRequest(const mobile_apis::HMILevel::eType& hmi_level,
- const uint32_t& app_id,
- const uint32_t& app_time_scale,
- const uint32_t& max_request_per_time_scale);
+ void OnWakeUp();
+
+ bool IsLowVoltage();
+
+ protected:
+ /**
+ * @brief Timer Callback
+ */
void onTimer();
/**
@@ -220,16 +226,30 @@ class RequestController {
*/
void UpdateTimer();
- private:
+ void terminateWaitingForExecutionAppRequests(const uint32_t& app_id);
+ void terminateWaitingForResponseAppRequests(const uint32_t& app_id);
- // Data types
+ /**
+ * @brief Check Posibility to add new requests, or limits was exceeded
+ * @param request - request to check possipility to Add
+ * @return True if new request could be added, false otherwise
+ */
+ TResult CheckPosibilitytoAdd(const RequestPtr request);
+
+ /**
+ * @brief Check Posibility to add new requests, or limits was exceeded
+ * @param pending_requests_amount - maximum count of request that should be allowed for all applications
+ * @return True if new request could be added, false otherwise
+ */
+ bool CheckPendingRequestsAmount(const uint32_t& pending_requests_amount);
- class Worker : public ThreadDelegate {
+ private:
+ class Worker : public threads::ThreadDelegate {
public:
- Worker(RequestController* requestController);
+ explicit Worker(RequestController* requestController);
virtual ~Worker();
virtual void threadMain();
- virtual bool exitThreadMain();
+ virtual void exitThreadMain();
protected:
private:
RequestController* request_controller_;
@@ -237,25 +257,33 @@ class RequestController {
volatile bool stop_flag_;
};
- std::vector<Thread*> pool_;
+ std::vector<threads::Thread*> pool_;
volatile TPoolState pool_state_;
uint32_t pool_size_;
sync_primitives::ConditionalVariable cond_var_;
- std::list<MobileRequestPtr> mobile_request_list_;
+ std::list<RequestPtr> mobile_request_list_;
sync_primitives::Lock mobile_request_list_lock_;
- RequestInfoSet pending_request_set_;
- sync_primitives::Lock pending_request_set_lock_;
+ /*
+ * Requests, that are waiting for responses
+ * RequestInfoSet provides correct processing of requests with thre same
+ * app_id and corr_id
+ */
+ RequestInfoSet waiting_for_response_;
/**
* @brief Set of HMI notifications with timeout.
*/
std::list<RequestPtr> notification_list_;
- timer::TimerThread<RequestController> timer_;
+ /*
+ * timer for checking requests timeout
+ */
+ timer::TimerThread<RequestController> timer_;
static const uint32_t dafault_sleep_time_ = UINT_MAX;
+ bool is_low_voltage_;
DISALLOW_COPY_AND_ASSIGN(RequestController);
};
diff --git a/src/components/application_manager/test/mock/include/application_manager/request_info.h b/src/components/application_manager/test/mock/include/application_manager/request_info.h
index b1409488fd..b0d1f836d8 100644
--- a/src/components/application_manager/test/mock/include/application_manager/request_info.h
+++ b/src/components/application_manager/test/mock/include/application_manager/request_info.h
@@ -1,34 +1,34 @@
-/**
-* \file request_info.h
-* \brief request information structure header file.
-*
-* Copyright (c) 2014, Ford Motor Company
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*
-* Redistributions of source code must retain the above copyright notice, this
-* list of conditions and the following disclaimer.
-*
-* Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following
-* disclaimer in the documentation and/or other materials provided with the
-* distribution.
-*
-* Neither the name of the Ford Motor Company nor the names of its contributors
-* may be used to endorse or promote products derived from this software
-* without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+/*
+ * \file request_info.h
+ * \brief request information structure header file.
+ *
+ * Copyright (c) 2014, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
@@ -37,6 +37,7 @@
#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_REQUEST_INFO_H_
#include <stdint.h>
+#include <set>
#include "application_manager/commands/command_request_impl.h"
#include "commands/hmi/request_to_hmi.h"
@@ -52,47 +53,31 @@ namespace request_controller {
*
*/
typedef utils::SharedPtr<commands::Command> RequestPtr;
- typedef utils::SharedPtr<commands::CommandRequestImpl> MobileRequestPtr;
struct RequestInfo {
- RequestInfo(const uint64_t timeout_sec)
- : timeout_sec_(timeout_sec) {
- start_time_ = date_time::DateTime::getCurrentTime();
- updateEndTime();
- }
+ enum RequestType {MobileRequest, HMIRequest};
+
+ RequestInfo() {}
+ virtual ~RequestInfo() {}
- RequestInfo(const TimevalStruct& start_time,const uint64_t timeout_sec)
- : start_time_(start_time),
+ RequestInfo(RequestPtr request,
+ const RequestType requst_type,
+ const uint64_t timeout_sec)
+ : request_(request),
timeout_sec_(timeout_sec) {
+ start_time_ = date_time::DateTime::getCurrentTime();
updateEndTime();
- }
-
- virtual ~RequestInfo(){}
-
- virtual uint32_t requestId() = 0;
- virtual commands::Command* request() = 0;
+ requst_type_ = requst_type;
+ }
- void updateEndTime() {
- end_time_ = date_time::DateTime::getCurrentTime();
- end_time_.tv_sec += timeout_sec_;
+ RequestInfo(RequestPtr request, const RequestType requst_type,
+ const TimevalStruct& start_time, const uint64_t timeout_sec);
- // possible delay during IPC
- const uint32_t hmi_delay_sec = 1;
- end_time_.tv_sec += hmi_delay_sec;
- }
+ void updateEndTime();
- void updateTimeOut(const uint64_t& timeout_sec) {
- timeout_sec_ = timeout_sec;
- updateEndTime();
- }
+ void updateTimeOut(const uint64_t& timeout_sec);
- bool isExpired() {
- if ( date_time::GREATER ==
- date_time::DateTime::compareTime(end_time_, date_time::DateTime::getCurrentTime()) ) {
- return false;
- }
- return true;
- }
+ bool isExpired();
TimevalStruct start_time() {
return start_time_;
@@ -114,65 +99,190 @@ namespace request_controller {
return hmi_level_;
}
+ RequestType requst_type() const {
+ return requst_type_;
+ }
+
+ uint32_t requestId() {
+ return correlation_id_;
+ }
+
+ commands::Command* request() {
+ return request_.get();
+ }
+ uint64_t hash();
+ static uint64_t GenerateHash(uint32_t var1, uint32_t var2);
+ static uint32_t HmiConnectoinKey;
protected:
+ RequestPtr request_;
TimevalStruct start_time_;
uint64_t timeout_sec_;
TimevalStruct end_time_;
uint32_t app_id_;
mobile_apis::HMILevel::eType hmi_level_;
+ RequestType requst_type_;
+ uint32_t correlation_id_;
};
typedef utils::SharedPtr<RequestInfo> RequestInfoPtr;
- struct RequestInfoComparator {
- bool operator() (const RequestInfoPtr lhs,
- const RequestInfoPtr rhs) const {
- date_time::TimeCompare compare_result =
- date_time::DateTime::compareTime(lhs->end_time(), rhs->end_time());
-
- return compare_result == date_time::LESS;
- }
+ struct MobileRequestInfo: public RequestInfo {
+ MobileRequestInfo(RequestPtr request,
+ const uint64_t timeout_sec);
+ MobileRequestInfo(RequestPtr request,
+ const TimevalStruct& start_time,
+ const uint64_t timeout_sec);
};
- typedef std::set<RequestInfoPtr,RequestInfoComparator> RequestInfoSet;
-
struct HMIRequestInfo: public RequestInfo {
HMIRequestInfo(RequestPtr request, const uint64_t timeout_sec);
HMIRequestInfo(RequestPtr request, const TimevalStruct& start_time,
const uint64_t timeout_sec);
+ };
- RequestPtr request_;
- uint32_t correlation_id_;
-
- virtual uint32_t requestId() {
- return correlation_id_;
- }
-
- virtual commands::Command* request() {
- return request_.get();
- }
+ // Request info, for searching in request info set by log_n time
+ // Returns correct hash by app_id and corr_id
+ struct FakeRequestInfo :public RequestInfo {
+ FakeRequestInfo(uint32_t app_id, uint32_t correaltion_id);
};
- struct MobileRequestInfo: public RequestInfo {
- MobileRequestInfo(RequestPtr request,
- const uint64_t timeout_sec);
+ struct RequestInfoTimeComparator {
+ bool operator() (const RequestInfoPtr lhs,
+ const RequestInfoPtr rhs) const;
+ };
- MobileRequestInfo(RequestPtr request,
- const TimevalStruct& start_time,
- const uint64_t timeout_sec);
+ struct RequestInfoHashComparator {
+ bool operator() (const RequestInfoPtr lhs,
+ const RequestInfoPtr rhs) const;
+ };
- RequestPtr request_;
- uint32_t mobile_correlation_id_;
- virtual uint32_t requestId() {
- return mobile_correlation_id_;
- }
+ typedef std::set<RequestInfoPtr, RequestInfoTimeComparator> TimeSortedRequestInfoSet;
+ typedef std::set<RequestInfoPtr, RequestInfoHashComparator> HashSortedRequestInfoSet;
- virtual commands::Command* request() {
- return request_.get();
- }
+ /*
+ * @brief RequestInfoSet provides uniue requests bu corralation_id and app_id
+ *
+ */
+ class RequestInfoSet {
+ public:
+ /*
+ * @brief Add requests into colletion by log(n) time
+ * @param request_info - request to add
+ * @return false is request with the same app_id and correlation_id exist
+ */
+ bool Add(RequestInfoPtr request_info);
+
+ /*
+ * @brief Find requests int colletion by log(n) time
+ * @param connection_key - connection_key of request
+ * @param correlation_id - correlation_id of request
+ * @return founded request or shared_ptr with NULL
+ */
+ RequestInfoPtr Find(const uint32_t connection_key,
+ const uint32_t correlation_id);
+
+ /*
+ * @brief Get request with smalest end_time_
+ * @return founded request or shared_ptr with NULL
+ */
+ RequestInfoPtr Front();
+
+ /*
+ * @brief Get request with smalest end_time_ != 0
+ * @return founded request or shared_ptr with NULL
+ */
+ RequestInfoPtr FrontWithNotNullTimeout();
+
+ /*
+ * @brief Erase request from colletion by log(n) time
+ * @param request_info - request to erase
+ * @return true if Erase succes, otherwise return false
+ */
+ bool RemoveRequest(const RequestInfoPtr request_info);
+
+ /*
+ * @brief Erase request from colletion by connection_key
+ * @param connection_key - connection_key of requests to erase
+ * @return count of erased requests
+ */
+ uint32_t RemoveByConnectionKey(uint32_t connection_key);
+
+ /*
+ * @brief Erase all mobile requests from controller
+ * @return count of erased requests
+ */
+ uint32_t RemoveMobileRequests();
+
+ /*
+ * @return count of requestd in collections
+ */
+ const size_t Size();
+
+ /**
+ * @brief Check if this app is able to add new requests,
+ * or limits was exceeded
+ * @param app_id - application id
+ * @param app_time_scale - time scale (seconds)
+ * @param max_request_per_time_scale - maximum count of request
+ * that should be allowed for app_time_scale seconds
+ * @return True if new request could be added, false otherwise
+ */
+ bool CheckTimeScaleMaxRequest(uint32_t app_id,
+ uint32_t app_time_scale,
+ uint32_t max_request_per_time_scale);
+
+ /**
+ * @brief Check if this app is able to add new requests
+ * in current hmi_level, or limits was exceeded
+ * @param hmi_level - hmi level
+ * @param app_id - application id
+ * @param app_time_scale - time scale (seconds)
+ * @param max_request_per_time_scale - maximum count of request
+ * that should be allowed for app_time_scale seconds
+ * @return True if new request could be added, false otherwise
+ */
+ bool CheckHMILevelTimeScaleMaxRequest(mobile_apis::HMILevel::eType hmi_level,
+ uint32_t app_id,
+ uint32_t app_time_scale,
+ uint32_t max_request_per_time_scale);
+ private:
+ /*
+ * @brief Comparator of connection key for std::find_if function
+ */
+ struct AppIdCompararator {
+ enum CompareType {Equal, NotEqual};
+ AppIdCompararator(CompareType compare_type, uint32_t app_id):
+ app_id_(app_id),
+ compare_type_(compare_type) {}
+ bool operator()(const RequestInfoPtr value_compare) const;
+
+ private:
+ uint32_t app_id_;
+ CompareType compare_type_;
+ };
+
+ bool Erase(const RequestInfoPtr request_info);
+
+ /*
+ * @brief Erase requests from collection if filter allows
+ * @param filter - filtering predicate
+ * @return count of erased requests
+ */
+ uint32_t RemoveRequests(const RequestInfoSet::AppIdCompararator& filter);
+
+ /*
+ * @brief Debug function, will raise assert if set sizes are noit equal
+ */
+ inline void CheckSetSizes();
+ TimeSortedRequestInfoSet time_sorted_pending_requests_;
+ HashSortedRequestInfoSet hash_sorted_pending_requests_;
+
+ // the lock caled this_lock_, since the class represent collection by itself.
+ sync_primitives::Lock this_lock_;
};
+
/**
* @brief Structure used in std algorithms to determine amount of request
* during time scale
@@ -186,7 +296,6 @@ namespace request_controller {
app_id_(app_id) {}
bool operator()(RequestInfoPtr setEntry) {
-
if (!setEntry.valid()) {
return false;
}
@@ -247,6 +356,7 @@ namespace request_controller {
return true;
}
+
private:
TimevalStruct start_;
TimevalStruct end_;
@@ -254,9 +364,7 @@ namespace request_controller {
mobile_apis::HMILevel::eType hmi_level_;
};
-
-
} // namespace request_controller
-} // namespace application_manager
+} // namespace application_manager
#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_REQUEST_INFO_H_
diff --git a/src/components/application_manager/test/mock/include/application_manager/resume_ctrl.h b/src/components/application_manager/test/mock/include/application_manager/resume_ctrl.h
index 463df0b867..c30df0a7b9 100644
--- a/src/components/application_manager/test/mock/include/application_manager/resume_ctrl.h
+++ b/src/components/application_manager/test/mock/include/application_manager/resume_ctrl.h
@@ -1,5 +1,5 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
+/*
+ * Copyright (c) 2015, Ford Motor Company
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -88,7 +88,7 @@ class ResumeCtrl: public event_engine::EventObserver {
* @param application is application witch HMI Level is need to restore
* @return true if success, otherwise return false
*/
- bool RestoreApplicationHMILevel(ApplicationSharedPtr application);
+ bool RestoreAppHMIState(ApplicationSharedPtr application);
/**
* @brief Set application HMI Level as stored in policy
@@ -106,9 +106,8 @@ class ResumeCtrl: public event_engine::EventObserver {
* @param check_policy indicate if policy data consent must be verified
* @return true if success, otherwise return false
*/
- bool SetupHMILevel(ApplicationSharedPtr application,
- mobile_apis::HMILevel::eType hmi_level,
- mobile_apis::AudioStreamingState::eType audio_streaming_state,
+ bool SetAppHMIState(ApplicationSharedPtr application,
+ const mobile_apis::HMILevel::eType hmi_level,
bool check_policy = true);
/**
@@ -127,15 +126,33 @@ class ResumeCtrl: public event_engine::EventObserver {
/**
* @brief Remove application from list of saved applications
- * @param application is application witch need to be removed
+ * @param mobile_app_id application witch need to be removed
* @return return true, if success, otherwise return false
*/
- bool RemoveApplicationFromSaved(ApplicationConstSharedPtr application);
+ bool RemoveApplicationFromSaved(const std::string& mobile_app_id);
/**
* @brief Increments ignition counter for all registered applications
+ * and remember ign_off time stamp
*/
- void IgnitionOff();
+ void Suspend();
+
+ /**
+ * @brief Increments ignition counter for all registered applications
+ * and remember ign_off time stamp
+ */
+ void OnAwake();
+
+ /**
+ * @brief Method starts timer "RsmCtrlPercist" when SDL receives onAwakeSDL notification
+ */
+ void StartSavePersistentDataTimer();
+
+ /**
+ * @brief Method stops timer "RsmCtrlPercist" when SDL receives OnExitAllApplication notification
+ * with reason "SUSPEND"
+ */
+ void StopSavePersistentDataTimer();
/**
* @brief Start timer for resumption applications
@@ -143,7 +160,7 @@ class ResumeCtrl: public event_engine::EventObserver {
* @param application that is need to be restored
* @return true if it was saved, otherwise return false
*/
- bool StartResumption(ApplicationSharedPtr application, uint32_t hash);
+ bool StartResumption(ApplicationSharedPtr application, const std::string& hash);
/**
* @brief Start timer for resumption applications
@@ -165,7 +182,7 @@ class ResumeCtrl: public event_engine::EventObserver {
* @param application that is need to be restored
* @return true if it was saved, otherwise return false
*/
- bool CheckApplicationHash(ApplicationSharedPtr application, uint32_t hash);
+ bool CheckApplicationHash(ApplicationSharedPtr application, const std::string& hash);
/**
* @brief Check if Resume controller have saved application with hmi app id
@@ -192,17 +209,36 @@ class ResumeCtrl: public event_engine::EventObserver {
uint32_t GetHMIApplicationID(const std::string& mobile_app_id);
/**
- * @brief Timer callback function
- *
+ * @brief SaveDataOnTimer :
+ * Timer callback for persisting ResumptionData each N seconds
+ * N gets from property
*/
- void onTimer();
+ void SaveDataOnTimer();
void ClearResumptionInfo();
+ void ApplicationsDataUpdated() {
+ is_data_saved = false;
+ }
+
+ /**
+ * @brief Resume HMI Level and audio streaming state if needed
+ * @param application - application to restore hmi level
+ * and audio streaming state
+ */
+ void StartAppHmiStateResumption(ApplicationSharedPtr application);
+ /**
+ * @brief Update launch_time_ to current
+ */
+ void ResetLaunchTime();
+
private:
+
typedef std::pair<uint32_t, uint32_t> application_timestamp;
+ std::set<ApplicationSharedPtr> retrieve_application();
+
/**
* @brief This struct need to map
* timestamp and application from correlationID
@@ -220,6 +256,12 @@ class ResumeCtrl: public event_engine::EventObserver {
};
/**
+ * @brief geter for launch_time_
+ * @return value of launch_time_
+ */
+ time_t launch_time() const;
+
+ /**
* @brief Check device MAC address
*
* @param application that is need to be restored
@@ -229,9 +271,34 @@ class ResumeCtrl: public event_engine::EventObserver {
*/
bool IsDeviceMacAddressEqual(ApplicationSharedPtr application,
const std::string& saved_device_mac);
+ /**
+ * @brief Get Resumption section of LastState
+ * @return Resumption section of LastState in Json
+ */
+ Json::Value& GetResumptionData();
+ /**
+ * @brief Get applications for resumption of LastState
+ * @return applications for resumption of LastState
+ */
Json::Value& GetSavedApplications();
+ /**
+ * @brief Get the last ignition off time from LastState
+ * @return the last ignition off time from LastState
+ */
+ time_t GetIgnOffTime();
+
+ /**
+ * @brief Setup IgnOff time to LastState
+ * @param ign_off_time - igition off time
+ */
+ void SetLastIgnOffTime(time_t ign_off_time);
+
+ /**
+ * @brief Set applications for resumption to LastState
+ * @parems apps_json applications to write in LastState
+ */
void SetSavedApplication(Json::Value& apps_json);
Json::Value GetApplicationCommands(
@@ -249,21 +316,184 @@ class ResumeCtrl: public event_engine::EventObserver {
Json::Value GetApplicationShow(
ApplicationConstSharedPtr application);
- Json::Value JsonFromSO(
- const NsSmartDeviceLink::NsSmartObjects::SmartObject *so);
+ Json::Value JsonFromSO(const smart_objects::SmartObject *so);
void SendHMIRequest(const hmi_apis::FunctionID::eType& function_id,
const smart_objects::SmartObject* msg_params = NULL,
bool use_events = false);
bool ProcessHMIRequest(
- NsSmartDeviceLink::NsSmartObjects::SmartObject* request = NULL,
+ smart_objects::SmartObjectSPtr request = NULL,
bool use_events = false);
+ void InsertToTimerQueue(uint32_t app_id, uint32_t time_stamp);
+
+ /**
+ * @brief AddFiles allows to add files for the application
+ * which should be resumed
+ *
+ * @param application application which will be resumed
+ *
+ * @param saved_app application specific section from backup file
+ */
+ void AddFiles(ApplicationSharedPtr application, const Json::Value& saved_app);
+
/**
- * @brief Time step to check resumption TIME_OUT
+ * @brief AddSubmenues allows to add sub menues for the application
+ * which should be resumed
+ *
+ * @param application application which will be resumed
+ *
+ * @param saved_app application specific section from backup file
+ */
+ void AddSubmenues(ApplicationSharedPtr application, const Json::Value& saved_app);
+
+ /**
+ * @brief AddCommands allows to add commands for the application
+ * which should be resumed
+ *
+ * @param application application which will be resumed
+ *
+ * @param saved_app application specific section from backup file
+ */
+ void AddCommands(ApplicationSharedPtr application, const Json::Value& saved_app);
+
+ /**
+ * @brief AddChoicesets allows to add choice sets for the application
+ * which should be resumed
+ *
+ * @param application application which will be resumed
+ *
+ * @param saved_app application specific section from backup file
+ */
+ void AddChoicesets(ApplicationSharedPtr application, const Json::Value& saved_app);
+
+ /**
+ * @brief SetGlobalProperties allows to restore global properties.
+ *
+ * @param application application which will be resumed
+ *
+ * @param saved_app application specific section from backup file
+ */
+ void SetGlobalProperties(ApplicationSharedPtr application, const Json::Value& saved_app);
+
+ /**
+ * @brief AddSubscriptions allows to restore subscriptions
+ *
+ * @param application application which will be resumed
+ *
+ * @param saved_app application specific section from backup file
+ */
+ void AddSubscriptions(ApplicationSharedPtr application, const Json::Value& saved_app);
+
+ /**
+ * @brief ProcessHMIRequests allows to process obtained requests.
+ *
+ * @param requests request that should be processed.
+ */
+ void ProcessHMIRequests(const smart_objects::SmartObjectList& requests);
+
+ /**
+ * @brief CheckIcons allows to check application icons
+ *
+ * @param application application under resumtion application
+ *
+ * @param json_object
+ *
+ * @return true in case icons exists, false otherwise
+ */
+ bool CheckIcons(ApplicationSharedPtr application, const Json::Value& json_object);
+
+ /**
+ * @brief GetFromSavedOrAppend allows to get existed record about application
+ * or adds the new one.
+ *
+ * @param mobile_app_id application id.
+ *
+ * @return the reference to the record in applications array.
+ */
+ Json::Value& GetFromSavedOrAppend(const std::string& mobile_app_id);
+
+ /**
+ * @brief CheckIgnCycleRestrictions checks if is needed to resume HMI state
+ * by ign cycle restrictions
+ * @param json_app - saved application
+ * @return true if resumptions allowed, otherwise return false
+ */
+ bool CheckIgnCycleRestrictions(const Json::Value& json_app);
+
+ /**
+ * @brief DisconnectedInLastIgnCycle should check if was connected in prev ign cycle
+ * @param json_app - saved applicationa
+ * @return true if app connected in frep ign_cycle otherwise return false
+ */
+ bool DisconnectedInLastIgnCycle(const Json::Value& json_app);
+
+ /**
+ * @brief DisconnectedJustBeforeIgnOff should check if application
+ * was dissconnected in N secconds delay before ign off.
+ * N will be readed from profile
+ * @param json_app - saved applicationa
+ * @return was dissconnected in N secconds delay before ign off
+ * otherwise return false
+ */
+ bool DisconnectedJustBeforeIgnOff(const Json::Value& json_app);
+
+ /**
+ * @brief CheckDelayAfterIgnOn should check if SDL was started less
+ * then N secconds ago. N will be readed from profile.
+ * @return true if SDL started N secconds ago, otherwise return false
+ */
+ bool CheckDelayAfterIgnOn();
+
+ /**
+ * @brief CheckAppRestrictions checks if is needed to resume HMI state
+ * by application type and saved app_level
+ * @param json_app - saved application
+ * @return true if resumptions allowed, otherwise return false
+ */
+ bool CheckAppRestrictions(ApplicationSharedPtr application,
+ const Json::Value& json_app);
+ /**
+ * @brief GetObjectIndex allows to obtain specified obbject index from
+ * applications arrays.
+ *
+ * @param mobile_app_id application id that should be found.
+ *
+ * @return application's index of or -1 if it doesn't exists
+ */
+ int GetObjectIndex(const std::string& mobile_app_id);
+
+ /**
+ * @brief Timer callback for restoring HMI Level
+ *
+ */
+ void ApplicationResumptiOnTimer();
+
+ /*
+ * @brief Loads data on start up
+ */
+ void LoadResumeData();
+
+ /*
+ * @brief Return true if application resumption data is valid,
+ * otherwise false
+ *
+ * @param index application index in the resumption list
*/
- static const uint32_t kTimeStep = 3;
+ bool IsResumptionDataValid(uint32_t index);
+
+ template<typename Iterator>
+ Json::Value Append(Iterator first,
+ Iterator last,
+ const std::string& key,
+ Json::Value& result) {
+ while (first != last) {
+ result[key].append(*first);
+ ++first;
+ }
+ return result;
+ }
/**
* @brief times of IGN_OFF that zombie application have to be saved.
@@ -275,10 +505,15 @@ class ResumeCtrl: public event_engine::EventObserver {
* wait for timer to resume HMI Level
*
*/
- std::multiset<application_timestamp, TimeStampComparator> waiting_for_timer_;
mutable sync_primitives::Lock queue_lock_;
+ sync_primitives::Lock resumtion_lock_;
ApplicationManagerImpl* app_mngr_;
- timer::TimerThread<ResumeCtrl> timer_;
+ timer::TimerThread<ResumeCtrl> save_persistent_data_timer_;
+ timer::TimerThread<ResumeCtrl> restore_hmi_level_timer_;
+ std::vector<uint32_t> waiting_for_timer_;
+ bool is_resumption_active_;
+ bool is_data_saved;
+ time_t launch_time_;
};
} // namespace application_manager
diff --git a/src/components/application_manager/test/mock/include/application_manager/smart_object_keys.h b/src/components/application_manager/test/mock/include/application_manager/smart_object_keys.h
index 3d03989874..5d280e622e 100644
--- a/src/components/application_manager/test/mock/include/application_manager/smart_object_keys.h
+++ b/src/components/application_manager/test/mock/include/application_manager/smart_object_keys.h
@@ -50,11 +50,14 @@ const char default_app_id[] = "default";
const char msg_params[] = "msg_params";
+const char method_name[] = "methodName";
const char info[] = "info";
const char app_id[] = "appID";
const char hmi_app_id[] = "hmiAppID";
const char device_mac[] = "deviceMAC";
const char url[] = "url";
+const char urlSchema[] = "urlSchema";
+const char packageName[] = "packageName";
const char cmd_icon[] = "cmdIcon";
const char result_code[] = "resultCode";
const char success[] = "success";
@@ -252,9 +255,14 @@ const char application_subscribtions[] = "subscribtions";
const char application_files[] = "applicationFiles";
const char application_show[] = "applicationShow";
const char resumption[] = "resumption";
+const char resume_app_list[] = "resume_app_list";
+const char last_ign_off_time[] = "last_ign_off_time";
+
const char resume_vr_grammars[] = "resumeVrGrammars";
const char ign_off_count[] = "ign_off_count";
+const char suspend_count[] = "suspend_count";
+
const char connection_info[] = "connection_info";
const char is_download_complete[] = "is_download_complete";
diff --git a/src/components/application_manager/test/mock/include/application_manager/time_metric_observer.h b/src/components/application_manager/test/mock/include/application_manager/time_metric_observer.h
index 780401f6f3..de3deb8372 100644
--- a/src/components/application_manager/test/mock/include/application_manager/time_metric_observer.h
+++ b/src/components/application_manager/test/mock/include/application_manager/time_metric_observer.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2014, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/mock/include/application_manager/usage_statistics.h b/src/components/application_manager/test/mock/include/application_manager/usage_statistics.h
index dcd57aee34..d6ff1f2c49 100644
--- a/src/components/application_manager/test/mock/include/application_manager/usage_statistics.h
+++ b/src/components/application_manager/test/mock/include/application_manager/usage_statistics.h
@@ -1,4 +1,4 @@
-/**
+/*
* Copyright (c) 2014, Ford Motor Company
* All rights reserved.
*
diff --git a/src/components/application_manager/test/request_info_test.cc b/src/components/application_manager/test/request_info_test.cc
new file mode 100644
index 0000000000..be54ff3127
--- /dev/null
+++ b/src/components/application_manager/test/request_info_test.cc
@@ -0,0 +1,240 @@
+#include "gtest/gtest.h"
+#include "gmock/gmock.h"
+#include "application_manager/request_info.h"
+#include "application_manager/message_helper.h"
+#include <iostream>
+
+namespace request_info = application_manager::request_controller;
+
+class MockRequest: public application_manager::commands::Command {
+ public:
+ MockRequest(uint32_t connection_key,
+ uint32_t correlation_id):
+ connection_key_(connection_key),
+ correlation_id_(correlation_id) {
+
+ }
+ MOCK_METHOD0(CheckPermissions, bool ());
+ MOCK_METHOD0(Init, bool ());
+ MOCK_METHOD0(Run, void ());
+ MOCK_METHOD0(CleanUp, bool ());
+ MOCK_CONST_METHOD0(default_timeout, uint32_t ());
+ MOCK_CONST_METHOD0(function_id, int32_t ());
+ MOCK_METHOD0(onTimeOut, void ());
+
+ uint32_t connection_key_;
+ uint32_t correlation_id_;
+ virtual uint32_t connection_key() const;
+ virtual uint32_t correlation_id() const;
+};
+
+class TestRequestInfo: public request_info::RequestInfo {
+ public:
+ TestRequestInfo(request_info::RequestPtr request,
+ const RequestType requst_type,
+ const TimevalStruct& start_time,
+ const uint64_t timeout_sec):
+ RequestInfo(request, requst_type, start_time,timeout_sec) {
+
+ }
+ void SetEndTime(const TimevalStruct& end_time);
+};
+class RequestInfoTest : public ::testing::Test {
+ protected:
+ virtual void SetUp() {
+ //INIT_LOGGER("log4cxx.properties");
+ count_of_requests_for_test_ = 1000;
+ hmi_connection_key_ = 0;
+ mobile_connection_key1_ = 65431;
+ mobile_connection_key2_ = 65123;
+ default_timeout_ = 10;
+ srand(42);
+ }
+ virtual void TearDown() {
+ //DEINIT_LOGGER();
+ }
+
+ request_info::RequestInfoSet request_info_set_;
+ uint32_t count_of_requests_for_test_ ;
+ uint32_t hmi_connection_key_;
+ uint32_t mobile_connection_key1_;
+ uint32_t mobile_connection_key2_;
+ uint32_t default_timeout_;
+
+ utils::SharedPtr<TestRequestInfo> create_test_info(uint32_t connection_key,
+ uint32_t correlation_id,
+ request_info::RequestInfo::RequestType requst_type,
+ const TimevalStruct& start_time,
+ uint64_t timeout_sec) {
+ utils::SharedPtr<MockRequest> mock_request(new MockRequest(connection_key,correlation_id));
+ TestRequestInfo* test_request_raw = new TestRequestInfo(mock_request,requst_type,
+ start_time, timeout_sec);
+ utils::SharedPtr<TestRequestInfo> request(test_request_raw);
+ return request;
+ }
+};
+
+TEST_F(RequestInfoTest, RequestInfoEqualEndTimeTest) {
+ std::list<utils::SharedPtr<TestRequestInfo> > requests;
+ const TimevalStruct& time = date_time::DateTime::getCurrentTime();
+ for (uint32_t i = 0; i < count_of_requests_for_test_; ++i) {
+ utils::SharedPtr<TestRequestInfo> request =
+ create_test_info(rand(), rand(), request_info::RequestInfo::MobileRequest,
+ time, default_timeout_);
+ request->SetEndTime(time);
+ EXPECT_TRUE(request_info_set_.Add(request));
+ }
+ EXPECT_EQ(count_of_requests_for_test_, request_info_set_.Size());
+}
+
+TEST_F(RequestInfoTest, RequestInfoSetInsertErazeTest) {
+ for (uint32_t i = 0; i < count_of_requests_for_test_; ++i) {
+ utils::SharedPtr<TestRequestInfo> request =
+ create_test_info(hmi_connection_key_, i, request_info::RequestInfo::HMIRequest,
+ date_time::DateTime::getCurrentTime(), default_timeout_);
+ EXPECT_TRUE(request_info_set_.Add(request));
+ EXPECT_EQ(1, request_info_set_.RemoveRequest(request));
+ }
+
+ EXPECT_EQ(0u, request_info_set_.Size());
+ std::list<utils::SharedPtr<TestRequestInfo> > requests;
+
+ for (uint32_t i = 0; i < count_of_requests_for_test_; ++i) {
+ utils::SharedPtr<TestRequestInfo> request =
+ create_test_info(hmi_connection_key_, i, request_info::RequestInfo::HMIRequest,
+ date_time::DateTime::getCurrentTime(), default_timeout_);
+ requests.push_back(request);
+ EXPECT_TRUE(request_info_set_.Add(request));
+ }
+
+ std::list<utils::SharedPtr<TestRequestInfo> >::iterator it = requests.begin();
+ std::list<utils::SharedPtr<TestRequestInfo> >::iterator end = requests.end();
+
+ for (; it != end; ++it) {
+ EXPECT_EQ(1,request_info_set_.RemoveRequest(*it));
+ }
+ EXPECT_EQ(0u, request_info_set_.Size());
+ it = requests.begin();
+ for (; it != end; ++it) {
+ EXPECT_TRUE(request_info_set_.Add(*it));
+ }
+ EXPECT_EQ(count_of_requests_for_test_, request_info_set_.Size());
+ EXPECT_EQ(count_of_requests_for_test_, request_info_set_.RemoveByConnectionKey(hmi_connection_key_));
+ EXPECT_EQ(0u, request_info_set_.Size());
+ it = requests.begin();
+ for (; it != end; ++it) {
+ EXPECT_TRUE(request_info_set_.Add(*it));
+ }
+ EXPECT_EQ(count_of_requests_for_test_, request_info_set_.Size());
+ utils::SharedPtr<TestRequestInfo> mobile_request1 =
+ create_test_info(mobile_connection_key1_, 12345, request_info::RequestInfo::MobileRequest,
+ date_time::DateTime::getCurrentTime(), default_timeout_);
+ EXPECT_TRUE(request_info_set_.Add(mobile_request1));
+ utils::SharedPtr<TestRequestInfo> mobile_request2 =
+ create_test_info(mobile_connection_key2_, 54321, request_info::RequestInfo::MobileRequest,
+ date_time::DateTime::getCurrentTime(), default_timeout_);
+ EXPECT_TRUE(request_info_set_.Add(mobile_request2));
+ EXPECT_EQ(count_of_requests_for_test_ + 2, request_info_set_.Size());
+ EXPECT_EQ(2u, request_info_set_.RemoveMobileRequests());
+ EXPECT_EQ(count_of_requests_for_test_, request_info_set_.Size());
+ EXPECT_TRUE(request_info_set_.Add(mobile_request1));
+ EXPECT_TRUE(request_info_set_.Add(mobile_request2));
+ EXPECT_EQ(1u, request_info_set_.RemoveByConnectionKey(mobile_connection_key1_));
+ EXPECT_EQ(count_of_requests_for_test_ + 1, request_info_set_.Size());
+ EXPECT_EQ(count_of_requests_for_test_, request_info_set_.RemoveByConnectionKey(hmi_connection_key_));
+ EXPECT_EQ(1u, request_info_set_.Size());
+ EXPECT_EQ(1u, request_info_set_.RemoveMobileRequests());
+ EXPECT_EQ(0u, request_info_set_.Size());
+}
+
+TEST_F(RequestInfoTest, RequestInfoSetFrontTest) {
+
+ for (uint32_t i = 0; i < count_of_requests_for_test_; ++i) {
+ utils::SharedPtr<TestRequestInfo> request =
+ create_test_info(mobile_connection_key1_, i, request_info::RequestInfo::HMIRequest,
+ date_time::DateTime::getCurrentTime(), i);
+ request_info_set_.Add(request);
+ }
+
+ for (uint32_t i = 1; i < count_of_requests_for_test_; ++i) {
+ request_info::RequestInfoPtr request_info = request_info_set_.Front();
+ EXPECT_TRUE(request_info.valid());
+ EXPECT_EQ(0u, request_info->timeout_sec());
+ request_info = request_info_set_.FrontWithNotNullTimeout();
+ EXPECT_TRUE(request_info.valid());
+ EXPECT_EQ(i, request_info->timeout_sec());
+ EXPECT_TRUE(request_info_set_.RemoveRequest(request_info));
+ }
+ EXPECT_EQ(1u, request_info_set_.Size());
+ EXPECT_EQ(1u, request_info_set_.RemoveByConnectionKey(mobile_connection_key1_));
+ EXPECT_EQ(0u, request_info_set_.Size());
+}
+
+TEST_F(RequestInfoTest, RequestInfoSetFindTest) {
+
+ std::list <std::pair<uint32_t, uint32_t> > appId_coorrId;
+ for (uint32_t i = 0; i < count_of_requests_for_test_; ++i) {
+ appId_coorrId.push_back(std::pair<uint32_t, uint32_t>(rand(),rand()));
+ }
+ std::list <std::pair<uint32_t, uint32_t> >::iterator it;
+ std::list <std::pair<uint32_t, uint32_t> >::iterator end =
+ appId_coorrId.end();;
+
+ for (it = appId_coorrId.begin(); it != end; ++it) {
+ utils::SharedPtr<TestRequestInfo> request =
+ create_test_info(it->first, it->second, request_info::RequestInfo::HMIRequest,
+ date_time::DateTime::getCurrentTime(), 10);
+ EXPECT_TRUE(request_info_set_.Add(request));
+ }
+
+ request_info::RequestInfoPtr request = request_info_set_.Find(rand(),rand());
+ EXPECT_FALSE(request.valid());
+ for (it = appId_coorrId.begin(); it != end; ++it) {
+ request_info::RequestInfoPtr request = request_info_set_.Find(it->first, it->second);
+ EXPECT_TRUE(request.valid());
+ EXPECT_EQ(1u, request_info_set_.RemoveRequest(request));
+ request = request_info_set_.Find(it->first, it->second);
+ EXPECT_FALSE(request.valid());
+ }
+ EXPECT_EQ(0u, request_info_set_.Size());
+}
+
+TEST_F(RequestInfoTest, RequestInfoSetEqualHashTest) {
+ request_info::RequestInfoSet request_info_set;
+ const uint32_t connection_key = 65483;
+ const uint32_t corr_id = 65483;
+ utils::SharedPtr<TestRequestInfo> request =
+ create_test_info(connection_key, corr_id, request_info::RequestInfo::HMIRequest,
+ date_time::DateTime::getCurrentTime(), 10);
+ EXPECT_TRUE(request_info_set.Add(request));
+ EXPECT_FALSE(request_info_set.Add(request));
+ EXPECT_FALSE(request_info_set.Add(request));
+ EXPECT_EQ(1u, request_info_set.Size());
+ request_info::RequestInfoPtr found = request_info_set.Find(connection_key, corr_id);
+ EXPECT_TRUE(found.valid());
+ EXPECT_EQ(1u, request_info_set.RemoveRequest(found));
+ EXPECT_EQ(0u, request_info_set.Size());
+ EXPECT_TRUE(request_info_set.Add(request));
+ EXPECT_FALSE(request_info_set.Add(request));
+ found = request_info_set.FrontWithNotNullTimeout();
+ EXPECT_TRUE(found.valid());
+ EXPECT_EQ(1u, request_info_set.RemoveRequest(found));
+ found = request_info_set.FrontWithNotNullTimeout();
+ EXPECT_FALSE(found.valid());
+ EXPECT_EQ(0u, request_info_set.Size());
+}
+
+
+uint32_t MockRequest::correlation_id() const {
+ return correlation_id_;
+}
+
+uint32_t MockRequest::connection_key() const {
+ return connection_key_;
+}
+
+
+
+void TestRequestInfo::SetEndTime(const TimevalStruct& end_time) {
+ end_time_ = end_time;
+}