2 * Copyright (c) 2012, 2013 Samsung Electronics Co., Ltd.
4 * Licensed under the Flora License, Version 1.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.tizenopensource.org/license
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 #include "ug-nfc-setting-main.h"
19 #include "ug-nfc-setting-db.h"
22 #define DB_FILE_PATH "/opt/usr/dbspace/.net-nfcpush.db"
23 #define DB_TABLE_NAME "NfcPushMsgTable"
26 /* CREATE TABLE NfcPushMsgTable ( AppId TEXT PRIMARY KEY, PkgName TEXT, IconPath TEXT, MsgDesc TEXT ); */
28 #define DB_QUERY_LEN 512
30 static sqlite3 *g_predefined_item_db;
31 static sqlite3_stmt *g_predefined_item_pstmt;
34 static void _db_finalize_statement(void)
38 int db_ret = SQLITE_OK;
40 if (g_predefined_item_pstmt != NULL)
42 db_ret = sqlite3_finalize(g_predefined_item_pstmt);
43 g_predefined_item_pstmt = NULL;
45 if(db_ret != SQLITE_OK)
47 LOGD("Failed to sqlite3_finalize error[%d]", db_ret);
55 int _ug_nfc_setting_db_open(void)
59 int db_ret = SQLITE_OK;
61 db_ret = sqlite3_open(DB_FILE_PATH, &g_predefined_item_db);
62 if(db_ret != SQLITE_OK)
64 LOGD("Failed to open database. error[%d]", db_ret);
72 int _ug_nfc_setting_db_close(void)
76 int db_ret = SQLITE_OK;
78 if (g_predefined_item_db != NULL)
80 db_ret = sqlite3_close(g_predefined_item_db);
81 if(db_ret != SQLITE_OK)
83 LOGD("Failed to close database. error[%d]", db_ret);
86 g_predefined_item_db = NULL;
94 int _ug_nfc_setting_db_open_table(int *table_handle)
98 int db_ret = SQLITE_OK;
101 /* get num_of_index */
102 _ug_nfc_setting_db_get_count(&count);
106 char query[DB_QUERY_LEN] = { 0, };
107 sqlite3_stmt *stmt = NULL;
109 snprintf(query, DB_QUERY_LEN, "select * from %s", DB_TABLE_NAME);
110 LOGD("query [%s]", query);
112 db_ret = sqlite3_prepare_v2(g_predefined_item_db, query, strlen(query), &stmt, NULL);
113 if (db_ret != SQLITE_OK)
115 LOGD("Failed to sqlite3_prepare_v2 error[%d]", db_ret);
116 if (g_predefined_item_pstmt != NULL)
118 db_ret = sqlite3_finalize(stmt);
120 if(db_ret != SQLITE_OK)
122 LOGD("Failed to sqlite3_finalize error[%d]", db_ret);
128 *table_handle = (int)stmt;
133 db_ret = SQLITE_ERROR;
141 int _ug_nfc_setting_db_get_count(int *count)
145 int db_ret = SQLITE_OK;
146 char query[DB_QUERY_LEN] = { 0, };
148 snprintf(query, DB_QUERY_LEN,
149 "select count(AppId) from %s ",
151 LOGD("query [%s]", query);
153 db_ret = sqlite3_prepare_v2(g_predefined_item_db, query, strlen(query), &g_predefined_item_pstmt, NULL);
154 if (db_ret != SQLITE_OK)
156 LOGD("Failed to sqlite3_prepare_v2 error[%d]", db_ret);
157 _db_finalize_statement();
161 db_ret = sqlite3_step(g_predefined_item_pstmt);
162 if (db_ret != SQLITE_ROW)
164 LOGD("Failed to sqlite3_step error[%d]", db_ret);
165 _db_finalize_statement();
169 *count = sqlite3_column_int(g_predefined_item_pstmt, 0);
171 _db_finalize_statement();
178 int _ug_nfc_setting_db_get_next_record(int table_handle,
179 char **app_id, char **pkgName,
180 char **iconPath, char **msgDes)
184 int db_ret = SQLITE_OK;
185 sqlite3_stmt *stmt = NULL;
187 stmt = (sqlite3_stmt *)table_handle;
193 db_ret = sqlite3_step(stmt);
194 if (db_ret != SQLITE_DONE)
196 LOGD("success to get next record");
198 if ((char *)sqlite3_column_text(stmt, 0) != NULL)
199 *app_id = strdup((char *)sqlite3_column_text(stmt, 0));
200 if ((char *)sqlite3_column_text(stmt, 1) != NULL)
201 *pkgName = strdup((char *)sqlite3_column_text(stmt, 1));
202 if ((char *)sqlite3_column_text(stmt, 2) != NULL)
203 *iconPath = strdup((char *)sqlite3_column_text(stmt, 2));
204 if ((char *)sqlite3_column_text(stmt, 3) != NULL)
205 *msgDes = strdup((char *)sqlite3_column_text(stmt, 3));
213 int _ug_nfc_setting_db_get_pkgName(char *app_id, char **pkgName)
217 int db_ret = SQLITE_OK;
218 char query[DB_QUERY_LEN] = { 0, };
220 snprintf(query, DB_QUERY_LEN,
221 "select PkgName from %s where AppId =\"%s\"", DB_TABLE_NAME, app_id);
222 LOGD("query [%s]", query);
224 db_ret = sqlite3_prepare_v2(g_predefined_item_db, query, strlen(query), &g_predefined_item_pstmt, NULL);
225 if (db_ret != SQLITE_OK)
227 LOGD("Failed to sqlite3_prepare_v2 error[%d]", db_ret);
228 _db_finalize_statement();
232 db_ret = sqlite3_step(g_predefined_item_pstmt);
233 if (db_ret != SQLITE_ROW)
235 LOGD("Failed to sqlite3_step error[%d]", db_ret);
236 _db_finalize_statement();
240 *pkgName = strdup((char *)sqlite3_column_text(g_predefined_item_pstmt, 0));
242 _db_finalize_statement();
249 int _ug_nfc_setting_db_close_table(int table_handle)
253 int db_ret = SQLITE_OK;
254 sqlite3_stmt *stmt = NULL;
256 stmt = (sqlite3_stmt *)table_handle;
260 db_ret = sqlite3_finalize(stmt);
261 if(db_ret != SQLITE_OK)
263 LOGD("Failed to sqlite3_finalize error[%d]", db_ret);