summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArtem Nosach <ANosach@luxoft.com>2015-06-09 10:44:38 +0300
committerArtem Nosach <ANosach@luxoft.com>2015-06-23 17:09:25 +0300
commitba12e8f88e8ddc22e13842d8fddb2f2da3210db3 (patch)
treecefe9d635db6dc29ae8561a12a80f52427204006
parent4e7ee0a886c3dad56a49293f98a2324b3d148a6f (diff)
downloadsmartdevicelink-ba12e8f88e8ddc22e13842d8fddb2f2da3210db3.tar.gz
Post review changes.
-rw-r--r--src/3rd_party-static/MessageBroker/include/CMessageBrokerRegistry.hpp6
-rw-r--r--src/3rd_party-static/MessageBroker/src/lib_messagebroker/CMessageBrokerRegistry.cpp36
-rw-r--r--src/components/policy/src/policy/sqlite_wrapper/src/sql_database.cc8
3 files changed, 28 insertions, 22 deletions
diff --git a/src/3rd_party-static/MessageBroker/include/CMessageBrokerRegistry.hpp b/src/3rd_party-static/MessageBroker/include/CMessageBrokerRegistry.hpp
index b4c537662..001f978bb 100644
--- a/src/3rd_party-static/MessageBroker/include/CMessageBrokerRegistry.hpp
+++ b/src/3rd_party-static/MessageBroker/include/CMessageBrokerRegistry.hpp
@@ -53,6 +53,12 @@ namespace NsMessageBroker
void removeControllersByDescriptor(const int fd);
/**
+ * \brief Remove all subscribers by descriptor
+ * \param fd descriptor
+ */
+ void removeSubscribersByDescriptor(const int fd);
+
+ /**
* \brief adds notification subscriber to the registry.
* \param fd file descriptor of controller.
* \param name name of property which should be observed.
diff --git a/src/3rd_party-static/MessageBroker/src/lib_messagebroker/CMessageBrokerRegistry.cpp b/src/3rd_party-static/MessageBroker/src/lib_messagebroker/CMessageBrokerRegistry.cpp
index 278821c8a..1e63f0ba3 100644
--- a/src/3rd_party-static/MessageBroker/src/lib_messagebroker/CMessageBrokerRegistry.cpp
+++ b/src/3rd_party-static/MessageBroker/src/lib_messagebroker/CMessageBrokerRegistry.cpp
@@ -5,7 +5,6 @@
*/
#include "CMessageBrokerRegistry.hpp"
-
#include "libMBDebugHelper.h"
#include <vector>
@@ -55,7 +54,7 @@ namespace NsMessageBroker
int fd;
{
- sync_primitives::AutoLock controllers_lock(mControllersListLock);
+ sync_primitives::AutoLock lock(mControllersListLock);
it = mControllersList.find(name);
if (it != mControllersList.end())
{
@@ -67,38 +66,37 @@ namespace NsMessageBroker
}
DBG_MSG(("Count of controllers: %d\n", mControllersList.size()));
}
-
- sync_primitives::AutoLock subscribers_lock(mSubscribersListLock);
- std::multimap <std::string, int>::iterator it_s = mSubscribersList.begin();
- for (; it_s !=mSubscribersList.end(); ) {
- if (it_s->second == fd) {
- mSubscribersList.erase(it_s++);
- } else {
- ++it_s;
- }
- }
+ removeSubscribersByDescriptor(fd);
}
void CMessageBrokerRegistry::removeControllersByDescriptor(const int fd) {
DBG_MSG(("CMessageBrokerRegistry::removeControllersByDescriptor(%d)\n",
fd));
- std::vector<std::string> controllers_to_delete;
{
- sync_primitives::AutoLock controllers_lock(mControllersListLock);
+ sync_primitives::AutoLock lock(mControllersListLock);
std::map <std::string, int>::iterator it = mControllersList.begin();
for (; it != mControllersList.end();) {
if (it->second == fd) {
- controllers_to_delete.push_back((it++)->first);
+ mControllersList.erase(it);
} else {
++it;
}
}
}
+ removeSubscribersByDescriptor(fd);
+ }
- std::vector<std::string>::iterator delete_it =
- controllers_to_delete.begin();
- for (; controllers_to_delete.end() != delete_it; ++delete_it) {
- deleteController(*delete_it);
+ void CMessageBrokerRegistry::removeSubscribersByDescriptor(const int fd) {
+ DBG_MSG(("CMessageBrokerRegistry::removeSubscribersByDescriptor(%d)\n",
+ fd));
+ sync_primitives::AutoLock lock(mSubscribersListLock);
+ std::multimap <std::string, int>::iterator it_s = mSubscribersList.begin();
+ for (; it_s !=mSubscribersList.end(); ) {
+ if (it_s->second == fd) {
+ mSubscribersList.erase(it_s++);
+ } else {
+ ++it_s;
+ }
}
}
diff --git a/src/components/policy/src/policy/sqlite_wrapper/src/sql_database.cc b/src/components/policy/src/policy/sqlite_wrapper/src/sql_database.cc
index 097e38a48..6a1d70f00 100644
--- a/src/components/policy/src/policy/sqlite_wrapper/src/sql_database.cc
+++ b/src/components/policy/src/policy/sqlite_wrapper/src/sql_database.cc
@@ -50,9 +50,7 @@ SQLDatabase::SQLDatabase(const std::string& db_name)
error_(SQLITE_OK) {}
SQLDatabase::~SQLDatabase() {
- if (conn_) {
- Close();
- }
+ Close();
}
bool SQLDatabase::Open() {
@@ -68,6 +66,10 @@ bool SQLDatabase::IsReadWrite() {
}
void SQLDatabase::Close() {
+ if (!conn_) {
+ return;
+ }
+
sync_primitives::AutoLock auto_lock(conn_lock_);
error_ = sqlite3_close(conn_);
if (error_ == SQLITE_OK) {