#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;