END_TEST;
}
+int UtcDaliStageIsShuttingDown(void)
+{
+ DALI_TEST_CHECK(!Stage::IsShuttingDown());
+
+ {
+ TestApplication application;
+
+ DALI_TEST_CHECK(!Stage::IsShuttingDown());
+
+ Stage::GetCurrent();
+
+ DALI_TEST_CHECK(!Stage::IsShuttingDown());
+ }
+
+ // Core destroyed
+ DALI_TEST_CHECK(Stage::IsShuttingDown());
+ END_TEST;
+}
+
+int UtcDaliStageIsCoreInstalled(void)
+{
+ DALI_TEST_CHECK(!Stage::IsCoreInstalled());
+
+ {
+ TestApplication application;
+
+ DALI_TEST_CHECK(Stage::IsCoreInstalled());
+
+ Stage::GetCurrent();
+
+ DALI_TEST_CHECK(Stage::IsCoreInstalled());
+ }
+
+ // Core destroyed
+ DALI_TEST_CHECK(Stage::IsCoreInstalled());
+ END_TEST;
+}
+
+
int UtcDaliStageCopyConstructorP(void)
{
TestApplication application;
/*
- * Copyright (c) 2022 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2023 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.
return Internal::Stage::IsInstalled();
}
+bool Stage::IsShuttingDown()
+{
+ return Internal::Stage::IsShuttingDown();
+}
+
+bool Stage::IsCoreInstalled()
+{
+ return IsInstalled() || ///< Check if Core is installed now,
+ IsShuttingDown(); ///< or Core is shutting down now.
+}
+
void Stage::Add(Actor& actor)
{
GetImplementation(*this).Add(GetImplementation(actor));
#define DALI_STAGE_H
/*
- * Copyright (c) 2022 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2023 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.
static bool IsInstalled();
/**
+ * @brief Queries whether the Stage shutting down now; this should only return false during or before destruction of Dali core.
+ *
+ * @return True when Dali core destructor called.
+ */
+ static bool IsShuttingDown();
+
+ /**
+ * @brief Queries whether we installed Dali core before, or not.
+ * It will be useful whether you want to check we are on valid ui thread or not, after Core initalized ensured.
+ *
+ * @return True when Dali core destructor called.
+ */
+ static bool IsCoreInstalled();
+
+ /**
* @brief Destructor.
*
* This is non-virtual since derived Handle types must not contain data or virtual methods.
return ThreadLocalStorage::Created();
}
+bool Stage::IsShuttingDown()
+{
+ return ThreadLocalStorage::IsShuttingDown();
+}
+
ObjectRegistry& Stage::GetObjectRegistry()
{
return ThreadLocalStorage::Get().GetObjectRegistry();
static bool IsInstalled();
/**
+ * @copydoc Dali::Stage::IsShuttingDown().
+ */
+ static bool IsShuttingDown();
+
+ /**
* @copydoc Dali::Stage::GetObjectRegistry()
*/
ObjectRegistry& GetObjectRegistry();