Add mdgd_check_device_exist impl
authorJihoon Jung <jh8801.jung@samsung.com>
Thu, 26 Apr 2018 07:43:02 +0000 (16:43 +0900)
committersaerome.kim <saerome.kim@samsung.com>
Mon, 2 Jul 2018 10:39:37 +0000 (19:39 +0900)
Signed-off-by: Jihoon Jung <jh8801.jung@samsung.com>
src/mdg-manager/include/mdgd_db.h [changed mode: 0644->0755]
src/mdg-manager/src/mdgd_db.c [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index d5163de..4eb6d32
@@ -23,6 +23,8 @@ extern "C"
 {
 #endif
 
+#include <stdbool.h>
+
 #define MDGD_DB_FILE "/opt/usr/dbspace/.mdgd.db"
 #define MDGD_DB_GROUP_TABLE "mdgd_group"
 #define MDGD_DB_DEVICE_TABLE "mdgd_device"
@@ -33,6 +35,7 @@ int mdgd_db_group_insert(const char *group_name);
 int mdgd_db_device_insert(const char *device_id, const char *group_name);
 int mdgd_db_group_delete(char *group_name);
 int mdgd_db_device_delete(char *device_id, char *group_name);
+bool mdgd_check_device_exist(char *device_id);
 
 #ifdef __cplusplus
 }
old mode 100644 (file)
new mode 100755 (executable)
index a24db3d..22b04dd
@@ -406,6 +406,54 @@ int mdgd_db_device_delete(char *device_id, char *group_name)
 
 }
 
+bool mdgd_check_device_exist(char *device_id)
+{
+       int ret = 0;
+       bool result = false;
+       int sql_ret;
+       char *sql = NULL;
+       char *error = NULL;
+
+       mdgd_context_t *mdgd_ctx = mdgd_context_get_context();
+
+       sql = sqlite3_mprintf("SELECT count(*) FROM %s WHERE device_id=%Q;", MDGD_DB_DEVICE_TABLE, device_id);
+       if (sql != NULL) {
+               sqlite3_stmt *stmt = NULL;
+
+               ret = sqlite3_prepare_v2(mdgd_ctx->db, sql, strlen(sql), &stmt, NULL);
+               if (ret == SQLITE_OK) {
+                       ret = sqlite3_step(stmt);
+                       if (ret == SQLITE_ROW) {
+                               int count;
+
+                               count = sqlite3_column_int(stmt, 0);
+                               if (count > 0)
+                                       result = true;
+                               else
+                                       result = false;
+                       } else {
+                               LOG_ERR("sqlite3_step failed, [%d:%s]", ret, sqlite3_errmsg(mdgd_ctx->db));
+
+                               result = false;
+                       }
+
+                       sqlite3_finalize(stmt);
+               } else {
+                       LOG_ERR("sqlite3_prepare_v2 failed, [%d:%s]", ret, sqlite3_errmsg(mdgd_ctx->db));
+
+                       result = false;
+               }
+
+               sqlite3_free(sql);
+       } else {
+               LOG_ERR("sqlite3_mprintf failed");
+
+               result = false;
+       }
+
+       return result;
+}
+
 int mdgd_db_print()
 {
        return 0;