Fix setting db path of db manager
authorSangyoon Jang <jeremy.jang@samsung.com>
Fri, 8 May 2020 08:48:21 +0000 (17:48 +0900)
committerSangyoon Jang <jeremy.jang@samsung.com>
Mon, 25 May 2020 04:28:15 +0000 (13:28 +0900)
The path will be passed by input. This change is for improve
extandability.

Change-Id: I760210775cd16460ac92a48c87afe0e9790a823d
Signed-off-by: Sangyoon Jang <jeremy.jang@samsung.com>
src/theme_provider/db_manager.cc
src/theme_provider/db_manager.h
src/theme_provider/theme_info_proxy.cc
src/theme_provider/theme_info_proxy.h

index 606fdc4..4ee1efd 100644 (file)
@@ -14,8 +14,6 @@
 
 namespace {
 
-const char kPath[] = "/opt/dbspace/.theme_info.db";
-
 const char kCreateThemeTableQuery[] =
     "CREATE TABLE IF NOT EXISTS theme (\n"
     "  id           TEXT,\n"
@@ -52,7 +50,7 @@ const char kSetThemeQuery[] =
 namespace ttm {
 namespace provider {
 
-DbManager::DbManager() : conn_(kPath, true) {
+DbManager::DbManager(const std::string& db_path) : conn_(db_path, true) {
 }
 
 DbManager::~DbManager() {
index 54f2134..05286f8 100644 (file)
@@ -24,7 +24,7 @@ class IThemePackageEvent {
 
 class DbManager {
  public:
-  DbManager();
+  explicit DbManager(const std::string& db_path);
   ~DbManager();
   bool Insert(const std::string& id, const tizen_base::Bundle& info);
   bool Update(const std::string& id, const tizen_base::Bundle& info);
index 3ad7915..6e0dde7 100644 (file)
 namespace ttm {
 namespace provider {
 
+ThemeInfoProxy::ThemeInfoProxy(const std::string& db_path) {
+  db_manager_.reset(new DbManager(db_path));
+}
+
 std::shared_ptr<loader::ThemeInfo> ThemeInfoProxy::LoadTheme(
     const std::string& id) {
-  return std::make_shared<loader::ThemeInfo>(db_manager_.Select(id));
+  return std::make_shared<loader::ThemeInfo>(db_manager_->Select(id));
 }
 
 bool ThemeInfoProxy::SaveTheme(const loader::ThemeInfo& info) {
-  return db_manager_.Insert(info.GetId(), info.Serialize());
+  return db_manager_->Insert(info.GetId(), info.Serialize());
 }
 
 bool ThemeInfoProxy::UpdateTheme(const loader::ThemeInfo& info) {
-  return db_manager_.Update(info.GetId(), info.Serialize());
+  return db_manager_->Update(info.GetId(), info.Serialize());
 }
 
 bool ThemeInfoProxy::RemoveTheme(const std::string& id) {
-  return db_manager_.Delete(id);
+  return db_manager_->Delete(id);
 }
 
 std::shared_ptr<loader::ThemeInfo> ThemeInfoProxy::GetLoadedTheme() {
@@ -34,11 +38,11 @@ std::shared_ptr<loader::ThemeInfo> ThemeInfoProxy::GetLoadedTheme() {
 }
 
 bool ThemeInfoProxy::SetCurrentTheme(const std::string& id) {
-  return db_manager_.UpdateCurrentId(id);
+  return db_manager_->UpdateCurrentId(id);
 }
 
 void ThemeInfoProxy::OnThemePackageChanged(const std::string& id) {
-  cur_theme_ = std::make_shared<loader::ThemeInfo>(db_manager_.Select(id));
+  cur_theme_ = std::make_shared<loader::ThemeInfo>(db_manager_->Select(id));
 }
 
 }  // namespace provider
index 01db64f..faa8fe1 100644 (file)
@@ -16,6 +16,7 @@ namespace provider {
 
 class ThemeInfoProxy : public IThemePackageEvent {
  public:
+  explicit ThemeInfoProxy(const std::string& db_path);
   std::shared_ptr<loader::ThemeInfo> LoadTheme(const std::string& id);
   bool SaveTheme(const loader::ThemeInfo& info);
   bool UpdateTheme(const loader::ThemeInfo& info);
@@ -25,7 +26,7 @@ class ThemeInfoProxy : public IThemePackageEvent {
   void OnThemePackageChanged(const std::string& id) override;
 
  private:
-  DbManager db_manager_;
+  std::unique_ptr<DbManager> db_manager_;
   std::shared_ptr<loader::ThemeInfo> cur_theme_;
 };