summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Oleynik (GitHub) <aoleynik@luxoft.com>2017-10-27 11:25:12 +0300
committerAndriy Byzhynar <AByzhynar@luxoft.com>2018-01-18 12:03:50 +0200
commit0127696c46a24ade4e76e32807175e0cfa5103a0 (patch)
tree7cb4616214ab0a8233721912a40cb0b8e12d62c4
parentfd9e46abe2e28198f43e2b6f67f2bcb6e9dc53e7 (diff)
downloadsdl_core-0127696c46a24ade4e76e32807175e0cfa5103a0.tar.gz
Changes CommandHolderImpl usage and removes odd interface
Also typedefs used, typo in description fixed, minor code changes
-rw-r--r--src/components/application_manager/include/application_manager/application_manager_impl.h2
-rw-r--r--src/components/application_manager/include/application_manager/command_holder.h8
-rw-r--r--src/components/application_manager/include/application_manager/command_holder_impl.h14
-rw-r--r--src/components/application_manager/src/application_manager_impl.cc9
-rw-r--r--src/components/application_manager/src/command_holder_impl.cc12
-rw-r--r--src/components/application_manager/test/command_holder_test.cc15
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 {