Remove db-util dependency 18/195418/1 accepted/tizen/unified/20181214.065237 submit/tizen/20181214.003002
authorsinikang <sinikang@samsung.com>
Thu, 13 Dec 2018 09:13:26 +0000 (18:13 +0900)
committersinikang <sinikang@samsung.com>
Thu, 13 Dec 2018 09:13:26 +0000 (18:13 +0900)
 - use sqlite3 library directly

Change-Id: I314206375c3598c0c6979b68519d8d8373b0c279

CMakeLists.txt
packaging/tel-plugin-database.spec
src/database_main.c

index 92c204b..8a451b4 100644 (file)
@@ -12,7 +12,7 @@ SET(CMAKE_INSTALL_PREFIX "${PREFIX}")
 
 # Set required packages
 INCLUDE(FindPkgConfig)
-pkg_check_modules(pkgs REQUIRED glib-2.0 tcore db-util)
+pkg_check_modules(pkgs REQUIRED glib-2.0 tcore sqlite3 dlog)
 
 FOREACH(flag ${pkgs_CFLAGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
index 5dd2721..8f2bd59 100644 (file)
@@ -1,6 +1,6 @@
 %define major 0
 %define minor 1
-%define patchlevel 44
+%define patchlevel 45
 
 Name:           tel-plugin-database
 Version:        %{major}.%{minor}.%{patchlevel}
@@ -10,7 +10,8 @@ Summary:        Telephony DataBase storage plugin
 Group:          System/Libraries
 Source0:        tel-plugin-database-%{version}.tar.gz
 BuildRequires:  cmake
-BuildRequires:  pkgconfig(db-util)
+BuildRequires:  pkgconfig(sqlite3)
+BuildRequires:  pkgconfig(dlog)
 BuildRequires:  pkgconfig(glib-2.0)
 BuildRequires:  pkgconfig(tcore)
 BuildRequires:  pkgconfig(libtzplatform-config)
index 707358d..9756a3d 100644 (file)
@@ -25,7 +25,8 @@
 #include <strings.h>
 
 #include <glib.h>
-#include <db-util.h>
+#include <sqlite3.h>
+#include <unistd.h>
 
 #include <tcore.h>
 #include <server.h>
@@ -92,14 +93,37 @@ static gboolean __update_query_database(Storage *strg, void *handle, const char
        return TRUE;
 }
 
+static int _busy_handler(void *pData, int count)
+{
+       if (5 - count > 0) {
+               dbg("Busy Handler Called! : CNT(%d)\n", count + 1);
+               usleep((count + 1) * 100000);
+               return 1;
+       } else {
+               dbg("Busy Handler will be returned SQLITE_BUSY error\n");
+               return 0;
+       }
+}
+
 static void *create_handle(Storage *strg, const char *path)
 {
        int rv = 0;
        sqlite3 *handle = NULL;
 
-       rv = db_util_open(path, &handle, 0);
+       if (path == NULL) {
+               err("Invalid input param error");
+               return NULL;
+       }
+
+       rv = sqlite3_open(path, &handle);
+       if (rv != SQLITE_OK) {
+               err("fail to connect database err(%d), errmsg(%s)", rv, sqlite3_errmsg(handle));
+               return NULL;
+       }
+
+       rv = sqlite3_busy_handler(handle, _busy_handler, NULL);
        if (rv != SQLITE_OK) {
-               err("fail to connect database err(%d)", rv);
+               err("fail to register busy handler err(%d), errmsg(%s)", rv, sqlite3_errmsg(handle));
                return NULL;
        }
 
@@ -114,7 +138,7 @@ static gboolean remove_handle(Storage *strg, void *handle)
        if (!handle)
                return FALSE;
 
-       rv = db_util_close(handle);
+       rv = sqlite3_close(handle);
        if (rv != SQLITE_OK) {
                err("fail to close database err(%d)", rv);
                handle = NULL;