Revert "[Tizen] Change deletion order of FrameworkFactory"
authorseungho baek <sbsh.baek@samsung.com>
Tue, 18 Jul 2023 09:00:55 +0000 (18:00 +0900)
committerseungho baek <sbsh.baek@samsung.com>
Tue, 18 Jul 2023 09:00:55 +0000 (18:00 +0900)
This reverts commit fb4931c1ab92d3fa3fd691026067d1ffb3a89746.

20 files changed:
automated-tests/src/dali-adaptor/dali-test-suite-utils/adaptor-test-application.h
dali/internal/adaptor/android/framework-factory-android.cpp
dali/internal/adaptor/android/framework-factory-android.h
dali/internal/adaptor/androidjni/framework-factory-androidjni.cpp
dali/internal/adaptor/androidjni/framework-factory-androidjni.h
dali/internal/adaptor/common/application-impl.cpp
dali/internal/adaptor/common/application-impl.h
dali/internal/adaptor/common/framework-factory.h
dali/internal/adaptor/glib/framework-factory-glib.cpp
dali/internal/adaptor/glib/framework-factory-glib.h
dali/internal/adaptor/libuv/framework-factory-libuv.cpp
dali/internal/adaptor/libuv/framework-factory-libuv.h
dali/internal/adaptor/macos/framework-factory-mac.h
dali/internal/adaptor/macos/framework-factory-mac.mm
dali/internal/adaptor/tizen-wayland/framework-factory-tizen.cpp
dali/internal/adaptor/tizen-wayland/framework-factory-tizen.h
dali/internal/adaptor/ubuntu/framework-factory-ubuntu.cpp
dali/internal/adaptor/ubuntu/framework-factory-ubuntu.h
dali/internal/adaptor/windows/framework-factory-win.cpp
dali/internal/adaptor/windows/framework-factory-win.h

index 386b946..6d23c2f 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_ADAPTOR_TEST_APPLICATION_H
 
 /*
- * Copyright (c) 2023 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +19,6 @@
  */
 
 // INTERNAL INCLUDES
-#include <dali/internal/adaptor/common/framework-factory.h>
 #include "adaptor-test-adaptor-impl.h"
 #include "test-application.h"
 
@@ -38,14 +37,11 @@ public:
   : TestApplication(surfaceWidth, surfaceHeight, horizontalDpi, verticalDpi)
   {
     Internal::Adaptor::Adaptor::SetAvailable();
-    mFrameworkFactory = std::unique_ptr<Internal::Adaptor::FrameworkFactory>(Dali::Internal::Adaptor::CreateFrameworkFactory());
   }
 
   ~AdaptorTestApplication()
   {
   }
-
-  std::unique_ptr<Internal::Adaptor::FrameworkFactory> mFrameworkFactory;
 };
 
 } // namespace Dali
index 70b74f8..29acd0b 100644 (file)
@@ -28,31 +28,20 @@ namespace Internal
 {
 namespace Adaptor
 {
-FrameworkFactory* gFrameworkFactory = nullptr;
-
-FrameworkFactoryAndroid::FrameworkFactoryAndroid()
-{
-  gFrameworkFactory = this;
-}
-
-FrameworkFactoryAndroid::~FrameworkFactoryAndroid()
-{
-  gFrameworkFactory = nullptr;
-}
-
 std::unique_ptr<Framework> FrameworkFactoryAndroid::CreateFramework(FrameworkBackend backend, Framework::Observer& observer, Framework::TaskObserver& taskObserver, int* argc, char*** argv, Framework::Type type, bool useUiThread)
 {
   return Utils::MakeUnique<FrameworkAndroid>(observer, taskObserver, argc, argv, type, useUiThread);
 }
 
-FrameworkFactory* CreateFrameworkFactory()
-{
-  return (new FrameworkFactoryAndroid());
-}
-
 FrameworkFactory* GetFrameworkFactory()
 {
-  return gFrameworkFactory;
+  static std::unique_ptr<FrameworkFactory> frameworkFactory = nullptr;
+
+  if(!frameworkFactory)
+  {
+    frameworkFactory = Utils::MakeUnique<FrameworkFactoryAndroid>();
+  }
+  return frameworkFactory.get();
 }
 
 } // namespace Adaptor
index 49e2965..4b3b9e6 100644 (file)
@@ -29,9 +29,6 @@ namespace Adaptor
 class FrameworkFactoryAndroid : public FrameworkFactory
 {
 public:
-  FrameworkFactoryAndroid();
-  ~FrameworkFactoryAndroid();
-
   std::unique_ptr<Framework> CreateFramework(FrameworkBackend frameworkType, Framework::Observer& observer, Framework::TaskObserver& taskObserver, int* argc, char*** argv, Framework::Type type, bool useUiThread) override;
 };
 
index 4d7849d..d4dd93c 100644 (file)
@@ -28,31 +28,20 @@ namespace Internal
 {
 namespace Adaptor
 {
-FrameworkFactory* gFrameworkFactory = nullptr;
-
-FrameworkFactoryAndroidJni::FrameworkFactoryAndroidJni()
-{
-  gFrameworkFactory = this;
-}
-
-FrameworkFactoryAndroidJni::~FrameworkFactoryAndroidJni()
-{
-  gFrameworkFactory = nullptr;
-}
-
 std::unique_ptr<Framework> FrameworkFactoryAndroidJni::CreateFramework(FrameworkBackend backend, Framework::Observer& observer, Framework::TaskObserver& taskObserver, int* argc, char*** argv, Framework::Type type, bool useUiThread)
 {
   return Utils::MakeUnique<FrameworkAndroidJni>(observer, taskObserver, argc, argv, type, useUiThread);
 }
 
-FrameworkFactory* CreateFrameworkFactory()
-{
-  return (new FrameworkFactoryAndroidJni());
-}
-
 FrameworkFactory* GetFrameworkFactory()
 {
-  return gFrameworkFactory;
+  static std::unique_ptr<FrameworkFactory> frameworkFactory = nullptr;
+
+  if(!frameworkFactory)
+  {
+    frameworkFactory = Utils::MakeUnique<FrameworkFactoryAndroidJni>();
+  }
+  return frameworkFactory.get();
 }
 
 } // namespace Adaptor
index a3ead02..782ed97 100644 (file)
@@ -29,9 +29,6 @@ namespace Adaptor
 class FrameworkFactoryAndroidJni : public FrameworkFactory
 {
 public:
-  FrameworkFactoryAndroidJni();
-  ~FrameworkFactoryAndroidJni();
-
   std::unique_ptr<Framework> CreateFramework(FrameworkBackend frameworkType, Framework::Observer& observer, Framework::TaskObserver& taskObserver, int* argc, char*** argv, Framework::Type type, bool useUiThread) override;
 };
 
index 13a5fe6..9bad3be 100644 (file)
@@ -81,11 +81,11 @@ void Application::PreInitialize(int* argc, char** argv[])
 {
   if(!gPreInitializedApplication)
   {
-    char* retEnv        = std::getenv("TIZEN_UI_THREAD");
-    bool  isUseUIThread = false;
+    char* retEnv = std::getenv("TIZEN_UI_THREAD");
+    bool isUseUIThread = false;
     if(retEnv)
     {
-      std::string uiThreadEnv   = retEnv;
+      std::string uiThreadEnv = retEnv;
       std::string enabledString = "true";
       if(uiThreadEnv == enabledString)
       {
@@ -101,13 +101,15 @@ void Application::PreInitialize(int* argc, char** argv[])
     {
       DALI_LOG_RELEASE_INFO("PRE_INITIALIZED with UI Threading");
       gPreInitializedApplication->mUIThreadLoader = new UIThreadLoader(argc, argv);
-      gPreInitializedApplication->mUIThreadLoader->Run([&]() { gPreInitializedApplication->CreateWindow(); });
+      gPreInitializedApplication->mUIThreadLoader->Run([&](){gPreInitializedApplication->CreateWindow();});
     }
     else
     {
       DALI_LOG_RELEASE_INFO("Only PRE_INITIALIZED");
       gPreInitializedApplication->CreateWindow(); // Only create window
     }
+
+
   }
 }
 
@@ -121,7 +123,6 @@ Application::Application(int* argc, char** argv[], const std::string& stylesheet
   mLanguageChangedSignal(),
   mRegionChangedSignal(),
   mFramework(nullptr),
-  mFrameworkFactory(nullptr),
   mCommandLineOptions(nullptr),
   mAdaptorBuilder(nullptr),
   mAdaptor(nullptr),
@@ -151,9 +152,7 @@ Application::Application(int* argc, char** argv[], const std::string& stylesheet
   }
 
   mCommandLineOptions = new CommandLineOptions(argc, argv);
-
-  mFrameworkFactory = std::unique_ptr<FrameworkFactory>(Dali::Internal::Adaptor::CreateFrameworkFactory());
-  mFramework        = mFrameworkFactory->CreateFramework(FrameworkBackend::DEFAULT, *this, *this, argc, argv, applicationType, mUseUiThread);
+  mFramework          = Dali::Internal::Adaptor::GetFrameworkFactory()->CreateFramework(FrameworkBackend::DEFAULT, *this, *this, argc, argv, applicationType, mUseUiThread);
 
   mUseRemoteSurface = (applicationType == Framework::WATCH);
 }
index 26d478f..914664a 100644 (file)
@@ -54,7 +54,6 @@ enum State
 } // namespace Launchpad
 
 class CommandLineOptions;
-class FrameworkFactory;
 
 typedef Dali::Rect<int> PositionSize;
 
@@ -521,8 +520,7 @@ private:
   LowMemorySignalType                mTaskLowMemorySignal;
   DeviceOrientationChangedSignalType mTaskDeviceOrientationChangedSignal;
 
-  std::unique_ptr<Framework>        mFramework;
-  std::unique_ptr<FrameworkFactory> mFrameworkFactory;
+  std::unique_ptr<Framework> mFramework;
 
   CommandLineOptions* mCommandLineOptions;
 
@@ -546,7 +544,7 @@ private:
 
   SlotDelegate<Application> mSlotDelegate;
 
-  UIThreadLoader*       mUIThreadLoader;
+  UIThreadLoader* mUIThreadLoader;
   static ApplicationPtr gPreInitializedApplication;
 };
 
index 9b67976..885cdb1 100644 (file)
@@ -46,15 +46,7 @@ public:
   }
 };
 
-/**
- * @brief Creates a framework factory
- */
-FrameworkFactory* CreateFrameworkFactory();
-
-/**
- * @brief Gets a framework factory
- */
-FrameworkFactory* GetFrameworkFactory();
+extern FrameworkFactory* GetFrameworkFactory();
 
 } // namespace Adaptor
 } // namespace Internal
index aa92665..baf5954 100644 (file)
@@ -28,31 +28,20 @@ namespace Internal
 {
 namespace Adaptor
 {
-FrameworkFactory* gFrameworkFactory = nullptr;
-
-FrameworkFactoryGlib::FrameworkFactoryGlib()
-{
-  gFrameworkFactory = this;
-}
-
-FrameworkFactoryGlib::~FrameworkFactoryGlib()
-{
-  gFrameworkFactory = nullptr;
-}
-
 std::unique_ptr<Framework> FrameworkFactoryGlib::CreateFramework(FrameworkBackend backend, Framework::Observer& observer, Framework::TaskObserver& taskObserver, int* argc, char*** argv, Framework::Type type, bool useUiThread)
 {
   return Utils::MakeUnique<FrameworkGlib>(observer, taskObserver, argc, argv, type, useUiThread);
 }
 
-FrameworkFactory* CreateFrameworkFactory()
-{
-  return (new FrameworkFactoryGlib());
-}
-
 FrameworkFactory* GetFrameworkFactory()
 {
-  return gFrameworkFactory;
+  static std::unique_ptr<FrameworkFactory> frameworkFactory = nullptr;
+
+  if(!frameworkFactory)
+  {
+    frameworkFactory = Utils::MakeUnique<FrameworkFactoryGlib>();
+  }
+  return frameworkFactory.get();
 }
 
 } // namespace Adaptor
index f38877b..5969b3b 100644 (file)
@@ -29,9 +29,6 @@ namespace Adaptor
 class FrameworkFactoryGlib : public FrameworkFactory
 {
 public:
-  FrameworkFactoryGlib();
-  ~FrameworkFactoryGlib();
-
   std::unique_ptr<Framework> CreateFramework(FrameworkBackend frameworkType, Framework::Observer& observer, Framework::TaskObserver& taskObserver, int* argc, char*** argv, Framework::Type type, bool useUiThread) override;
 };
 
index 8b25184..b608d45 100644 (file)
@@ -28,31 +28,20 @@ namespace Internal
 {
 namespace Adaptor
 {
-FrameworkFactory* gFrameworkFactory = nullptr;
-
-FrameworkFactoryLibuv::FrameworkFactoryLibuv()
-{
-  gFrameworkFactory = this;
-}
-
-FrameworkFactoryLibuv::~FrameworkFactoryLibuv()
-{
-  gFrameworkFactory = nullptr;
-}
-
 std::unique_ptr<Framework> FrameworkFactoryLibuv::CreateFramework(FrameworkBackend backend, Framework::Observer& observer, Framework::TaskObserver& taskObserver, int* argc, char*** argv, Framework::Type type, bool useUiThread)
 {
   return Utils::MakeUnique<FrameworkLibuv>(observer, taskObserver, argc, argv, type, useUiThread);
 }
 
-FrameworkFactory* CreateFrameworkFactory()
-{
-  return (new FrameworkFactoryLibuv());
-}
-
 FrameworkFactory* GetFrameworkFactory()
 {
-  return gFrameworkFactory;
+  static std::unique_ptr<FrameworkFactory> frameworkFactory = nullptr;
+
+  if(!frameworkFactory)
+  {
+    frameworkFactory = Utils::MakeUnique<FrameworkFactoryLibuv>();
+  }
+  return frameworkFactory.get();
 }
 
 } // namespace Adaptor
index 2205761..2b4d0ae 100644 (file)
@@ -29,9 +29,6 @@ namespace Adaptor
 class FrameworkFactoryLibuv : public FrameworkFactory
 {
 public:
-  FrameworkFactoryLibuv();
-  ~FrameworkFactoryLibuv();
-
   std::unique_ptr<Framework> CreateFramework(FrameworkBackend frameworkType, Framework::Observer& observer, Framework::TaskObserver& taskObserver, int* argc, char*** argv, Framework::Type type, bool useUiThread) override;
 };
 
index 44663c3..1778d70 100644 (file)
@@ -29,9 +29,6 @@ namespace Adaptor
 class FrameworkFactoryMac : public FrameworkFactory
 {
 public:
-  FrameworkFactoryMac();
-  ~FrameworkFactoryMac();
-
   std::unique_ptr<Framework> CreateFramework(FrameworkBackend frameworkType, Framework::Observer& observer, Framework::TaskObserver& taskObserver, int* argc, char*** argv, Framework::Type type, bool useUiThread) override;
 };
 
index 9d8afa8..8deb80e 100644 (file)
@@ -28,31 +28,20 @@ namespace Internal
 {
 namespace Adaptor
 {
-FrameworkFactory* gFrameworkFactory = nullptr;
-
-FrameworkFactoryMac::FrameworkFactoryMac()
-{
-  gFrameworkFactory = this;
-}
-
-FrameworkFactoryMac::~FrameworkFactoryMac()
-{
-  gFrameworkFactory = nullptr;
-}
-
 std::unique_ptr<Framework> FrameworkFactoryMac::CreateFramework(FrameworkBackend backend, Framework::Observer& observer, Framework::TaskObserver& taskObserver, int* argc, char*** argv, Framework::Type type, bool useUiThread)
 {
   return Utils::MakeUnique<FrameworkMac>(observer, taskObserver, argc, argv, type, useUiThread);
 }
 
-FrameworkFactory* CreateFrameworkFactory()
-{
-  return (new FrameworkFactoryMac());
-}
-
 FrameworkFactory* GetFrameworkFactory()
 {
-  return gFrameworkFactory;
+  static std::unique_ptr<FrameworkFactory> frameworkFactory = nullptr;
+
+  if(!frameworkFactory)
+  {
+    frameworkFactory = Utils::MakeUnique<FrameworkFactoryMac>();
+  }
+  return frameworkFactory.get();
 }
 
 } // namespace Adaptor
index fc84ee3..d466db1 100644 (file)
@@ -29,18 +29,6 @@ namespace Internal
 {
 namespace Adaptor
 {
-FrameworkFactory* gFrameworkFactory = nullptr;
-
-FrameworkFactoryTizen::FrameworkFactoryTizen()
-{
-  gFrameworkFactory = this;
-}
-
-FrameworkFactoryTizen::~FrameworkFactoryTizen()
-{
-  gFrameworkFactory = nullptr;
-}
-
 std::unique_ptr<Framework> FrameworkFactoryTizen::CreateFramework(FrameworkBackend backend, Framework::Observer& observer, Framework::TaskObserver& taskObserver, int* argc, char*** argv, Framework::Type type, bool useUiThread)
 {
   mBackend = backend;
@@ -54,14 +42,15 @@ std::unique_ptr<Framework> FrameworkFactoryTizen::CreateFramework(FrameworkBacke
   }
 }
 
-FrameworkFactory* CreateFrameworkFactory()
-{
-  return (new FrameworkFactoryTizen());
-}
-
 FrameworkFactory* GetFrameworkFactory()
 {
-  return gFrameworkFactory;
+  static std::unique_ptr<FrameworkFactory> frameworkFactory = nullptr;
+
+  if(!frameworkFactory)
+  {
+    frameworkFactory = Utils::MakeUnique<FrameworkFactoryTizen>();
+  }
+  return frameworkFactory.get();
 }
 
 } // namespace Adaptor
index a337b3b..68879fb 100644 (file)
@@ -29,9 +29,6 @@ namespace Adaptor
 class FrameworkFactoryTizen : public FrameworkFactory
 {
 public:
-  FrameworkFactoryTizen();
-  ~FrameworkFactoryTizen();
-
   std::unique_ptr<Framework> CreateFramework(FrameworkBackend frameworkType, Framework::Observer& observer, Framework::TaskObserver& taskObserver, int* argc, char*** argv, Framework::Type type, bool useUiThread) override;
 
   FrameworkBackend GetFrameworkBackend() const override
@@ -40,7 +37,7 @@ public:
   }
 
 private:
-  FrameworkBackend mBackend{FrameworkBackend::DEFAULT};
+  FrameworkBackend mBackend;
 };
 
 } // namespace Adaptor
index be754e9..ae2c084 100644 (file)
@@ -28,31 +28,20 @@ namespace Internal
 {
 namespace Adaptor
 {
-FrameworkFactory* gFrameworkFactory = nullptr;
-
-FrameworkFactoryUbuntu::FrameworkFactoryUbuntu()
-{
-  gFrameworkFactory = this;
-}
-
-FrameworkFactoryUbuntu::~FrameworkFactoryUbuntu()
-{
-  gFrameworkFactory = nullptr;
-}
-
 std::unique_ptr<Framework> FrameworkFactoryUbuntu::CreateFramework(FrameworkBackend backend, Framework::Observer& observer, Framework::TaskObserver& taskObserver, int* argc, char*** argv, Framework::Type type, bool useUiThread)
 {
   return Utils::MakeUnique<FrameworkUbuntu>(observer, taskObserver, argc, argv, type, useUiThread);
 }
 
-FrameworkFactory* CreateFrameworkFactory()
-{
-  return (new FrameworkFactoryUbuntu());
-}
-
 FrameworkFactory* GetFrameworkFactory()
 {
-  return gFrameworkFactory;
+  static std::unique_ptr<FrameworkFactory> frameworkFactory = nullptr;
+
+  if(!frameworkFactory)
+  {
+    frameworkFactory = Utils::MakeUnique<FrameworkFactoryUbuntu>();
+  }
+  return frameworkFactory.get();
 }
 
 } // namespace Adaptor
index 61cf122..f7d6b2a 100644 (file)
@@ -29,9 +29,6 @@ namespace Adaptor
 class FrameworkFactoryUbuntu : public FrameworkFactory
 {
 public:
-  FrameworkFactoryUbuntu();
-  ~FrameworkFactoryUbuntu();
-
   std::unique_ptr<Framework> CreateFramework(FrameworkBackend frameworkType, Framework::Observer& observer, Framework::TaskObserver& taskObserver, int* argc, char*** argv, Framework::Type type, bool useUiThread) override;
 };
 
index 16c595b..e94a561 100644 (file)
@@ -28,31 +28,20 @@ namespace Internal
 {
 namespace Adaptor
 {
-FrameworkFactory* gFrameworkFactory = nullptr;
-
-FrameworkFactoryWin::FrameworkFactoryWin()
-{
-  gFrameworkFactory = this;
-}
-
-FrameworkFactoryWin::~FrameworkFactoryWin()
-{
-  gFrameworkFactory = nullptr;
-}
-
 std::unique_ptr<Framework> FrameworkFactoryWin::CreateFramework(FrameworkBackend backend, Framework::Observer& observer, Framework::TaskObserver& taskObserver, int* argc, char*** argv, Framework::Type type, bool useUiThread)
 {
   return Utils::MakeUnique<FrameworkWin>(observer, taskObserver, argc, argv, type, useUiThread);
 }
 
-FrameworkFactory* CreateFrameworkFactory()
-{
-  return (new FrameworkFactoryWin());
-}
-
 FrameworkFactory* GetFrameworkFactory()
 {
-  return gFrameworkFactory;
+  static std::unique_ptr<FrameworkFactory> frameworkFactory = nullptr;
+
+  if(!frameworkFactory)
+  {
+    frameworkFactory = Utils::MakeUnique<FrameworkFactoryWin>();
+  }
+  return frameworkFactory.get();
 }
 
 } // namespace Adaptor
index 50c4447..039e3fa 100644 (file)
@@ -29,9 +29,6 @@ namespace Adaptor
 class FrameworkFactoryWin : public FrameworkFactory
 {
 public:
-  FrameworkFactoryWin();
-  ~FrameworkFactoryWin();
-
   std::unique_ptr<Framework> CreateFramework(FrameworkBackend frameworkType, Framework::Observer& observer, Framework::TaskObserver& taskObserver, int* argc, char*** argv, Framework::Type type, bool useUiThread) override;
 };