summaryrefslogtreecommitdiff
path: root/src/components/application_manager/src/resumption/resumption_data_json.cc
diff options
context:
space:
mode:
authorAlexander Kutsan <AKutsan@luxoft.com>2015-03-16 12:42:32 +0200
committerdtrunov <dtrunov@luxoft.com>2015-06-23 15:18:51 +0300
commit642c0472fcab52bfdff092292f1645649d94ddd6 (patch)
tree6d86886db5a2163cee84dbe31d53f2d80aa4e165 /src/components/application_manager/src/resumption/resumption_data_json.cc
parent5c7e29e9950d9f2e63465f473557332057e56097 (diff)
downloadsdl_core-642c0472fcab52bfdff092292f1645649d94ddd6.tar.gz
Rebase issues
Diffstat (limited to 'src/components/application_manager/src/resumption/resumption_data_json.cc')
-rw-r--r--src/components/application_manager/src/resumption/resumption_data_json.cc44
1 files changed, 32 insertions, 12 deletions
diff --git a/src/components/application_manager/src/resumption/resumption_data_json.cc b/src/components/application_manager/src/resumption/resumption_data_json.cc
index 1739083fd6..9125d60946 100644
--- a/src/components/application_manager/src/resumption/resumption_data_json.cc
+++ b/src/components/application_manager/src/resumption/resumption_data_json.cc
@@ -37,6 +37,7 @@
#include "application_manager/message_helper.h"
#include "application_manager/smart_object_keys.h"
#include "resumption/last_state.h"
+#include "config_profile/profile.h"
namespace resumption {
@@ -44,6 +45,11 @@ namespace Formatters = NsSmartDeviceLink::NsJSONHandler::Formatters;
CREATE_LOGGERPTR_GLOBAL(logger_, "ResumptionDataJson")
+ResumptionDataJson::ResumptionDataJson():
+ ResumptionData(){
+
+}
+
void ResumptionDataJson::SaveApplication(
app_mngr::ApplicationConstSharedPtr application) {
using namespace app_mngr;
@@ -60,6 +66,7 @@ void ResumptionDataJson::SaveApplication(
MessageHelper::GetDeviceMacAddressForHandle(application->device());
const mobile_apis::HMILevel::eType hmi_level = application->hmi_level();
+ sync_primitives::AutoLock autolock(resumption_lock_);
Json::Value tmp;
Json::Value& json_app = GetFromSavedOrAppend(m_app_id, device_id);
@@ -99,6 +106,7 @@ int ResumptionDataJson::GetStoredHMILevel(const std::string& m_app_id,
const std::string& device_id) {
using namespace app_mngr;
LOG4CXX_AUTO_TRACE(logger_);
+ sync_primitives::AutoLock autolock(resumption_lock_);
int idx = GetObjectIndex(m_app_id, device_id);
if (idx != -1) {
const Json::Value& json_app = GetSavedApplications()[idx];
@@ -113,7 +121,7 @@ int ResumptionDataJson::GetStoredHMILevel(const std::string& m_app_id,
bool ResumptionDataJson::IsHMIApplicationIdExist(uint32_t hmi_app_id) {
using namespace app_mngr;
LOG4CXX_AUTO_TRACE(logger_);
-
+ sync_primitives::AutoLock autolock(resumption_lock_);
for (Json::Value::iterator it = GetSavedApplications().begin();
it != GetSavedApplications().end(); ++it) {
if ((*it).isMember(strings::hmi_app_id)) {
@@ -129,6 +137,7 @@ bool ResumptionDataJson::CheckSavedApplication(const std::string& mobile_app_id,
const std::string& device_id) {
using namespace app_mngr;
LOG4CXX_AUTO_TRACE(logger_);
+ sync_primitives::AutoLock autolock(resumption_lock_);
int index = IsApplicationSaved(mobile_app_id, device_id);
if (-1 == index) {
return false;
@@ -148,7 +157,7 @@ uint32_t ResumptionDataJson::GetHMIApplicationID(
const std::string& mobile_app_id, const std::string& device_id) {
using namespace app_mngr;
LOG4CXX_AUTO_TRACE(logger_);
-
+ sync_primitives::AutoLock autolock(resumption_lock_);
uint32_t hmi_app_id = 0;
const int idx = GetObjectIndex(mobile_app_id, device_id);
@@ -168,7 +177,9 @@ uint32_t ResumptionDataJson::GetHMIApplicationID(
void ResumptionDataJson::OnSuspend() {
using namespace app_mngr;
+ using namespace profile;
LOG4CXX_AUTO_TRACE(logger_);
+ sync_primitives::AutoLock autolock(resumption_lock_);
Json::Value to_save;
for (Json::Value::iterator it = GetSavedApplications().begin();
it != GetSavedApplications().end(); ++it) {
@@ -181,7 +192,8 @@ void ResumptionDataJson::OnSuspend() {
}
if ((*it).isMember(strings::ign_off_count)) {
const uint32_t ign_off_count = (*it)[strings::ign_off_count].asUInt();
- if (ign_off_count < 3) { // TODO read from profile
+ const uint32_t application_lifes = 3; // TODO make profile variable
+ if (ign_off_count < application_lifes) { // TODO read from profile
(*it)[strings::ign_off_count] = ign_off_count + 1;
to_save.append(*it);
}
@@ -199,6 +211,7 @@ void ResumptionDataJson::OnSuspend() {
void ResumptionDataJson::OnAwake() {
using namespace app_mngr;
+ sync_primitives::AutoLock autolock(resumption_lock_);
LOG4CXX_AUTO_TRACE(logger_);
for (Json::Value::iterator it = GetSavedApplications().begin();
@@ -218,7 +231,7 @@ bool ResumptionDataJson::GetHashId(const std::string& mobile_app_id,
std::string& hash_id) {
using namespace app_mngr;
LOG4CXX_AUTO_TRACE(logger_);
-
+ sync_primitives::AutoLock autolock(resumption_lock_);
const int idx = GetObjectIndex(mobile_app_id, device_id);
if (-1 == idx) {
LOG4CXX_WARN(logger_, "Application not saved");
@@ -238,6 +251,8 @@ bool ResumptionDataJson::GetHashId(const std::string& mobile_app_id,
bool ResumptionDataJson::GetSavedApplication(const std::string& mobile_app_id,
const std::string& device_id,
smart_objects::SmartObject& saved_app) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ sync_primitives::AutoLock autolock(resumption_lock_);
const int idx = GetObjectIndex(mobile_app_id, device_id);
if (-1 == idx) {
return false;
@@ -250,8 +265,8 @@ bool ResumptionDataJson::GetSavedApplication(const std::string& mobile_app_id,
bool ResumptionDataJson::RemoveApplicationFromSaved(const std::string& mobile_app_id,
const std::string& device_id) {
using namespace app_mngr;
- LOG4CXX_TRACE(logger_, "Remove mobile_app_id " << mobile_app_id);
-
+ LOG4CXX_AUTO_TRACE(logger_);
+ sync_primitives::AutoLock autolock(resumption_lock_);
bool result = false;
std::vector<Json::Value> temp;
for (Json::Value::iterator it = GetSavedApplications().begin();
@@ -285,6 +300,7 @@ bool ResumptionDataJson::RemoveApplicationFromSaved(const std::string& mobile_ap
uint32_t ResumptionDataJson::GetIgnOffTime() {
using namespace app_mngr;
LOG4CXX_AUTO_TRACE(logger_);
+ sync_primitives::AutoLock autolock(resumption_lock_);
Json::Value& resumption = GetResumptionData();
if (!resumption.isMember(strings::last_ign_off_time)) {
resumption[strings::last_ign_off_time] = 0;
@@ -296,6 +312,7 @@ uint32_t ResumptionDataJson::GetIgnOffTime() {
int ResumptionDataJson::IsApplicationSaved(const std::string& mobile_app_id,
const std::string& device_id) {
LOG4CXX_AUTO_TRACE(logger_);
+ sync_primitives::AutoLock autolock(resumption_lock_);
return GetObjectIndex(mobile_app_id, device_id);
}
@@ -303,7 +320,7 @@ Json::Value& ResumptionDataJson::GetFromSavedOrAppend(const std::string& mobile_
const std::string& device_id) {
using namespace app_mngr;
LOG4CXX_AUTO_TRACE(logger_);
-
+ sync_primitives::AutoLock autolock(resumption_lock_);
for (Json::Value::iterator it = GetSavedApplications().begin();
it != GetSavedApplications().end(); ++it) {
if (device_id == (*it)[strings::device_id].asString() &&
@@ -319,6 +336,7 @@ void ResumptionDataJson::GetDataForLoadResumeData(
smart_objects::SmartObject& saved_data) {
using namespace app_mngr;
LOG4CXX_AUTO_TRACE(logger_);
+ sync_primitives::AutoLock autolock(resumption_lock_);
smart_objects::SmartObject so_array_data(smart_objects::SmartType_Array);
int i = 0;
for (Json::Value::iterator it = GetSavedApplications().begin();
@@ -347,13 +365,13 @@ ResumptionDataJson::~ResumptionDataJson() {
void ResumptionDataJson::UpdateHmiLevel(const std::string& mobile_app_id,
const std::string& device_id,
int32_t hmi_level) {
- //TODO Update HNI Level in saved App
+ //TODO Update HMI Level in saved App
}
Json::Value& ResumptionDataJson::GetSavedApplications() {
using namespace app_mngr;
LOG4CXX_AUTO_TRACE(logger_);
-
+ sync_primitives::AutoLock autolock(resumption_lock_);
Json::Value& resumption = GetResumptionData();
if (!resumption.isMember(strings::resume_app_list)) {
resumption[strings::resume_app_list] = Json::Value(Json::arrayValue);
@@ -370,7 +388,7 @@ Json::Value& ResumptionDataJson::GetSavedApplications() {
Json::Value& ResumptionDataJson::GetResumptionData() {
using namespace app_mngr;
LOG4CXX_AUTO_TRACE(logger_);
-
+ sync_primitives::AutoLock autolock(resumption_lock_);
Json::Value& last_state = ::resumption::LastState::instance()->dictionary;
if (!last_state.isMember(strings::resumption)) {
last_state[strings::resumption] = Json::Value(Json::objectValue);
@@ -388,7 +406,7 @@ int ResumptionDataJson::GetObjectIndex(const std::string& mobile_app_id,
const std::string& device_id) {
using namespace app_mngr;
LOG4CXX_AUTO_TRACE(logger_);
-
+ sync_primitives::AutoLock autolock(resumption_lock_);
const Json::Value& apps = GetSavedApplications();
const Json::ArrayIndex size = apps.size();
Json::ArrayIndex idx = 0;
@@ -410,7 +428,7 @@ int ResumptionDataJson::GetObjectIndex(const std::string& mobile_app_id,
bool ResumptionDataJson::IsResumptionDataValid(uint32_t index) {
using namespace app_mngr;
LOG4CXX_AUTO_TRACE(logger_);
-
+ sync_primitives::AutoLock autolock(resumption_lock_);
const Json::Value& json_app = GetSavedApplications()[index];
if (!json_app.isMember(strings::app_id) ||
!json_app.isMember(strings::ign_off_count) ||
@@ -433,12 +451,14 @@ bool ResumptionDataJson::IsResumptionDataValid(uint32_t index) {
void ResumptionDataJson::SetSavedApplication(Json::Value& apps_json) {
LOG4CXX_AUTO_TRACE(logger_);
+ sync_primitives::AutoLock autolock(resumption_lock_);
Json::Value& app_list = GetSavedApplications();
app_list = apps_json;
}
void ResumptionDataJson::SetLastIgnOffTime(time_t ign_off_time) {
using namespace app_mngr;
+ sync_primitives::AutoLock autolock(resumption_lock_);
LOG4CXX_AUTO_TRACE(logger_);
LOG4CXX_WARN(logger_, "ign_off_time = " << ign_off_time);
Json::Value& resumption = GetResumptionData();