tizen 2.3 release
[framework/appfw/alarm-manager.git] / alarm-manager-registry.c
index 0a749f1..21c4c12 100644 (file)
@@ -20,9 +20,6 @@
  *
  */
 
-
-
-
 #include<stdio.h>
 #include<stdlib.h>
 #include<time.h>
 #include<string.h>
 #include<sys/types.h>
 
-#include<dbus/dbus.h>
 #include<glib.h>
 #include <db-util.h>
 #if !GLIB_CHECK_VERSION (2, 31, 0)
 #include <glib/gmacros.h>
-#else
 #endif
-
 #include"alarm.h"
 #include"alarm-internal.h"
 
 extern __alarm_server_context_t alarm_context;
 extern sqlite3 *alarmmgr_db;
 
-#ifdef __ALARM_BOOT
-extern bool enable_power_on_alarm;
-#endif
-
 bool _save_alarms(__alarm_info_t *__alarm_info);
 bool _update_alarms(__alarm_info_t *__alarm_info);
 bool _delete_alarms(alarm_id_t alarm_id);
-#ifdef __ALARM_BOOT
-bool _update_power_on(bool on_off);
-#endif
 bool _load_alarms_from_registry(void);
 
 bool _save_alarms(__alarm_info_t *__alarm_info)
@@ -70,15 +57,17 @@ bool _save_alarms(__alarm_info_t *__alarm_info)
        alarm_mode_t *mode = &alarm_info->mode;
 
        char *query = sqlite3_mprintf("insert into alarmmgr( alarm_id, start,\
-                       end, pid, app_unique_name, app_service_name, app_service_name_mod, bundle, year,\
+                       end, pid, caller_pkgid, callee_pkgid, app_unique_name, app_service_name, app_service_name_mod, bundle, year,\
                        month, day, hour, min, sec, day_of_week, repeat,\
                        alarm_type, reserved_info, dst_service_name, dst_service_name_mod)\
-                       values (%d,%d,%d,%d,%Q,%Q,%Q,%Q,%d,%d,%d,%d,%d,%d,%d,%d,\
+                       values (%d,%d,%d,%d,%Q,%Q,%Q,%Q,%Q,%Q,%d,%d,%d,%d,%d,%d,%d,%d,\
                        %d,%d,%Q,%Q)",\
                        __alarm_info->alarm_id,
                        (int)__alarm_info->start,
                        (int)__alarm_info->end,
                        __alarm_info->pid,
+                       (char *)g_quark_to_string(__alarm_info->quark_caller_pkgid),
+                       (char *)g_quark_to_string(__alarm_info->quark_callee_pkgid),
                        (char *)g_quark_to_string(
                                __alarm_info->quark_app_unique_name),
                        (char *)g_quark_to_string(
@@ -102,11 +91,8 @@ bool _save_alarms(__alarm_info_t *__alarm_info)
                        (char *)g_quark_to_string(
                        __alarm_info->quark_dst_service_name_mod));
 
-       if (SQLITE_OK !=
-           sqlite3_exec(alarmmgr_db, query, NULL, NULL, &error_message)) {
-               SECURE_LOGE(
-                   "Don't execute query = %s, error message = %s\n", query,
-                    error_message);
+       if (SQLITE_OK != sqlite3_exec(alarmmgr_db, query, NULL, NULL, &error_message)) {
+               SECURE_LOGE("sqlite3_exec() is failed. query = %s, error message = %s", query, error_message);
                sqlite3_free(query);
                return false;
        }
@@ -124,7 +110,7 @@ bool _update_alarms(__alarm_info_t *__alarm_info)
        alarm_mode_t *mode = &alarm_info->mode;
 
        char *query = sqlite3_mprintf("update alarmmgr set start=%d, end=%d,\
-                       pid=%d, app_unique_name=%Q, app_service_name=%Q, app_service_name_mod=%Q,\
+                       pid=%d, caller_pkgid=%Q, callee_pkgid=%Q, app_unique_name=%Q, app_service_name=%Q, app_service_name_mod=%Q,\
                        bundle=%Q, year=%d, month=%d, day=%d, hour=%d, min=%d, sec=%d,\
                        day_of_week=%d, repeat=%d, alarm_type=%d,\
                        reserved_info=%d, dst_service_name=%Q, dst_service_name_mod=%Q\
@@ -132,6 +118,8 @@ bool _update_alarms(__alarm_info_t *__alarm_info)
                        (int)__alarm_info->start,
                        (int)__alarm_info->end,
                        __alarm_info->pid,
+                       (char *)g_quark_to_string(__alarm_info->quark_caller_pkgid),
+                       (char *)g_quark_to_string(__alarm_info->quark_callee_pkgid),
                        (char *)g_quark_to_string(
                                __alarm_info->quark_app_unique_name),
                        (char *)g_quark_to_string(
@@ -156,11 +144,8 @@ bool _update_alarms(__alarm_info_t *__alarm_info)
                                __alarm_info->quark_dst_service_name_mod),
                        __alarm_info->alarm_id);
 
-       if (SQLITE_OK !=
-           sqlite3_exec(alarmmgr_db, query, NULL, NULL, &error_message)) {
-               SECURE_LOGE(
-                   "Don't execute query = %s, error message = %s\n", query,
-                    error_message);
+       if (SQLITE_OK != sqlite3_exec(alarmmgr_db, query, NULL, NULL, &error_message)) {
+               SECURE_LOGE("sqlite3_exec() is failed. query = %s, error message = %s", query, error_message);
                sqlite3_free(query);
                return false;
        }
@@ -174,11 +159,8 @@ bool _delete_alarms(alarm_id_t alarm_id)
        char *error_message = NULL;
        char *query = sqlite3_mprintf("delete from alarmmgr where alarm_id=%d", alarm_id);
 
-       if (SQLITE_OK !=
-           sqlite3_exec(alarmmgr_db, query, NULL, NULL, &error_message)) {
-               SECURE_LOGE(
-                   "Don't execute query = %s, error message = %s\n", query,
-                    error_message);
+       if (SQLITE_OK != sqlite3_exec(alarmmgr_db, query, NULL, NULL, &error_message)) {
+               SECURE_LOGE("sqlite3_exec() is failed. query = %s, error message = %s", query, error_message);
                sqlite3_free(query);
                return false;
        }
@@ -187,38 +169,6 @@ bool _delete_alarms(alarm_id_t alarm_id)
        return true;
 }
 
-#ifdef __ALARM_BOOT
-bool _update_power_on(bool on_off)
-{
-/*     GConfClient* pGCC;
-       char key[MAX_GCONF_PATH_LEN];
-       GError* error = NULL;
-       
-       g_type_init();
-       pGCC = gconf_client_get_default();
-
-       if(!pGCC)
-       {
-               ALARM_MGR_EXCEPTION_PRINT(" gconf get failed.. \n");
-               return false;
-       }
-
-       sprintf(key,"/Services/AlarmMgr/Auto_poweron"); 
-
-       
-       if(!gconf_client_set_bool(pGCC, key, on_off, &error))
-       {
-               ALARM_MGR_EXCEPTION_PRINT("set string has failed...\n");
-               return false;
-       }
-
-       gconf_client_suggest_sync(pGCC, NULL);
-       g_object_unref(pGCC);
-*/
-       return false;
-}
-#endif
-
 bool _load_alarms_from_registry()
 {
        int i = 0;
@@ -229,6 +179,8 @@ bool _load_alarms_from_registry()
        __alarm_info_t *__alarm_info = NULL;
        alarm_date_t *start = NULL;
        alarm_mode_t *mode = NULL;
+       char caller_pkgid[MAX_PKG_ID_LEN] = {0,};
+       char callee_pkgid[MAX_PKG_ID_LEN] = {0,};
        char app_unique_name[MAX_SERVICE_NAME_LEN] = {0,};
        char app_service_name[MAX_SERVICE_NAME_LEN] = {0,};
        char app_service_name_mod[MAX_SERVICE_NAME_LEN] = {0,};
@@ -236,64 +188,58 @@ bool _load_alarms_from_registry()
        char dst_service_name_mod[MAX_SERVICE_NAME_LEN] = {0,};
        char bundle[MAX_BUNDLE_NAME_LEN] = {0,};
 
-#ifdef __ALARM_BOOT
-       /*sprintf(path, "/Services/AlarmMgr/Auto_poweron"); */
-
-       enable_power_on_alarm = 0;
-       /*gconf_client_get_bool(pGCC, path, NULL); */
-#endif
-
        snprintf(query, MAX_QUERY_LEN, "select * from alarmmgr");
 
-       if (SQLITE_OK !=
-           sqlite3_prepare(alarmmgr_db, query, strlen(query), &stmt, &tail)) {
-               ALARM_MGR_EXCEPTION_PRINT("sqlite3_prepare error\n");
+       if (SQLITE_OK != sqlite3_prepare(alarmmgr_db, query, strlen(query), &stmt, &tail)) {
+               ALARM_MGR_EXCEPTION_PRINT("sqlite3_prepare() is failed.");
                return false;
        }
 
        for (i = 0; SQLITE_ROW == sqlite3_step(stmt); i++) {
                __alarm_info = malloc(sizeof(__alarm_info_t));
 
-               if (G_UNLIKELY(__alarm_info == NULL)){
-                       ALARM_MGR_EXCEPTION_PRINT("[alarm-server]:Malloc failed\n");
+               if (G_UNLIKELY(__alarm_info == NULL)) {
+                       ALARM_MGR_EXCEPTION_PRINT("Memory allocation failed.");
                        return false;
                }
                alarm_info = (alarm_info_t *) &(__alarm_info->alarm_info);
                start = &alarm_info->start;
                mode = &alarm_info->mode;
 
-               memset(app_service_name, 0, MAX_SERVICE_NAME_LEN);
-               memset(app_service_name_mod, 0, MAX_SERVICE_NAME_LEN);
-               memset(dst_service_name, 0, MAX_SERVICE_NAME_LEN);
-               memset(dst_service_name_mod, 0, MAX_SERVICE_NAME_LEN);
-
                __alarm_info->alarm_id = sqlite3_column_int(stmt, 0);
                __alarm_info->start = sqlite3_column_int(stmt, 1);
                __alarm_info->end = sqlite3_column_int(stmt, 2);
                __alarm_info->pid = sqlite3_column_int(stmt, 3);
-               strncpy(app_unique_name, (const char *)sqlite3_column_text(stmt, 4),
+
+               strncpy(caller_pkgid, (const char *)sqlite3_column_text(stmt, 4),
+                       MAX_PKG_ID_LEN - 1);
+               strncpy(callee_pkgid, (const char *)sqlite3_column_text(stmt, 5),
+                       MAX_PKG_ID_LEN - 1);
+               strncpy(app_unique_name, (const char *)sqlite3_column_text(stmt, 6),
                        MAX_SERVICE_NAME_LEN - 1);
-               strncpy(app_service_name, (const char *)sqlite3_column_text(stmt, 5),
+               strncpy(app_service_name, (const char *)sqlite3_column_text(stmt, 7),
                        MAX_SERVICE_NAME_LEN - 1);
-               strncpy(app_service_name_mod, (const char *)sqlite3_column_text(stmt, 6),
+               strncpy(app_service_name_mod, (const char *)sqlite3_column_text(stmt, 8),
                        MAX_SERVICE_NAME_LEN - 1);
-               strncpy(bundle, (const char *)sqlite3_column_text(stmt, 7),
-                       MAX_BUNDLE_NAME_LEN - 1);               
-               start->year = sqlite3_column_int(stmt, 8);
-               start->month = sqlite3_column_int(stmt, 9);
-               start->day = sqlite3_column_int(stmt, 10);
-               start->hour = sqlite3_column_int(stmt, 11);
-               start->min = sqlite3_column_int(stmt, 12);
-               start->sec = sqlite3_column_int(stmt, 13);
-               mode->u_interval.day_of_week = sqlite3_column_int(stmt, 14);
-               mode->repeat = sqlite3_column_int(stmt, 15);
-               alarm_info->alarm_type = sqlite3_column_int(stmt, 16);
-               alarm_info->reserved_info = sqlite3_column_int(stmt, 17);
-               strncpy(dst_service_name, (const char *)sqlite3_column_text(stmt, 18),
+               strncpy(bundle, (const char *)sqlite3_column_text(stmt, 9),
+                       MAX_BUNDLE_NAME_LEN - 1);
+               start->year = sqlite3_column_int(stmt, 10);
+               start->month = sqlite3_column_int(stmt, 11);
+               start->day = sqlite3_column_int(stmt, 12);
+               start->hour = sqlite3_column_int(stmt, 13);
+               start->min = sqlite3_column_int(stmt, 14);
+               start->sec = sqlite3_column_int(stmt, 15);
+               mode->u_interval.day_of_week = sqlite3_column_int(stmt, 16);
+               mode->repeat = sqlite3_column_int(stmt, 17);
+               alarm_info->alarm_type = sqlite3_column_int(stmt, 18);
+               alarm_info->reserved_info = sqlite3_column_int(stmt, 19);
+               strncpy(dst_service_name, (const char *)sqlite3_column_text(stmt, 20),
                        MAX_SERVICE_NAME_LEN - 1);
-               strncpy(dst_service_name_mod, (const char *)sqlite3_column_text(stmt, 19),
+               strncpy(dst_service_name_mod, (const char *)sqlite3_column_text(stmt, 21),
                        MAX_SERVICE_NAME_LEN - 1);
 
+               __alarm_info->quark_caller_pkgid = g_quark_from_string(caller_pkgid);
+               __alarm_info->quark_callee_pkgid = g_quark_from_string(callee_pkgid);
                __alarm_info->quark_app_unique_name =
                    g_quark_from_string(app_unique_name);
                __alarm_info->quark_app_service_name =
@@ -307,16 +253,15 @@ bool _load_alarms_from_registry()
                __alarm_info->quark_bundle = g_quark_from_string(bundle);
 
                _alarm_next_duetime(__alarm_info);
-               alarm_context.alarms =
-                   g_slist_append(alarm_context.alarms, __alarm_info);
+               alarm_context.alarms = g_slist_append(alarm_context.alarms, __alarm_info);
        }
 
+
+       _alarm_schedule();
        if (SQLITE_OK != sqlite3_finalize(stmt)) {
-               ALARM_MGR_EXCEPTION_PRINT("error : sqlite3_finalize\n");
+               ALARM_MGR_EXCEPTION_PRINT("sqlite3_finalize() is failed.");
                return false;
        }
 
-       _alarm_schedule();
-
        return true;
 }