[Alarm] Allow to create multiple instances of AlarmInstance class.
authorPawel Andruszkiewicz <p.andruszkie@samsung.com>
Wed, 8 Apr 2015 09:18:56 +0000 (11:18 +0200)
committerPawel Andruszkiewicz <p.andruszkie@samsung.com>
Tue, 14 Apr 2015 07:46:59 +0000 (16:46 +0900)
Change-Id: I111f0a4e6f1e8808ef5ae385bc6d939ebf4a8762

src/alarm/alarm_extension.cc
src/alarm/alarm_instance.cc
src/alarm/alarm_instance.h
src/alarm/alarm_manager.cc
src/alarm/alarm_manager.h

index 2da84bf21e3dc15f737107761f5005c9583ef362..0466e1e3fd6fee53738206d60c59d7307a3b7ddd 100644 (file)
@@ -32,5 +32,5 @@ AlarmExtension::AlarmExtension() {
 AlarmExtension::~AlarmExtension() {}
 
 common::Instance* AlarmExtension::CreateInstance() {
-  return &extension::alarm::AlarmInstance::GetInstance();
+  return new extension::alarm::AlarmInstance();
 }
index 82bd3df747e4b716da4ce9bc8b8394bd30b21470..cef4db31142c76e9f822a6efea17931053c1dc2c 100644 (file)
@@ -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() {
index cd7ee19c4872ae07aec042201c5ec264771053cc..f1c56c33ad5abf99f989b84c419eadcfcbf56b26 100644 (file)
@@ -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
index a92ed8c99e72a41bbb6476faf9bcf89d7e1a44ad..cf65e0a616e40b5849f14c2dacf31e3818c223dc 100644 (file)
@@ -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);
index 944bef66504cf750f74cb640fc8105413570f90b..9b8c678e33689939ce72fb667f1907fa17dfebe7 100644 (file)
@@ -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);