Release version 0.5.13
[platform/core/appfw/librua.git] / src / rua_util.h
1 /*
2  * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
3  *
4  * Licensed under the Apache License, Version 2.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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  */
16
17 /**
18  * @file        rua_util.h
19  * @brief       RUA UTIL API declaration header file.
20  * @author      Hyunho Kang (hhstark.kang@samsung.com)
21  * @version     0.1
22  * @history     0.1: RUA UTIL API Declarations, structure declaration
23  */
24
25 #ifndef __RUA_UTIL_H__
26 #define __RUA_UTIL_H__
27
28 #include <sys/types.h>
29
30 #include <sqlite3.h>
31
32 #define __BIND_TEXT(db, stmt, i, text)                                         \
33 do {                                                                           \
34         if (sqlite3_bind_text(stmt, i, text, -1, SQLITE_STATIC) != SQLITE_OK) {\
35                 LOGE("bind error(index %d): %s", i, sqlite3_errmsg(db));       \
36                 sqlite3_finalize(stmt);                                        \
37                 return -1;                                                     \
38         }                                                                      \
39 } while (0)
40
41 #define __BIND_INT(db, stmt, i, int)                                           \
42 do {                                                                           \
43         if (sqlite3_bind_int(stmt, i, int) != SQLITE_OK) {                     \
44                 LOGE("bind error(index %d): %s", i, sqlite3_errmsg(db));       \
45                 sqlite3_finalize(stmt);                                        \
46                 return -1;                                                     \
47         }                                                                      \
48 } while (0)
49
50 #define __BIND_DOUBLE(db, stmt, i, double)                                     \
51 do {                                                                           \
52         if (sqlite3_bind_double(stmt, i, double) != SQLITE_OK) {               \
53                 LOGE("bind error(index %d): %s", i, sqlite3_errmsg(db));       \
54                 sqlite3_finalize(stmt);                                        \
55                 return -1;                                                     \
56         }                                                                      \
57 } while (0)
58
59 char *_rua_util_get_db_path(uid_t uid, char *db_name);
60 int _rua_util_open_db(sqlite3 **db, int flags, uid_t uid, char *db_name);
61 int _rua_util_check_uid(uid_t target_uid);
62
63 #endif                          /*__RUA_UTIL_H__*/