e_appinfo/e_policy_appinfo: add getting appid API 59/224559/1
authorDoyoun Kang <doyoun.kang@samsung.com>
Tue, 11 Feb 2020 11:24:44 +0000 (20:24 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Tue, 11 Feb 2020 11:24:47 +0000 (20:24 +0900)
- e_appinfo_appid_get / e_policy_appinfo_appid_get
- usage:
  E_Appinfo *appinfo;
  appinfo = e_appinfo_find_with_pid(ec->netwm.pid);

  Eina_Stringshare *appid = e_appinfo_appid_get(appinfo);
  if (!appid) return;

  // use appid (const char*)

  eina_stringshare_del(appid);

Change-Id: I8386ecc3ec51786e07f8e4c88baf20455f96e41d

src/bin/e.h
src/bin/e_appinfo.c
src/bin/e_appinfo.h

index 8b012b4..1c16803 100644 (file)
@@ -406,6 +406,7 @@ extern E_API Eina_Bool stopping;
 #ifndef USE_E_APPINFO
  #define e_policy_appinfo_find_with_pid e_appinfo_find_with_pid
  #define e_policy_appinfo_base_output_resolution_set e_appinfo_base_output_resolution_set
+ #define e_policy_appinfo_appid_get e_appinfo_appid_get
  #define E_Policy_Appinfo E_Appinfo
 #endif
 
index 1639d7b..00086f1 100644 (file)
@@ -207,6 +207,17 @@ e_appinfo_base_output_resolution_set(E_Appinfo *eai, int width, int height)
    return EINA_TRUE;
 }
 
+E_API Eina_Stringshare *
+e_appinfo_appid_get(E_Appinfo *eai)
+{
+   /*
+      MUST call eina_stringshare_del after using appid.
+      if not, you make memory leak.
+    */
+   EINA_SAFETY_ON_NULL_RETURN_VAL(eai, NULL);
+   return eina_stringshare_add(eai->appid);
+}
+
 E_API E_Appinfo_Hook *
 e_appinfo_hook_add(E_Appinfo_Hook_Point hookpoint, E_Appinfo_Hook_Cb cb, const void *data)
 {
index e852929..b012a8c 100644 (file)
@@ -34,6 +34,8 @@ EINTERN Eina_Bool            e_appinfo_base_output_resolution_get(E_Appinfo *eai
 E_API E_Appinfo             *e_appinfo_find_with_pid(pid_t pid);
 E_API E_Appinfo             *e_appinfo_find_with_appid(const char *appid);
 E_API Eina_Bool              e_appinfo_base_output_resolution_set(E_Appinfo *eai, int width, int height);
+E_API Eina_Stringshare      *e_appinfo_appid_get(E_Appinfo *eai);
+
 
 E_API E_Appinfo_Hook        *e_appinfo_hook_add(E_Appinfo_Hook_Point point, E_Appinfo_Hook_Cb cb, const void *data);
 E_API void                   e_appinfo_hook_del(E_Appinfo_Hook *hook);