void* data_;
};
-std::unique_ptr<AppCore> __context;
std::list<std::shared_ptr<AppCoreBase::EventBase>> __event_list;
int __on_control(bundle* b, void* data) {
using namespace tizen_cpp;
extern "C" EXPORT_API int appcore_base_on_receive(aul_type type, bundle* b) {
- if (__context.get() == nullptr)
+ auto* context = AppCoreBase::GetContext();
+ if (!context)
return -1;
- return __context->AppCoreBase::OnReceive(type, tizen_base::Bundle(b));
+
+ return context->AppCoreBase::OnReceive(type, tizen_base::Bundle(b));
}
extern "C" EXPORT_API int appcore_base_on_create(void) {
- if (__context.get() == nullptr)
+ auto* context = AppCoreBase::GetContext();
+ if (!context)
return -1;
- return __context->AppCoreBase::OnCreate();
+
+ return context->AppCoreBase::OnCreate();
}
extern "C" EXPORT_API int appcore_base_on_control(bundle* b) {
- if (__context.get() == nullptr)
+ auto* context = AppCoreBase::GetContext();
+ if (!context)
return -1;
- return __context->AppCoreBase::OnControl(
+
+ return context->AppCoreBase::OnControl(
b ? tizen_base::Bundle(b) : tizen_base::Bundle());
}
extern "C" EXPORT_API int appcore_base_on_terminate(void) {
- if (__context.get() == nullptr)
+ auto* context = AppCoreBase::GetContext();
+ if (!context)
return -1;
- return __context->AppCoreBase::OnTerminate();
+
+ return context->AppCoreBase::OnTerminate();
}
extern "C" EXPORT_API int appcore_base_on_set_i18n(void) {
- if (__context.get() == nullptr)
+ auto* context = AppCoreBase::GetContext();
+ if (!context)
return -1;
- return __context->AppCoreBase::OnSetI18n();
+
+ return context->AppCoreBase::OnSetI18n();
}
extern "C" EXPORT_API void appcore_base_on_set_event(
enum appcore_base_event event) {
- if (__context.get() == nullptr)
+ auto* context = AppCoreBase::GetContext();
+ if (!context)
return;
- __context->AppCoreBase::OnSetEvent(
+
+ context->AppCoreBase::OnSetEvent(
static_cast<AppCoreBase::IEvent::Type>(event));
}
extern "C" EXPORT_API void appcore_base_on_unset_event(
enum appcore_base_event event) {
- if (__context.get() == nullptr)
+ auto* context = AppCoreBase::GetContext();
+ if (!context)
return;
- __context->AppCoreBase::OnUnsetEvent(
+
+ context->AppCoreBase::OnUnsetEvent(
static_cast<AppCoreBase::IEvent::Type>(event));
}
extern "C" EXPORT_API int appcore_base_on_trim_memory(void) {
- if (__context.get() == nullptr)
+ auto* context = AppCoreBase::GetContext();
+ if (!context)
return -1;
- return __context->AppCoreBase::OnTrimMemory();
+
+ return context->AppCoreBase::OnTrimMemory();
}
+static std::unique_ptr<AppCore> context;
+
extern "C" EXPORT_API int appcore_base_init(appcore_base_ops ops,
int argc, char** argv, void* data) {
- __context.reset(new AppCore(ops, data));
+ context.reset(new AppCore(ops, data));
try {
for (auto& event : __event_list)
- __context->AddEvent(std::move(event));
+ context->AddEvent(std::move(event));
__event_list.clear();
- __context->Init(argc, argv);
+ context->Init(argc, argv);
} catch (const std::runtime_error&) {
return -1;
}
}
extern "C" EXPORT_API void appcore_base_fini(void) {
- if (__context.get() == nullptr)
+ if (!context)
return;
- __context->Fini();
- __context.reset();
+ context->Fini();
+ context.reset();
}
extern "C" EXPORT_API appcore_base_ops appcore_base_get_default_ops(void) {
if (ev == nullptr)
return nullptr;
- if (__context == nullptr) {
+ auto* context = AppCoreBase::GetContext();
+ if (!context) {
__event_list.push_back(*ev);
} else {
- __context->AddEvent(*ev);
+ context->AddEvent(*ev);
}
return static_cast<appcore_base_event_h>(ev);
return -1;
int ret;
- if (__context == nullptr) {
+ auto* context = AppCoreBase::GetContext();
+ if (!context) {
ret = -1;
+
for (auto it = __event_list.begin(); it != __event_list.end(); ++it) {
if (*it == *ev) {
it = __event_list.erase(it);
}
}
} else {
- ret = (__context->RemoveEvent(*ev) ? 0 : -1);
+ ret = (context->RemoveEvent(*ev) ? 0 : -1);
}
delete ev;
void* event,
enum appcore_base_event type) {
LOGE("This api was deprecated since 7.0");
- if (__context == nullptr)
+ auto* context = AppCoreBase::GetContext();
+ if (!context)
return -1;
return 0;
}
extern "C" EXPORT_API int appcore_base_flush_memory(void) {
- if (__context == nullptr)
+ auto* context = AppCoreBase::GetContext();
+ if (!context)
return -1;
- __context->FlushMemory();
+ context->FlushMemory();
return 0;
}
extern "C" DEPRECATED EXPORT_API int appcore_base_get_rotation_state(
enum appcore_base_rm* curr) {
LOGE("This api was deprecated since 7.0");
- if (__context == nullptr)
+ auto* context = AppCoreBase::GetContext();
+ if (!context)
return -1;
return 0;
}
extern "C" EXPORT_API bool appcore_base_is_bg_allowed(void) {
- if (__context == nullptr)
+ auto* context = AppCoreBase::GetContext();
+ if (!context)
return false;
- return __context->IsBgAllowed();
+ return context->IsBgAllowed();
}
extern "C" EXPORT_API bool appcore_base_is_suspended(void) {
- if (__context == nullptr)
+ auto* context = AppCoreBase::GetContext();
+ if (!context)
return false;
- return __context->IsSuspended();
+ return context->IsSuspended();
}
extern "C" EXPORT_API void appcore_base_toggle_suspended_state(void) {
- if (__context == nullptr)
+ auto* context = AppCoreBase::GetContext();
+ if (!context)
return;
- __context->ToggleSuspendedState();
+ context->ToggleSuspendedState();
}
extern "C" EXPORT_API int appcore_base_set_i18n(const char* domain_name,
const char* dir_name) {
- if (__context == nullptr || domain_name == nullptr || dir_name == nullptr)
+ auto* context = AppCoreBase::GetContext();
+ if (!context || domain_name == nullptr || dir_name == nullptr)
return -1;
- return __context->SetI18n(domain_name, dir_name);
+ return context->SetI18n(domain_name, dir_name);
}
extern "C" EXPORT_API void appcore_base_exit(void) {
aul_status_update(STATUS_DYING);
- if (__context == nullptr)
+ auto* context = AppCoreBase::GetContext();
+ if (!context)
return;
- __context->Exit();
+ context->Exit();
}
extern "C" EXPORT_API void appcore_base_add_suspend_timer(void) {
- if (__context == nullptr)
+ auto* context = AppCoreBase::GetContext();
+ if (!context)
return;
- __context->AddSuspendTimer();
+ context->AddSuspendTimer();
}
extern "C" EXPORT_API void appcore_base_remove_suspend_timer(void) {
- if (__context == nullptr)
+ auto* context = AppCoreBase::GetContext();
+ if (!context)
return;
- __context->RemoveSuspendTimer();
+ context->RemoveSuspendTimer();
}
extern "C" EXPORT_API void appcore_base_set_display_state(int display_state) {
- if (__context == nullptr)
+ auto* context = AppCoreBase::GetContext();
+ if (!context)
return;
- __context->SetDisplayState(
+ context->SetDisplayState(
static_cast<AppCoreBase::DisplayState>(display_state));
}
extern "C" EXPORT_API int appcore_base_get_display_state(void) {
- if (__context == nullptr)
+ auto* context = AppCoreBase::GetContext();
+ if (!context)
return -1;
- return __context->GetDisplayState();
+ return context->GetDisplayState();
}