namespace tizen {
namespace runtime {
-struct FdHandler
-{
- Ecore_Fd_Handler *handler;
- loader_receiver_cb receiver;
+struct FdHandler {
+ Ecore_Fd_Handler *handler;
+ loader_receiver_cb receiver;
};
static int __argc;
class LaunchpadAdapterImpl : public LaunchpadAdapter
{
- public:
- LaunchpadAdapterImpl() : isLaunched(false) { }
- void LoaderMain(int argc, char* argv[]) override;
-
- std::map<int, FdHandler> Handlers;
-
- private:
- AppInfo appinfo;
- loader_lifecycle_callback_s callbacks;
- loader_adapter_s adapter;
- LauncherInterface* launcher;
- bool isLaunched;
- std::string launchPath;
+ public:
+ LaunchpadAdapterImpl() :
+ callbacks(),
+ adapter(),
+ launcher(nullptr),
+ __isLaunched(false)
+ { }
+ void loaderMain(int argc, char* argv[]) override;
+
+ std::map<int, FdHandler> handlers;
+
+ private:
+ AppInfo appInfo;
+ loader_lifecycle_callback_s callbacks;
+ loader_adapter_s adapter;
+ LauncherInterface* launcher;
+ bool __isLaunched;
+ std::string __launchPath;
};
LaunchpadAdapterImpl LaunchpadImpl;
LaunchpadAdapter& Launchpad = LaunchpadImpl;
#define WITH_SELF(data) \
- LaunchpadAdapterImpl* self = static_cast<LaunchpadAdapterImpl*>(data); \
- if (self == nullptr) \
- { \
- _ERR("No LaunchpadImplData"); \
- } else
+ LaunchpadAdapterImpl* self = static_cast<LaunchpadAdapterImpl*>(data); \
+ if (self == nullptr) \
+ _ERR("No LaunchpadImplData"); \
+ else
-static Eina_Bool Fd_Handler(void *data, Ecore_Fd_Handler* handler)
+static Eina_Bool fdHandler(void *data, Ecore_Fd_Handler* handler)
{
- WITH_SELF(data)
- {
- int fd = ecore_main_fd_handler_fd_get(handler);
- if (fd == -1)
- {
- _ERR("Failed to get the Ecore FD");
- exit(-1);
- }
-
- if (ecore_main_fd_handler_active_get(handler, ECORE_FD_READ))
- {
- if (self->Handlers.find(fd) != self->Handlers.end())
- {
- self->Handlers[fd].receiver(fd);
- }
- }
- else if (ecore_main_fd_handler_active_get(handler, ECORE_FD_ERROR))
- {
- _ERR("Ecore FD Handler Have Error");
- close(fd);
- exit(-1);
- }
- }
-
- return ECORE_CALLBACK_CANCEL;
+ WITH_SELF(data) {
+ int fd = ecore_main_fd_handler_fd_get(handler);
+ if (fd == -1) {
+ _ERR("Failed to get the Ecore FD");
+ exit(-1);
+ }
+
+ if (ecore_main_fd_handler_active_get(handler, ECORE_FD_READ)) {
+ if (self->handlers.find(fd) != self->handlers.end())
+ self->handlers[fd].receiver(fd);
+ } else if (ecore_main_fd_handler_active_get(handler, ECORE_FD_ERROR)) {
+ _ERR("Ecore FD Handler Have Error");
+ close(fd);
+ exit(-1);
+ }
+ }
+
+ return ECORE_CALLBACK_CANCEL;
}
-static void Fd_Add(void *data, int fd, loader_receiver_cb receiver)
+static void fdAdd(void *data, int fd, loader_receiver_cb receiver)
{
- Ecore_Fd_Handler* handler = ecore_main_fd_handler_add(fd,
- static_cast<Ecore_Fd_Handler_Flags>(ECORE_FD_READ | ECORE_FD_ERROR),
- Fd_Handler, data, nullptr, nullptr);
- if (handler == nullptr)
- {
- _ERR("Failed to add a FD handler to ecore main loop");
- close(fd);
- exit(-1);
- }
- WITH_SELF(data)
- {
- self->Handlers[fd] = {handler, receiver};
- }
+ Ecore_Fd_Handler* handler = ecore_main_fd_handler_add(fd,
+ static_cast<Ecore_Fd_Handler_Flags>(ECORE_FD_READ | ECORE_FD_ERROR),
+ fdHandler, data, nullptr, nullptr);
+ if (handler == nullptr) {
+ _ERR("Failed to add a FD handler to ecore main loop");
+ close(fd);
+ exit(-1);
+ } WITH_SELF(data) {
+ self->handlers[fd] = {handler, receiver};
+ }
}
-static void Fd_Remove(void *data, int fd)
+static void fdRemove(void *data, int fd)
{
- WITH_SELF(data)
- {
- if (self->Handlers.find(fd) != self->Handlers.end())
- {
- Ecore_Fd_Handler* handler = self->Handlers[fd].handler;
- ecore_main_fd_handler_del(handler);
- self->Handlers.erase(fd);
- }
- }
+ WITH_SELF(data) {
+ if (self->handlers.find(fd) != self->handlers.end()) {
+ Ecore_Fd_Handler* handler = self->handlers[fd].handler;
+ ecore_main_fd_handler_del(handler);
+ self->handlers.erase(fd);
+ }
+ }
}
-
-static void PreloadLibsAndWindow(bundle *extra, int type, void *user_data)
+static void preloadLibsAndWindow(bundle *extra, int type, void *userData)
{
- int elm_init_cnt = 0;
- const char **so_array;
- int len = 0;
- int i;
- void *handle = NULL;
+ int elmInitCnt = 0;
+ const char **soArray;
+ int len = 0;
+ int i;
+ void *handle = NULL;
- // Preload native libraries
+ // Preload native libraries
if (extra == NULL) {
_DBG("No extra data");
return;
}
- so_array = bundle_get_str_array(extra, "preload", &len);
+ soArray = bundle_get_str_array(extra, "preload", &len);
- if (!so_array)
+ if (!soArray)
return;
for (i = 0; i < len; i++) {
- handle = dlopen(so_array[i], RTLD_NOW);
- _DBG("preload %s# - handle : %x", so_array[i], handle);
+ handle = dlopen(soArray[i], RTLD_NOW);
+ _DBG("preload %s# - handle : %x", soArray[i], handle);
}
- // Precreate window
- elm_init_cnt = elm_init(__argc, __argv);
- _DBG("[candidate] elm init, returned: %d", elm_init_cnt);
+ // Precreate window
+ elmInitCnt = elm_init(__argc, __argv);
+ _DBG("[candidate] elm init, returned: %d", elmInitCnt);
- elm_config_accel_preference_set("hw");
+ elm_config_accel_preference_set("hw");
- __win = elm_win_add(NULL, "package_name", ELM_WIN_BASIC);
- if (__win == NULL) {
- _DBG("[candidate] elm_win_add() failed");
- return;
- }
+ __win = elm_win_add(NULL, "package_name", ELM_WIN_BASIC);
+ if (__win == NULL) {
+ _DBG("[candidate] elm_win_add() failed");
+ return;
+ }
- elm_win_precreated_object_set(__win);
+ elm_win_precreated_object_set(__win);
}
-void LaunchpadAdapterImpl::LoaderMain(int argc, char* argv[])
+void LaunchpadAdapterImpl::loaderMain(int argc, char* argv[])
{
- __argc = argc;
- __argv = argv;
- callbacks.create = [](bundle *extra, int type, void *user_data)
- {
- ecore_init();
- PreloadLibsAndWindow(extra, type, user_data);
- WITH_SELF(user_data)
- {
- if (self->OnCreate != nullptr)
- self->OnCreate();
- }
- };
- callbacks.launch = [](int argc, char** argv, const char* app_path,
- const char* appid, const char* pkgid,
- const char* pkg_type, void* user_data) -> int
- {
- WITH_SELF(user_data)
- {
- self->appinfo.root = std::string(aul_get_app_root_path());
- self->appinfo.path = app_path;
- self->appinfo.id = appid;
- self->appinfo.pkg = pkgid;
- self->appinfo.type = pkg_type;
- if (self->OnLaunch != nullptr)
- self->OnLaunch(self->appinfo, argc, argv);
- }
-
- return 0;
- };
- callbacks.terminate = [](int argc, char **argv, void* user_data) -> int
- {
- _DBG("Terminate!!");
- WITH_SELF(user_data)
- {
- if (self->OnTerminate != nullptr)
- self->OnTerminate(self->appinfo, argc, argv);
- }
- return 0;
- };
-
- adapter.loop_begin = [](void *data)
- {
- ecore_main_loop_begin();
- };
-
- adapter.loop_quit = [](void *data)
- {
- ecore_main_loop_quit();
- };
- adapter.add_fd = Fd_Add;
- adapter.remove_fd = Fd_Remove;
-
- _DBG("launchpad_loader_main is start");
- int r = launchpad_loader_main(argc, argv, &(this->callbacks), &(this->adapter), this);
- _DBG("launchpad_loader_main is finished with [%d]", r);
+ __argc = argc;
+ __argv = argv;
+ callbacks.create = [](bundle *extra, int type, void *userData) {
+ ecore_init();
+ preloadLibsAndWindow(extra, type, userData);
+ WITH_SELF(userData) {
+ if (self->onCreate != nullptr)
+ self->onCreate();
+ }
+ };
+ callbacks.launch = [](int argc, char** argv, const char* appPath,
+ const char* appId, const char* pkgId,
+ const char* pkgType, void* userData) -> int {
+ WITH_SELF(userData) {
+ self->appInfo.root = std::string(aul_get_app_root_path());
+ self->appInfo.path = appPath;
+ self->appInfo.id = appId;
+ self->appInfo.pkg = pkgId;
+ self->appInfo.type = pkgType;
+ if (self->onLaunch != nullptr)
+ self->onLaunch(self->appInfo, argc, argv);
+ }
+
+ return 0;
+ };
+ callbacks.terminate = [](int argc, char **argv, void* userData) -> int {
+ _DBG("Terminate!!");
+ WITH_SELF(userData) {
+ if (self->onTerminate != nullptr)
+ self->onTerminate(self->appInfo, argc, argv);
+ }
+ return 0;
+ };
+
+ adapter.loop_begin = [](void *data) {
+ ecore_main_loop_begin();
+ };
+
+ adapter.loop_quit = [](void *data) {
+ ecore_main_loop_quit();
+ };
+ adapter.add_fd = fdAdd;
+ adapter.remove_fd = fdRemove;
+
+ _DBG("launchpad_loader_main is start");
+ int r = launchpad_loader_main(argc, argv, &(this->callbacks), &(this->adapter), this);
+ _DBG("launchpad_loader_main is finished with [%d]", r);
}
#undef WITH_SELF