diff options
author | fronneburg <fronneburg@xevo.com> | 2018-07-05 10:12:28 -0700 |
---|---|---|
committer | fronneburg <fronneburg@xevo.com> | 2018-07-05 10:12:28 -0700 |
commit | bf5c81d55c8bbb839680d0eab29d892a82330341 (patch) | |
tree | e952d6d173599306614efd15962491c97f34d171 /src/components/include/application_manager | |
parent | d4159c1768e28dccdd6027a714de59f93e06c8b2 (diff) | |
parent | ba1da7bc2ff3fd37638620f6bea526384646ab0e (diff) | |
download | sdl_core-bf5c81d55c8bbb839680d0eab29d892a82330341.tar.gz |
Merge branch 'develop' of https://github.com/smartdevicelink/sdl_core into feat/mt_transport_changes
Conflicts:
src/components/application_manager/src/application_manager_impl.cc
src/components/application_manager/test/application_manager_impl_test.cc
src/components/remote_control/test/include/mock_application.h
Diffstat (limited to 'src/components/include/application_manager')
4 files changed, 183 insertions, 32 deletions
diff --git a/src/components/include/application_manager/application_manager.h b/src/components/include/application_manager/application_manager.h index ce09db99d7..39fc3c7ae6 100644 --- a/src/components/include/application_manager/application_manager.h +++ b/src/components/include/application_manager/application_manager.h @@ -39,6 +39,7 @@ #include "application_manager/application.h" #include "application_manager/hmi_capabilities.h" #include "application_manager/commands/command.h" +#include "application_manager/command_factory.h" #include "connection_handler/connection_handler.h" #include "utils/data_accessor.h" #include "utils/shared_ptr.h" @@ -48,10 +49,7 @@ #include "application_manager/state_controller.h" #include "application_manager/hmi_interfaces.h" #include "policy/policy_types.h" -#ifdef SDL_REMOTE_CONTROL -#include "functional_module/plugin_manager.h" -#endif - +#include "application_manager/plugin_manager/rpc_plugin_manager.h" namespace resumption { class LastState; } @@ -82,6 +80,12 @@ namespace application_manager { namespace event_engine { class EventDispatcher; } +namespace rpc_service { +class RPCService; +} +namespace rpc_handler { +class RPCHandler; +} class Application; class StateControllerImpl; @@ -94,7 +98,6 @@ struct ApplicationsAppIdSorter { return lhs->app_id() < rhs->app_id(); } }; - struct ApplicationsPolicyAppIdSorter { bool operator()(const ApplicationSharedPtr lhs, const ApplicationSharedPtr rhs) { @@ -135,8 +138,15 @@ class ApplicationManager { virtual void set_hmi_message_handler( hmi_message_handler::HMIMessageHandler* handler) = 0; + + /** + * @brief set_protocol_handler + * @param handler + * set protocol handler + */ virtual void set_protocol_handler( protocol_handler::ProtocolHandler* handler) = 0; + virtual void set_connection_handler( connection_handler::ConnectionHandler* handler) = 0; @@ -159,7 +169,6 @@ class ApplicationManager { virtual AppSharedPtrs applications_by_button(uint32_t button) = 0; virtual AppSharedPtrs applications_with_navi() = 0; -#ifdef SDL_REMOTE_CONTROL /** * @brief application find application by device and policy identifier * @param device_id device id @@ -176,12 +185,12 @@ class ApplicationManager { virtual std::vector<std::string> devices( const std::string& policy_app_id) const = 0; - virtual void SendPostMessageToMobile(const MessagePtr& message) = 0; - - virtual void SendPostMessageToHMI(const MessagePtr& message) = 0; + virtual plugin_manager::RPCPluginManager& GetPluginManager() = 0; - virtual functional_modules::PluginManager& GetPluginManager() = 0; -#endif // SDL_REMOTE_CONTROL +#ifdef BUILD_TESTS + virtual void SetPluginManager( + std::unique_ptr<plugin_manager::RPCPluginManager>& plugin_manager) = 0; +#endif virtual std::vector<ApplicationSharedPtr> applications_with_mobile_projection() = 0; @@ -308,20 +317,8 @@ class ApplicationManager { */ virtual const std::set<int32_t> GetAppsSubscribedForWayPoints() const = 0; - virtual void SendMessageToMobile(const commands::MessageSharedPtr message, - bool final_message = false) = 0; - - virtual void SendMessageToHMI(const commands::MessageSharedPtr message) = 0; - virtual void RemoveHMIFakeParameters( - application_manager::MessagePtr& message) = 0; - - virtual bool ManageHMICommand(const commands::MessageSharedPtr message) = 0; - virtual bool ManageMobileCommand(const commands::MessageSharedPtr message, - commands::Command::CommandOrigin origin) = 0; - - virtual MessageValidationResult ValidateMessageBySchema( - const Message& message) = 0; + application_manager::commands::MessageSharedPtr& message) = 0; virtual mobile_api::HMILevel::eType GetDefaultHmiLevel( ApplicationConstSharedPtr application) const = 0; @@ -393,6 +390,11 @@ class ApplicationManager { virtual policy::PolicyHandlerInterface& GetPolicyHandler() = 0; virtual const policy::PolicyHandlerInterface& GetPolicyHandler() const = 0; + virtual rpc_service::RPCService& GetRPCService() const = 0; + virtual rpc_handler::RPCHandler& GetRPCHandler() const = 0; + virtual bool is_stopping() const = 0; + virtual bool is_audio_pass_thru_active() const = 0; + virtual uint32_t GetNextHMICorrelationID() = 0; virtual uint32_t GenerateNewHMIAppID() = 0; @@ -444,8 +446,8 @@ class ApplicationManager { * @param vehicle_info Enum value of type of vehicle data * @param new value (for integer values currently) of vehicle data */ - virtual AppSharedPtrs IviInfoUpdated( - mobile_apis::VehicleDataType::eType vehicle_info, int value) = 0; + virtual void IviInfoUpdated(mobile_apis::VehicleDataType::eType vehicle_info, + int value) = 0; virtual ApplicationSharedPtr RegisterApplication(const utils::SharedPtr< smart_objects::SmartObject>& request_for_registration) = 0; @@ -476,6 +478,8 @@ class ApplicationManager { virtual bool IsStopping() const = 0; + virtual bool IsLowVoltage() = 0; + virtual void RemoveAppFromTTSGlobalPropertiesList(const uint32_t app_id) = 0; virtual mobile_apis::Result::eType SaveBinary( @@ -626,6 +630,9 @@ class ApplicationManager { virtual app_launch::AppLaunchCtrl& app_launch_ctrl() = 0; + virtual protocol_handler::MajorProtocolVersion SupportedSDLVersion() + const = 0; + /* * @brief Converts connection string transport type representation * to HMI Common_TransportType @@ -703,9 +710,6 @@ class ApplicationManager { mobile_apis::AudioStreamingState::eType audio_state, mobile_apis::SystemContext::eType system_context) const = 0; - virtual void SendAudioPassThroughNotification( - uint32_t session_key, std::vector<uint8_t>& binary_data) = 0; - /** * @brief Checks if application can stream (streaming service is started and * streaming is enabled in application) diff --git a/src/components/include/application_manager/policies/policy_handler_interface.h b/src/components/include/application_manager/policies/policy_handler_interface.h index d48c7307b9..b8946a63f4 100644 --- a/src/components/include/application_manager/policies/policy_handler_interface.h +++ b/src/components/include/application_manager/policies/policy_handler_interface.h @@ -40,7 +40,6 @@ #include <queue> #include "interfaces/MOBILE_API.h" #include "application_manager/policies/policy_handler_observer.h" -#include "application_manager/core_service.h" #include "application_manager/application.h" #include "policy/usage_statistics/statistics_manager.h" #include "utils/custom_string.h" @@ -471,7 +470,6 @@ class PolicyHandlerInterface { virtual void OnDeviceSwitching(const std::string& device_id_from, const std::string& device_id_to) = 0; -#ifdef SDL_REMOTE_CONTROL /** * @brief Sets HMI default type for specified application * @param application_id ID application @@ -536,7 +534,6 @@ class PolicyHandlerInterface { */ virtual bool GetModuleTypes(const std::string& policy_app_id, std::vector<std::string>* modules) const = 0; -#endif // SDL_REMOTE_CONTROL private: /** diff --git a/src/components/include/application_manager/rpc_handler.h b/src/components/include/application_manager/rpc_handler.h new file mode 100644 index 0000000000..9b6428f32d --- /dev/null +++ b/src/components/include/application_manager/rpc_handler.h @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2018, 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_INCLUDE_APPLICATION_MANAGER_RPC_HANDLER_H +#define SRC_COMPONENTS_INCLUDE_APPLICATION_MANAGER_RPC_HANDLER_H + +#include "protocol_handler/protocol_observer.h" +#include "hmi_message_handler/hmi_message_handler.h" + +#ifdef TELEMETRY_MONITOR +#include "application_manager/telemetry_observer.h" +#endif // TELEMETRY_MONITOR + +namespace application_manager { +namespace rpc_handler { + +class RPCHandler + : public hmi_message_handler::HMIMessageObserver, + public protocol_handler::ProtocolObserver +#ifdef TELEMETRY_MONITOR + , + public telemetry_monitor::TelemetryObservable<AMTelemetryObserver> +#endif // TELEMETRY_MONITOR + { + public: + virtual ~RPCHandler() {} +}; + +} // namespace rpc_handler +} // namespace application_manager +#endif // SRC_COMPONENTS_INCLUDE_APPLICATION_MANAGER_RPC_HANDLER_H diff --git a/src/components/include/application_manager/rpc_service.h b/src/components/include/application_manager/rpc_service.h new file mode 100644 index 0000000000..79b4007f71 --- /dev/null +++ b/src/components/include/application_manager/rpc_service.h @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2018, 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_INCLUDE_APPLICATION_MANAGER_RPC_SERVICE_H +#define SRC_COMPONENTS_INCLUDE_APPLICATION_MANAGER_RPC_SERVICE_H + +#include "application_manager/commands/command.h" +#include "application_manager/message.h" +#include "protocol_handler/protocol_handler.h" +#include "hmi_message_handler/hmi_message_handler.h" + +namespace application_manager { +namespace rpc_service { + +class RPCService { + public: + virtual ~RPCService() {} + + /** + * @brief ManageMobileCommand convert message to mobile command and execute it + * @param message pointer to received message + * @param origin origin of command + * @return true if command is executed, otherwise return false + */ + virtual bool ManageMobileCommand(const commands::MessageSharedPtr message, + commands::Command::CommandSource source) = 0; + /** + * @brief ManageHMICommand convert message to HMI command and execute it + * @param message pointer to received message + * @return true if command is executed, otherwise return false + */ + virtual bool ManageHMICommand(const commands::MessageSharedPtr message) = 0; + + /** + * @brief SendMessageToMobile Put message to the queue to be sent to mobile. + * @param message pointer to message to send + * @param final_message if true - connection to mobile will be closed + * after processing this message + */ + virtual void SendMessageToMobile(const commands::MessageSharedPtr message, + bool final_message = false) = 0; + /** + * @brief SendMessageToHMI Put message to the queue to be sent to HMI. + * @param message pointer to message to send + */ + virtual void SendMessageToHMI(const commands::MessageSharedPtr message) = 0; + + /** + * @brief set_protocol_handler + * @param handler + * set protocol handler + */ + virtual void set_protocol_handler( + protocol_handler::ProtocolHandler* handler) = 0; + virtual void set_hmi_message_handler( + hmi_message_handler::HMIMessageHandler* handler) = 0; +}; +} // namespace rpc_service +} // namespace application_manager + +#endif // SRC_COMPONENTS_INCLUDE_APPLICATION_MANAGER_RPC_SERVICE_H |