storage: Change NeedCleanup signal from "ss" to "is" 18/182418/5 accepted/tizen/unified/20180629.061540 submit/tizen/20180627.063926 submit/tizen/20180627.113622 submit/tizen/20180628.074606
authorpr.jung <pr.jung@samsung.com>
Mon, 25 Jun 2018 04:58:09 +0000 (13:58 +0900)
committerHyotaek Shim <hyotaek.shim@samsung.com>
Wed, 27 Jun 2018 06:26:59 +0000 (06:26 +0000)
- Change NeedCleanup signal "ss" to "is"
Path is sent by tzplatform_variable enum
- Remove Full and ChangeState signals

Change-Id: Iac9f52b5ef7d03f6bdd38be7bcf29393f310a87d
Signed-off-by: pr.jung <pr.jung@samsung.com>
src/storage/storage.c

index 26aa270..8e9848b 100755 (executable)
@@ -49,8 +49,6 @@
 #define MEMNOTI_FULL_VALUE     (0.0) /* 0.0% under */
 
 #define SIGNAL_NEED_CLEANUP     "NeedCleanup"
-#define SIGNAL_LOWMEM_STATE     "ChangeState"
-#define SIGNAL_LOWMEM_FULL      "Full"
 #define MEMNOTI_TIMER_INTERVAL  5000 /* milliseconds */
 
 #define SIGNAL_POWEROFF_STATE  "ChangeState"
@@ -130,30 +128,20 @@ static void write_file()
                _E("Fail to open %s", NEED_CLEANUP_FILE_PATH);
 }
 
-static void memstatus_send_broadcast(enum memory_id no, char *signal, int status)
-{
-       if (no == MEMORY_OPT)
-               return;
-
-       _I("signal %s status %d", signal, status);
-       dbus_handle_broadcast_dbus_signal_var(STORAGED_PATH_LOWMEM, STORAGED_INTERFACE_LOWMEM,
-                       signal, g_variant_new("(i)", status));
-}
-
 static void memcleanup_send_broadcast(struct storage_config_info *info, enum memnoti_level level, enum memnoti_level prev_level)
 {
        time_t t;
        struct tm *timeinfo;
-       const char *path;
+       enum tzplatform_variable path;
        char *value;
        char buf[20];
 
        if (info->mem_id == MEMORY_INTERNAL)
-               path = tzplatform_getenv(TZ_SYS_HOME);
+               path = TZ_SYS_USER;
        else if (info->mem_id == MEMORY_TMP)
-               path = MEMORY_STATUS_TMP_PATH;
+               path = TZ_SYS_TMP;
        else if (info->mem_id == MEMORY_OPT)
-               path = MEMORY_STATUS_OPT_PATH;
+               path = TZ_SYS_OPT;
        else
                return;
 
@@ -161,11 +149,11 @@ static void memcleanup_send_broadcast(struct storage_config_info *info, enum mem
                return;
 
        if (level == MEMNOTI_LEVEL_WARNING)
-               value = "warning";
+               value = "Warning";
        else if (level == MEMNOTI_LEVEL_CRITICAL)
-               value = "critical";
+               value = "Critical";
        else if (level == MEMNOTI_LEVEL_FULL)
-               value = "full";
+               value = "Full";
        else
                return;
 
@@ -174,10 +162,10 @@ static void memcleanup_send_broadcast(struct storage_config_info *info, enum mem
        t = time(NULL);
        timeinfo = localtime(&t);
        strftime(buf, sizeof(buf), "%b %d %T", timeinfo);
-       _D("time: %s path: %s level: %s", buf, path, value);
+       _D("time: %s path: %d level: %s", buf, path, value);
 
        dbus_handle_broadcast_dbus_signal_var(STORAGED_PATH_LOWMEM, STORAGED_INTERFACE_LOWMEM,
-                       SIGNAL_NEED_CLEANUP, g_variant_new("(ss)", path, value));
+                       SIGNAL_NEED_CLEANUP, g_variant_new("(is)", path, value));
 
 }
 
@@ -252,7 +240,6 @@ static int memnoti_popup(enum memnoti_level level)
 static void storage_status_broadcast(struct storage_config_info *info, double total, double avail)
 {
        double level = (avail/total)*100;
-       int status = MEMNOTI_DISABLE;
        enum memnoti_level prev_noti_level;
 
        prev_noti_level = info->current_noti_level;
@@ -260,8 +247,6 @@ static void storage_status_broadcast(struct storage_config_info *info, double to
                if (info->current_noti_level == MEMNOTI_LEVEL_FULL)
                        return;
                info->current_noti_level = MEMNOTI_LEVEL_FULL;
-               status = MEMNOTI_ENABLE;
-               memstatus_send_broadcast(info->mem_id, SIGNAL_LOWMEM_FULL, status);
 
                memcleanup_send_broadcast(info, info->current_noti_level, prev_noti_level);
 
@@ -273,11 +258,7 @@ static void storage_status_broadcast(struct storage_config_info *info, double to
        if (level <= info->critical_level) {
                if (info->current_noti_level == MEMNOTI_LEVEL_CRITICAL)
                        return;
-               if (info->current_noti_level == MEMNOTI_LEVEL_FULL)
-                       memstatus_send_broadcast(info->mem_id, SIGNAL_LOWMEM_FULL, status);
                info->current_noti_level = MEMNOTI_LEVEL_CRITICAL;
-               status = MEMNOTI_ENABLE;
-               memstatus_send_broadcast(info->mem_id, SIGNAL_LOWMEM_STATE, status);
 
                memcleanup_send_broadcast(info, info->current_noti_level, prev_noti_level);
 
@@ -286,11 +267,6 @@ static void storage_status_broadcast(struct storage_config_info *info, double to
                return;
        }
 
-       if (info->current_noti_level == MEMNOTI_LEVEL_FULL)
-               memstatus_send_broadcast(info->mem_id, SIGNAL_LOWMEM_FULL, status);
-       if (info->current_noti_level == MEMNOTI_LEVEL_CRITICAL)
-               memstatus_send_broadcast(info->mem_id, SIGNAL_LOWMEM_STATE, status);
-
        if (level <= info->warning_level) {
                info->current_noti_level = MEMNOTI_LEVEL_WARNING;
                _I("%d current level %4.4lf w:%4.4lf c:%4.4lf f:%4.4lf",
@@ -322,7 +298,7 @@ static int storage_get_memory_size(const char *path, struct statvfs *s)
 
 static void get_storage_status(const char *path, struct statvfs *s)
 {
-       if (strcmp(path, tzplatform_getenv(TZ_SYS_HOME)) == 0)
+       if (strcmp(path, tzplatform_getenv(TZ_SYS_USER)) == 0)
                storage_get_internal_memory_size(s);
        else
                storage_get_memory_size(path, s);
@@ -392,7 +368,7 @@ static gboolean check_storage_status(gpointer data)
 
 static int init_storage_config_info_all(void)
 {
-       init_storage_config_info(tzplatform_getenv(TZ_SYS_HOME), &storage_internal_info);
+       init_storage_config_info(tzplatform_getenv(TZ_SYS_USER), &storage_internal_info);
        init_storage_config_info(MEMORY_STATUS_TMP_PATH, &storage_tmp_info);
        init_storage_config_info(MEMORY_STATUS_OPT_PATH, &storage_opt_info);
        memnoti_timer = g_timeout_add(MEMNOTI_TIMER_INTERVAL,
@@ -421,21 +397,37 @@ static GVariant *dbus_get_storage_status(GDBusConnection *conn,
                const gchar *sender, const gchar *path, const gchar *iface, const gchar *name,
                GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data)
 {
+       const char *temp;
        char *str_path;
        struct statvfs s;
+       struct stat buf;
        pid_t pid;
        unsigned long long dAvail = 0.0;
        unsigned long long dTotal = 0.0;
+       int ret;
+       bool success = true;
 
        g_variant_get(param, "(s)", &str_path);
 
-       if (!strcmp(str_path, tzplatform_getenv(TZ_SYS_HOME)))
-               storage_get_internal_memory_size(&s);
-       else
-               storage_get_memory_size(str_path, &s);
+       temp = tzplatform_getenv(TZ_SYS_USER);
+       if (!strncmp(str_path, temp, strlen(temp))) {
+               ret = stat(str_path, &buf);
+               if (ret == 0) {
+                       ret = storage_get_internal_memory_size(&s);
+                       if (ret < 0)
+                               success = false;
+               } else
+                       success = false;
+       } else {
+               ret = storage_get_memory_size(str_path, &s);
+               if (ret < 0)
+                       success = false;
+       }
 
-       dTotal = (unsigned long long)s.f_frsize * s.f_blocks;
-       dAvail = (unsigned long long)s.f_bsize * s.f_bavail;
+       if (success) {
+               dTotal = (unsigned long long)s.f_frsize * s.f_blocks;
+               dAvail = (unsigned long long)s.f_bsize * s.f_bavail;
+       }
 
        pid = dbus_handle_get_sender_pid(NULL, sender);
 
@@ -490,13 +482,13 @@ static GVariant *dbus_get_storage_level(GDBusConnection *conn,
                level = -1;
 
        if (level == MEMNOTI_LEVEL_WARNING)
-               value = "warning";
+               value = "Warning";
        else if (level == MEMNOTI_LEVEL_CRITICAL)
-               value = "critical";
+               value = "Critical";
        else if (level == MEMNOTI_LEVEL_FULL)
-               value = "full";
+               value = "Full";
        else if (level == MEMNOTI_LEVEL_NORMAL)
-               value = "normal";
+               value = "Normal";
        else
                value = "Not supported path";