Remove warnings
[platform/core/appfw/pkgmgr-info.git] / src / pkgmgr-info-internal.c
1 /*
2  * pkgmgr-info
3  *
4  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: Jayoun Lee <airjany@samsung.com>, Sewook Park <sewook7.park@samsung.com>,
7  * Jaeho Lee <jaeho81.lee@samsung.com>, Shobhit Srivastava <shobhit.s@samsung.com>
8  *
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  * http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  *
21  */
22
23 #include <stdlib.h>
24 #include <string.h>
25 #include <stdio.h>
26 #include "pkgmgr-info.h"
27 #include "pkgmgr-info-internal.h"
28
29 struct _pkginfo_str_map_t {
30         pkgmgrinfo_pkginfo_filter_prop_str prop;
31         const char *property;
32 };
33
34 static struct _pkginfo_str_map_t pkginfo_str_prop_map[] = {
35         {E_PMINFO_PKGINFO_PROP_PACKAGE_ID,              PMINFO_PKGINFO_PROP_PACKAGE_ID},
36         {E_PMINFO_PKGINFO_PROP_PACKAGE_TYPE,            PMINFO_PKGINFO_PROP_PACKAGE_TYPE},
37         {E_PMINFO_PKGINFO_PROP_PACKAGE_VERSION,         PMINFO_PKGINFO_PROP_PACKAGE_VERSION},
38         {E_PMINFO_PKGINFO_PROP_PACKAGE_INSTALL_LOCATION,PMINFO_PKGINFO_PROP_PACKAGE_INSTALL_LOCATION},
39         {E_PMINFO_PKGINFO_PROP_PACKAGE_INSTALLED_STORAGE,PMINFO_PKGINFO_PROP_PACKAGE_INSTALLED_STORAGE},
40         {E_PMINFO_PKGINFO_PROP_PACKAGE_AUTHOR_NAME,     PMINFO_PKGINFO_PROP_PACKAGE_AUTHOR_NAME},
41         {E_PMINFO_PKGINFO_PROP_PACKAGE_AUTHOR_EMAIL,    PMINFO_PKGINFO_PROP_PACKAGE_AUTHOR_EMAIL},
42         {E_PMINFO_PKGINFO_PROP_PACKAGE_AUTHOR_HREF,     PMINFO_PKGINFO_PROP_PACKAGE_AUTHOR_HREF}
43 };
44
45 struct _pkginfo_int_map_t {
46         pkgmgrinfo_pkginfo_filter_prop_int prop;
47         const char *property;
48 };
49
50 static struct _pkginfo_int_map_t pkginfo_int_prop_map[] = {
51         {E_PMINFO_PKGINFO_PROP_PACKAGE_SIZE,    PMINFO_PKGINFO_PROP_PACKAGE_SIZE}
52 };
53
54 struct _pkginfo_bool_map_t {
55         pkgmgrinfo_pkginfo_filter_prop_bool prop;
56         const char *property;
57 };
58
59 static struct _pkginfo_bool_map_t pkginfo_bool_prop_map[] = {
60         {E_PMINFO_PKGINFO_PROP_PACKAGE_REMOVABLE,       PMINFO_PKGINFO_PROP_PACKAGE_REMOVABLE},
61         {E_PMINFO_PKGINFO_PROP_PACKAGE_PRELOAD,         PMINFO_PKGINFO_PROP_PACKAGE_PRELOAD},
62         {E_PMINFO_PKGINFO_PROP_PACKAGE_READONLY,        PMINFO_PKGINFO_PROP_PACKAGE_READONLY},
63         {E_PMINFO_PKGINFO_PROP_PACKAGE_UPDATE,          PMINFO_PKGINFO_PROP_PACKAGE_UPDATE},
64         {E_PMINFO_PKGINFO_PROP_PACKAGE_APPSETTING,      PMINFO_PKGINFO_PROP_PACKAGE_APPSETTING},
65         {E_PMINFO_PKGINFO_PROP_PACKAGE_NODISPLAY_SETTING,       PMINFO_PKGINFO_PROP_PACKAGE_NODISPLAY_SETTING}
66 };
67
68 struct _appinfo_str_map_t {
69         pkgmgrinfo_appinfo_filter_prop_str prop;
70         const char *property;
71 };
72
73 static struct _appinfo_str_map_t appinfo_str_prop_map[] = {
74         {E_PMINFO_APPINFO_PROP_APP_ID,          PMINFO_APPINFO_PROP_APP_ID},
75         {E_PMINFO_APPINFO_PROP_APP_COMPONENT,   PMINFO_APPINFO_PROP_APP_COMPONENT},
76         {E_PMINFO_APPINFO_PROP_APP_EXEC,        PMINFO_APPINFO_PROP_APP_EXEC},
77         {E_PMINFO_APPINFO_PROP_APP_ICON,        PMINFO_APPINFO_PROP_APP_ICON},
78         {E_PMINFO_APPINFO_PROP_APP_TYPE,        PMINFO_APPINFO_PROP_APP_TYPE},
79         {E_PMINFO_APPINFO_PROP_APP_OPERATION,   PMINFO_APPINFO_PROP_APP_OPERATION},
80         {E_PMINFO_APPINFO_PROP_APP_URI,         PMINFO_APPINFO_PROP_APP_URI},
81         {E_PMINFO_APPINFO_PROP_APP_MIME,        PMINFO_APPINFO_PROP_APP_MIME},
82         {E_PMINFO_APPINFO_PROP_APP_CATEGORY,    PMINFO_APPINFO_PROP_APP_CATEGORY},
83         {E_PMINFO_APPINFO_PROP_APP_HWACCELERATION,      PMINFO_APPINFO_PROP_APP_HWACCELERATION},
84         {E_PMINFO_APPINFO_PROP_APP_SCREENREADER,        PMINFO_APPINFO_PROP_APP_SCREENREADER}
85 };
86
87 struct _appinfo_int_map_t {
88         pkgmgrinfo_appinfo_filter_prop_int prop;
89         const char *property;
90 };
91
92 static struct _appinfo_int_map_t appinfo_int_prop_map[] = {
93         /*Currently No Fields*/
94 };
95
96 struct _appinfo_bool_map_t {
97         pkgmgrinfo_appinfo_filter_prop_bool prop;
98         const char *property;
99 };
100
101 static struct _appinfo_bool_map_t appinfo_bool_prop_map[] = {
102         {E_PMINFO_APPINFO_PROP_APP_NODISPLAY,           PMINFO_APPINFO_PROP_APP_NODISPLAY},
103         {E_PMINFO_APPINFO_PROP_APP_MULTIPLE,            PMINFO_APPINFO_PROP_APP_MULTIPLE},
104         {E_PMINFO_APPINFO_PROP_APP_ONBOOT,              PMINFO_APPINFO_PROP_APP_ONBOOT},
105         {E_PMINFO_APPINFO_PROP_APP_AUTORESTART,         PMINFO_APPINFO_PROP_APP_AUTORESTART},
106         {E_PMINFO_APPINFO_PROP_APP_TASKMANAGE,          PMINFO_APPINFO_PROP_APP_TASKMANAGE},
107         {E_PMINFO_APPINFO_PROP_APP_LAUNCHCONDITION,             PMINFO_APPINFO_PROP_APP_LAUNCHCONDITION}
108 };
109
110 inline pkgmgrinfo_pkginfo_filter_prop_str _pminfo_pkginfo_convert_to_prop_str(const char *property)
111 {
112         int i = 0;
113         int max = 0;
114         pkgmgrinfo_pkginfo_filter_prop_str prop = -1;
115
116         if (property == NULL)
117                 return -1;
118         max = E_PMINFO_PKGINFO_PROP_PACKAGE_MAX_STR - E_PMINFO_PKGINFO_PROP_PACKAGE_MIN_STR + 1;
119         for (i = 0 ; i < max; i++) {
120                 if (strcmp(property, pkginfo_str_prop_map[i].property) == 0) {
121                         prop =  pkginfo_str_prop_map[i].prop;
122                         break;
123                 }
124         }
125         return prop;
126 }
127
128 inline pkgmgrinfo_pkginfo_filter_prop_int _pminfo_pkginfo_convert_to_prop_int(const char *property)
129 {
130         int i = 0;
131         int max = 0;
132         pkgmgrinfo_pkginfo_filter_prop_int prop = -1;
133
134         if (property == NULL)
135                 return -1;
136         max = E_PMINFO_PKGINFO_PROP_PACKAGE_MAX_INT - E_PMINFO_PKGINFO_PROP_PACKAGE_MIN_INT + 1;
137         for (i = 0 ; i < max; i++) {
138                 if (strcmp(property, pkginfo_int_prop_map[i].property) == 0) {
139                         prop =  pkginfo_int_prop_map[i].prop;
140                         break;
141                 }
142         }
143         return prop;
144 }
145
146 inline pkgmgrinfo_pkginfo_filter_prop_bool _pminfo_pkginfo_convert_to_prop_bool(const char *property)
147 {
148         int i = 0;
149         int max = 0;
150         pkgmgrinfo_pkginfo_filter_prop_bool prop = -1;
151
152         if (property == NULL)
153                 return -1;
154         max = E_PMINFO_PKGINFO_PROP_PACKAGE_MAX_BOOL - E_PMINFO_PKGINFO_PROP_PACKAGE_MIN_BOOL + 1;
155         for (i = 0 ; i < max; i++) {
156                 if (strcmp(property, pkginfo_bool_prop_map[i].property) == 0) {
157                         prop =  pkginfo_bool_prop_map[i].prop;
158                         break;
159                 }
160         }
161         return prop;
162 }
163
164 inline pkgmgrinfo_appinfo_filter_prop_str _pminfo_appinfo_convert_to_prop_str(const char *property)
165 {
166         int i = 0;
167         int max = 0;
168         pkgmgrinfo_appinfo_filter_prop_str prop = -1;
169
170         if (property == NULL)
171                 return -1;
172         max = E_PMINFO_APPINFO_PROP_APP_MAX_STR - E_PMINFO_APPINFO_PROP_APP_MIN_STR + 1;
173         for (i = 0 ; i < max; i++) {
174                 if (strcmp(property, appinfo_str_prop_map[i].property) == 0) {
175                         prop =  appinfo_str_prop_map[i].prop;
176                         break;
177                 }
178         }
179         return prop;
180 }
181
182 inline pkgmgrinfo_appinfo_filter_prop_int _pminfo_appinfo_convert_to_prop_int(const char *property)
183 {
184         int i = 0;
185         int max = 0;
186         pkgmgrinfo_appinfo_filter_prop_int prop = -1;
187
188         if (property == NULL)
189                 return -1;
190         max = E_PMINFO_APPINFO_PROP_APP_MAX_INT - E_PMINFO_APPINFO_PROP_APP_MIN_INT + 1;
191         for (i = 0 ; i < max; i++) {
192                 if (strcmp(property, appinfo_int_prop_map[i].property) == 0) {
193                         prop =  appinfo_int_prop_map[i].prop;
194                         break;
195                 }
196         }
197         return prop;
198 }
199
200 inline pkgmgrinfo_appinfo_filter_prop_bool _pminfo_appinfo_convert_to_prop_bool(const char *property)
201 {
202         int i = 0;
203         int max = 0;
204         pkgmgrinfo_appinfo_filter_prop_bool prop = -1;
205
206         if (property == NULL)
207                 return -1;
208         max = E_PMINFO_APPINFO_PROP_APP_MAX_BOOL - E_PMINFO_APPINFO_PROP_APP_MIN_BOOL + 1;
209         for (i = 0 ; i < max; i++) {
210                 if (strcmp(property, appinfo_bool_prop_map[i].property) == 0) {
211                         prop =  appinfo_bool_prop_map[i].prop;
212                         break;
213                 }
214         }
215         return prop;
216 }