# 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}")
%define major 0
%define minor 1
-%define patchlevel 44
+%define patchlevel 45
Name: tel-plugin-database
Version: %{major}.%{minor}.%{patchlevel}
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)
#include <strings.h>
#include <glib.h>
-#include <db-util.h>
+#include <sqlite3.h>
+#include <unistd.h>
#include <tcore.h>
#include <server.h>
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;
}
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;