diff options
author | Ira Lytvynenko <ILytvynenko@luxoft.com> | 2018-01-26 13:29:38 +0200 |
---|---|---|
committer | Ira Lytvynenko (GitHub) <ILytvynenko@luxoft.com> | 2018-06-26 12:01:42 +0300 |
commit | f83d4759add793398b24cca0ae1dd157d03f648c (patch) | |
tree | 6b949862b639f0ab1cb536109377ae77f62177ba /src/components/include/application_manager | |
parent | a79341d7a35b7d97e239d4908a34b72978d5a821 (diff) | |
download | sdl_core-f83d4759add793398b24cca0ae1dd157d03f648c.tar.gz |
RPCService implementation
Fix commands UTs
Diffstat (limited to 'src/components/include/application_manager')
-rw-r--r-- | src/components/include/application_manager/application_manager.h | 28 | ||||
-rw-r--r-- | src/components/include/application_manager/rpc_service.h | 83 |
2 files changed, 98 insertions, 13 deletions
diff --git a/src/components/include/application_manager/application_manager.h b/src/components/include/application_manager/application_manager.h index f6f06bd7cd..069e2261e8 100644 --- a/src/components/include/application_manager/application_manager.h +++ b/src/components/include/application_manager/application_manager.h @@ -82,6 +82,9 @@ namespace application_manager { namespace event_engine { class EventDispatcher; } +namespace rpc_service { +class RPCService; +} class Application; class StateControllerImpl; @@ -135,6 +138,12 @@ class ApplicationManager { virtual void set_hmi_message_handler( hmi_message_handler::HMIMessageHandler* handler) = 0; + + /** + * @brief set_protocol_handler + * @param handler + * set protocol handler and initialize rpc_service + */ virtual void set_protocol_handler( protocol_handler::ProtocolHandler* handler) = 0; virtual void set_connection_handler( @@ -176,10 +185,6 @@ 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 functional_modules::PluginManager& GetPluginManager() = 0; #endif // SDL_REMOTE_CONTROL @@ -308,18 +313,9 @@ 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; @@ -379,6 +375,7 @@ class ApplicationManager { virtual protocol_handler::ProtocolHandler& protocol_handler() const = 0; virtual policy::PolicyHandlerInterface& GetPolicyHandler() = 0; virtual const policy::PolicyHandlerInterface& GetPolicyHandler() const = 0; + virtual rpc_service::RPCService& GetRPCService() const = 0; virtual uint32_t GetNextHMICorrelationID() = 0; virtual uint32_t GenerateNewHMIAppID() = 0; @@ -463,6 +460,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( @@ -613,6 +612,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 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..38a5fce6e5 --- /dev/null +++ b/src/components/include/application_manager/rpc_service.h @@ -0,0 +1,83 @@ +/* + * 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" + +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::CommandOrigin origin) = 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; + +#ifdef SDL_REMOTE_CONTROL + virtual void SendPostMessageToMobile(const MessagePtr& message) = 0; + virtual void SendPostMessageToHMI(const MessagePtr& message) = 0; +#endif // SDL_REMOTE_CONTROL +}; +} // namespace rpc_service +} // namespace application_manager + +#endif // SRC_COMPONENTS_INCLUDE_APPLICATION_MANAGER_RPC_SERVICE_H |