summaryrefslogtreecommitdiff
path: root/src/components/application_manager/src/policies/policy_event_observer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/application_manager/src/policies/policy_event_observer.cc')
-rw-r--r--src/components/application_manager/src/policies/policy_event_observer.cc25
1 files changed, 18 insertions, 7 deletions
diff --git a/src/components/application_manager/src/policies/policy_event_observer.cc b/src/components/application_manager/src/policies/policy_event_observer.cc
index 488097761a..09f97dd3f1 100644
--- a/src/components/application_manager/src/policies/policy_event_observer.cc
+++ b/src/components/application_manager/src/policies/policy_event_observer.cc
@@ -32,20 +32,31 @@
#include "application_manager/policies/policy_event_observer.h"
#include "application_manager/smart_object_keys.h"
+#include "application_manager/policies/policy_handler.h"
#include "utils/date_time.h"
-#include "policy/policy_manager.h"
#include "smart_objects/smart_object.h"
namespace policy {
namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
using namespace application_manager;
+class PolicyHandler;
-PolicyEventObserver::PolicyEventObserver(utils::SharedPtr<PolicyManager> policy_manager)
- : policy_manager_(policy_manager) {
+CREATE_LOGGERPTR_GLOBAL(logger_, "PolicyHandler")
+
+PolicyEventObserver::PolicyEventObserver(PolicyHandler* const policy_handler)
+ : policy_handler_(policy_handler) {
+}
+
+void PolicyEventObserver::set_policy_handler(policy::PolicyHandler* const policy_handler) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ sync_primitives::AutoLock auto_lock(policy_handler_lock_);
+ LOG4CXX_DEBUG(logger_, "Set policy handler " << policy_handler);
+ policy_handler_ = policy_handler;
}
void PolicyEventObserver::on_event(const event_engine::Event& event) {
- if (!policy_manager_) {
+ sync_primitives::AutoLock auto_lock(policy_handler_lock_);
+ if (!policy_handler_) {
return;
}
const smart_objects::SmartObject& message = event.smart_object();
@@ -67,7 +78,7 @@ void PolicyEventObserver::on_event(const event_engine::Event& event) {
break;
}
case hmi_apis::FunctionID::BasicCommunication_OnReady: {
- policy_manager_->OnSystemReady();
+ policy_handler_->OnSystemReady();
unsubscribe_from_event(hmi_apis::FunctionID::BasicCommunication_OnReady);
break;
}
@@ -88,8 +99,8 @@ void PolicyEventObserver::ProcessOdometerEvent(const smart_objects::SmartObject&
const int kSecondsInDay = 60 * 60 * 24;
int days_after_epoch = current_time.tv_sec / kSecondsInDay;
- if(policy_manager_) {
- policy_manager_->PTUpdatedAt(
+ if (policy_handler_) {
+ policy_handler_->PTUpdatedAt(
message[strings::msg_params][strings::odometer].asInt(),
days_after_epoch);
}