diff options
author | Andrey Oleynik (GitHub) <aoleynik@luxoft.com> | 2017-10-27 11:25:12 +0300 |
---|---|---|
committer | Andriy Byzhynar <AByzhynar@luxoft.com> | 2018-01-18 12:03:50 +0200 |
commit | 0127696c46a24ade4e76e32807175e0cfa5103a0 (patch) | |
tree | 7cb4616214ab0a8233721912a40cb0b8e12d62c4 | |
parent | fd9e46abe2e28198f43e2b6f67f2bcb6e9dc53e7 (diff) | |
download | sdl_core-0127696c46a24ade4e76e32807175e0cfa5103a0.tar.gz |
Changes CommandHolderImpl usage and removes odd interface
Also typedefs used, typo in description fixed, minor code changes
6 files changed, 22 insertions, 38 deletions
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 8d5bbd742e..3402bb7c5c 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 @@ -1720,7 +1720,7 @@ class ApplicationManagerImpl volatile bool is_stopping_; - CommandHolderImpl commands_holder_; + std::unique_ptr<CommandHolder> commands_holder_; #ifdef BUILD_TESTS public: diff --git a/src/components/application_manager/include/application_manager/command_holder.h b/src/components/application_manager/include/application_manager/command_holder.h index ee9d9f34cb..6a92e805b0 100644 --- a/src/components/application_manager/include/application_manager/command_holder.h +++ b/src/components/application_manager/include/application_manager/command_holder.h @@ -38,15 +38,15 @@ namespace application_manager { /** - * @brief The CommandsHolder class should hold commands for particular + * @brief The CommandHolder class should hold commands for particular * application specified by its id */ -class CommandsHolder { +class CommandHolder { public: /** * @brief ~CommandsHolder destructor */ - virtual ~CommandsHolder() {} + virtual ~CommandHolder() {} /** * @brief Hold collects command for specific application policy id internally @@ -54,7 +54,7 @@ class CommandsHolder { * @param command Command */ virtual void Hold(const std::string& policy_app_id, - utils::SharedPtr<smart_objects::SmartObject> command) = 0; + smart_objects::SmartObjectSPtr command) = 0; /** * @brief Release send all collected commands for further processing and diff --git a/src/components/application_manager/include/application_manager/command_holder_impl.h b/src/components/application_manager/include/application_manager/command_holder_impl.h index 8e4edadbab..686c449199 100644 --- a/src/components/application_manager/include/application_manager/command_holder_impl.h +++ b/src/components/application_manager/include/application_manager/command_holder_impl.h @@ -49,19 +49,13 @@ class ApplicationManager; * process and sends for processing after switching is completed successfully * or drop otherwise */ -class CommandHolderImpl : public CommandsHolder { +class CommandHolderImpl : public CommandHolder { public: /** * @brief CommandHolderImpl constructor */ - CommandHolderImpl(); - /** - * @brief SetCommandsProcessor sets internal member to be able to - * process collected commands - * @param app_manager Applicaton manager - */ - void SetCommandsProcessor(ApplicationManager* app_manager); + explicit CommandHolderImpl(ApplicationManager& app_manager); /** * @brief Hold collects command for specific application id internally @@ -69,7 +63,7 @@ class CommandHolderImpl : public CommandsHolder { * @param command Command */ void Hold(const std::string& policy_app_id, - utils::SharedPtr<smart_objects::SmartObject> command) FINAL; + smart_objects::SmartObjectSPtr command) FINAL; /** * @brief Release sends all collected HMI commands to ApplicationManager @@ -89,7 +83,7 @@ class CommandHolderImpl : public CommandsHolder { std::map<std::string, std::vector<utils::SharedPtr<smart_objects::SmartObject> > >; - ApplicationManager* app_manager_; + ApplicationManager& app_manager_; sync_primitives::Lock commands_lock_; AppCommands app_commands_; }; diff --git a/src/components/application_manager/src/application_manager_impl.cc b/src/components/application_manager/src/application_manager_impl.cc index 113b6e826a..4f9cccb4d9 100644 --- a/src/components/application_manager/src/application_manager_impl.cc +++ b/src/components/application_manager/src/application_manager_impl.cc @@ -53,6 +53,7 @@ #include "application_manager/helpers/application_helper.h" #include "protocol_handler/protocol_handler.h" #include "hmi_message_handler/hmi_message_handler.h" +#include "application_manager/command_holder_impl.h" #include "connection_handler/connection_handler_impl.h" #include "formatters/formatter_json_rpc.h" #include "formatters/CFormatterJsonSDLRPCv2.h" @@ -195,7 +196,7 @@ ApplicationManagerImpl::ApplicationManagerImpl( const uint32_t timeout_ms = 10000u; clearing_timer->Start(timeout_ms, timer::kSingleShot); timer_pool_.push_back(clearing_timer); - commands_holder_.SetCommandsProcessor(this); + commands_holder_.reset(new CommandHolderImpl(*this)); } ApplicationManagerImpl::~ApplicationManagerImpl() { @@ -390,7 +391,7 @@ void ApplicationManagerImpl::OnApplicationRegistered(ApplicationSharedPtr app) { } void ApplicationManagerImpl::OnApplicationSwitched(ApplicationSharedPtr app) { - commands_holder_.Release(app->policy_app_id()); + commands_holder_->Release(app->policy_app_id()); } bool ApplicationManagerImpl::IsAppTypeExistsInFullOrLimited( @@ -1100,7 +1101,7 @@ void ApplicationManagerImpl::OnDeviceSwitchFinish( app_it != reregister_wait_list_.end(); ++app_it) { auto app = *app_it; - commands_holder_.Drop(app->policy_app_id()); + commands_holder_->Drop(app->policy_app_id()); UnregisterApplication(app->app_id(), mobile_apis::Result::INVALID_ENUM, is_resuming, @@ -2051,7 +2052,7 @@ bool ApplicationManagerImpl::ManageHMICommand( auto app = application(command->connection_key()); if (app && IsAppInReconnectMode(app->policy_app_id())) { - commands_holder_.Hold(app->policy_app_id(), message); + commands_holder_->Hold(app->policy_app_id(), message); return true; } diff --git a/src/components/application_manager/src/command_holder_impl.cc b/src/components/application_manager/src/command_holder_impl.cc index 3bb3e8c190..db3e1648ef 100644 --- a/src/components/application_manager/src/command_holder_impl.cc +++ b/src/components/application_manager/src/command_holder_impl.cc @@ -34,13 +34,8 @@ #include "application_manager/application_manager.h" namespace application_manager { -CommandHolderImpl::CommandHolderImpl() - : app_manager_(nullptr), commands_lock_() {} - -void CommandHolderImpl::SetCommandsProcessor(ApplicationManager* app_manager) { - DCHECK_OR_RETURN_VOID(app_manager); - app_manager_ = app_manager; -} +CommandHolderImpl::CommandHolderImpl(ApplicationManager& app_manager) + : app_manager_(app_manager) {} void CommandHolderImpl::Hold( const std::string& policy_app_id, @@ -56,8 +51,7 @@ void CommandHolderImpl::Release(const std::string& policy_app_id) { return; } for (auto cmd : app_commands->second) { - DCHECK_OR_RETURN_VOID(app_manager_); - app_manager_->ManageHMICommand(cmd); + app_manager_.ManageHMICommand(cmd); } app_commands_.erase(app_commands); diff --git a/src/components/application_manager/test/command_holder_test.cc b/src/components/application_manager/test/command_holder_test.cc index 0a365dca73..70035aec4d 100644 --- a/src/components/application_manager/test/command_holder_test.cc +++ b/src/components/application_manager/test/command_holder_test.cc @@ -57,8 +57,7 @@ class CommandHolderImplTest : public testing::Test { }; TEST_F(CommandHolderImplTest, HoldOne_ExpectReleaseOne) { - am::CommandHolderImpl cmd_holder; - cmd_holder.SetCommandsProcessor(&mock_app_manager_); + am::CommandHolderImpl cmd_holder(mock_app_manager_); cmd_holder.Hold(kPolicyAppId_, cmd_ptr_); // Act @@ -67,8 +66,7 @@ TEST_F(CommandHolderImplTest, HoldOne_ExpectReleaseOne) { } TEST_F(CommandHolderImplTest, HoldMany_ExpectReleaseSame) { - am::CommandHolderImpl cmd_holder; - cmd_holder.SetCommandsProcessor(&mock_app_manager_); + am::CommandHolderImpl cmd_holder(mock_app_manager_); int32_t iterations = 0; do { @@ -82,8 +80,7 @@ TEST_F(CommandHolderImplTest, HoldMany_ExpectReleaseSame) { } TEST_F(CommandHolderImplTest, Hold_Drop_ExpectNoReleased) { - am::CommandHolderImpl cmd_holder; - cmd_holder.SetCommandsProcessor(&mock_app_manager_); + am::CommandHolderImpl cmd_holder(mock_app_manager_); cmd_holder.Hold(kPolicyAppId_, cmd_ptr_); cmd_holder.Hold(kPolicyAppId_, cmd_ptr_); @@ -94,8 +91,7 @@ TEST_F(CommandHolderImplTest, Hold_Drop_ExpectNoReleased) { } TEST_F(CommandHolderImplTest, Hold_ReleaseAnotherId_ExpectNoReleased) { - am::CommandHolderImpl cmd_holder; - cmd_holder.SetCommandsProcessor(&mock_app_manager_); + am::CommandHolderImpl cmd_holder(mock_app_manager_); cmd_holder.Hold(kPolicyAppId_, cmd_ptr_); cmd_holder.Hold(kPolicyAppId_, cmd_ptr_); @@ -105,8 +101,7 @@ TEST_F(CommandHolderImplTest, Hold_ReleaseAnotherId_ExpectNoReleased) { } TEST_F(CommandHolderImplTest, Hold_DropAnotherId_ExpectReleased) { - am::CommandHolderImpl cmd_holder; - cmd_holder.SetCommandsProcessor(&mock_app_manager_); + am::CommandHolderImpl cmd_holder(mock_app_manager_); int32_t iterations = 0; do { |