From: Pawel Andruszkiewicz Date: Wed, 8 Apr 2015 09:18:56 +0000 (+0200) Subject: [Alarm] Allow to create multiple instances of AlarmInstance class. X-Git-Tag: submit/tizen_tv/20150603.064601~1^2~179 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=eeef76dbce51f8ea40039ba410c81c6ca0f6bfed;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git [Alarm] Allow to create multiple instances of AlarmInstance class. Change-Id: I111f0a4e6f1e8808ef5ae385bc6d939ebf4a8762 --- diff --git a/src/alarm/alarm_extension.cc b/src/alarm/alarm_extension.cc index 2da84bf2..0466e1e3 100644 --- a/src/alarm/alarm_extension.cc +++ b/src/alarm/alarm_extension.cc @@ -32,5 +32,5 @@ AlarmExtension::AlarmExtension() { AlarmExtension::~AlarmExtension() {} common::Instance* AlarmExtension::CreateInstance() { - return &extension::alarm::AlarmInstance::GetInstance(); + return new extension::alarm::AlarmInstance(); } diff --git a/src/alarm/alarm_instance.cc b/src/alarm/alarm_instance.cc index 82bd3df7..cef4db31 100644 --- a/src/alarm/alarm_instance.cc +++ b/src/alarm/alarm_instance.cc @@ -4,7 +4,6 @@ #include "alarm_instance.h" -#include "alarm_manager.h" #include "common/picojson.h" #include "common/logger.h" @@ -13,35 +12,26 @@ namespace alarm { using namespace common; -namespace { -AlarmManager* alarm_manager = &AlarmManager::GetInstance(); -} - -AlarmInstance& AlarmInstance::GetInstance() { - static AlarmInstance instance; - return instance; -} - AlarmInstance::AlarmInstance() { LoggerD("Entered"); using namespace std::placeholders; RegisterSyncHandler("AlarmManager_add", - std::bind(&AlarmManager::Add, alarm_manager, _1, _2)); + std::bind(&AlarmManager::Add, &manager_, _1, _2)); RegisterSyncHandler("AlarmManager_remove", - std::bind(&AlarmManager::Remove, alarm_manager, _1, _2)); + std::bind(&AlarmManager::Remove, &manager_, _1, _2)); RegisterSyncHandler("AlarmManager_removeAll", - std::bind(&AlarmManager::RemoveAll, alarm_manager, _1, _2)); + std::bind(&AlarmManager::RemoveAll, &manager_, _1, _2)); RegisterSyncHandler("AlarmManager_get", - std::bind(&AlarmManager::Get, alarm_manager, _1, _2)); + std::bind(&AlarmManager::Get, &manager_, _1, _2)); RegisterSyncHandler("AlarmManager_getAll", - std::bind(&AlarmManager::GetAll, alarm_manager, _1, _2)); + std::bind(&AlarmManager::GetAll, &manager_, _1, _2)); //AlarmRelative RegisterSyncHandler("AlarmRelative_getRemainingSeconds", - std::bind(&AlarmManager::GetRemainingSeconds, alarm_manager, _1, _2)); + std::bind(&AlarmManager::GetRemainingSeconds, &manager_, _1, _2)); //AlarmAbsolute RegisterSyncHandler("AlarmAbsolute_getNextScheduledDate", - std::bind(&AlarmManager::GetNextScheduledDate, alarm_manager, _1, _2)); + std::bind(&AlarmManager::GetNextScheduledDate, &manager_, _1, _2)); } AlarmInstance::~AlarmInstance() { diff --git a/src/alarm/alarm_instance.h b/src/alarm/alarm_instance.h index cd7ee19c..f1c56c33 100644 --- a/src/alarm/alarm_instance.h +++ b/src/alarm/alarm_instance.h @@ -7,15 +7,18 @@ #include "common/extension.h" +#include "alarm/alarm_manager.h" + namespace extension { namespace alarm { class AlarmInstance: public common::ParsedInstance { public: - static AlarmInstance& GetInstance(); - private: AlarmInstance(); virtual ~AlarmInstance(); + + private: + AlarmManager manager_; }; } // namespace alarm diff --git a/src/alarm/alarm_manager.cc b/src/alarm/alarm_manager.cc index a92ed8c9..cf65e0a6 100644 --- a/src/alarm/alarm_manager.cc +++ b/src/alarm/alarm_manager.cc @@ -55,11 +55,6 @@ AlarmManager::AlarmManager() { AlarmManager::~AlarmManager() { } -AlarmManager& AlarmManager::GetInstance() { - static AlarmManager instance; - return instance; -} - void AlarmManager::Add(const picojson::value& args, picojson::object& out) { LoggerD("Entered"); CHECK_PRIVILEGE_ACCESS(kPrivilegeAlarm, &out); diff --git a/src/alarm/alarm_manager.h b/src/alarm/alarm_manager.h index 944bef66..9b8c678e 100644 --- a/src/alarm/alarm_manager.h +++ b/src/alarm/alarm_manager.h @@ -13,7 +13,7 @@ namespace alarm { class AlarmManager { public: - static AlarmManager& GetInstance(); + AlarmManager(); virtual ~AlarmManager(); void Add(const picojson::value& args, picojson::object& out); @@ -28,7 +28,6 @@ class AlarmManager { void GetNextScheduledDate(const picojson::value& args, picojson::object& out); private: - AlarmManager(); AlarmManager(const AlarmManager&) = delete; AlarmManager& operator=(const AlarmManager&) = delete; common::PlatformResult GetAlarm(int id, picojson::object& obj);