Remove unused variable
[platform/core/appfw/pkgmgr-info.git] / include / pkgmgrinfo_type.h
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 #ifndef __PKGMGRINFO_TYPE_H__
24 #define __PKGMGRINFO_TYPE_H__
25
26 #include <sys/types.h>
27
28 /* app background category value */
29 #define APP_BG_CATEGORY_USER_DISABLE_FALSE_VAL          0x00000
30 #define APP_BG_CATEGORY_USER_DISABLE_TRUE_VAL           0x00001
31 #define APP_BG_CATEGORY_MEDIA_VAL                       0x00002
32 #define APP_BG_CATEGORY_DOWNLOAD_VAL                    0x00004
33 #define APP_BG_CATEGORY_BGNETWORK_VAL                   0x00008
34 #define APP_BG_CATEGORY_LOCATION_VAL                    0x00010
35 #define APP_BG_CATEGORY_SENSOR_VAL                      0x00020
36 #define APP_BG_CATEGORY_IOTCOMM_VAL                     0x00040
37 #define APP_BG_CATEGORY_SYSTEM_VAL                      0x00080
38
39 #define APP_BG_CATEGORY_USER_DISABLE_FALSE_STR          "enable"
40 #define APP_BG_CATEGORY_USER_DISABLE_TRUE_STR           "disable"
41 #define APP_BG_CATEGORY_MEDIA_STR                       "media"
42 #define APP_BG_CATEGORY_DOWNLOAD_STR                    "download"
43 #define APP_BG_CATEGORY_BGNETWORK_STR                   "background-network"
44 #define APP_BG_CATEGORY_LOCATION_STR                    "location"
45 #define APP_BG_CATEGORY_SENSOR_STR                      "sensor"
46 #define APP_BG_CATEGORY_IOTCOMM_STR                     "iot-communication"
47 #define APP_BG_CATEGORY_SYSTEM                          "system"
48
49 /* Integer property for support-mode */
50 #define APP_SUPPORT_MODE_ULTRA_POWER_SAVING_VAL         0x00001
51 #define APP_SUPPORT_MODE_COOL_DOWN_VAL                          0x00002
52 #define APP_SUPPORT_MODE_SCREEN_READER_VAL                      0x00004
53
54 /* String property for support-mode */
55 #define APP_SUPPORT_MODE_ULTRA_POWER_SAVING_STR         "ultra-power-saving"
56 #define APP_SUPPORT_MODE_COOL_DOWN_STR          "cool-down"
57 #define APP_SUPPORT_MODE_SCREEN_READER_STR              "screen-reader"
58
59 /**
60  * @brief A type to retrieve uid information from the manifest handle
61  */
62 typedef struct {
63         uid_t uid;
64 } pkgmgrinfo_uidinfo_t;
65
66 /**
67  * @brief A handle to insert certificate information
68  */
69 typedef void *pkgmgrinfo_instcertinfo_h;
70
71 /**
72  * @brief Certificate Types to be used for setting information
73  */
74 typedef enum {
75         PMINFO_SET_AUTHOR_ROOT_CERT = 0,                /**< Author Root Certificate*/
76         PMINFO_SET_AUTHOR_INTERMEDIATE_CERT = 1,                /**< Author Intermediate Certificate*/
77         PMINFO_SET_AUTHOR_SIGNER_CERT = 2,              /**< Author Signer Certificate*/
78         PMINFO_SET_DISTRIBUTOR_ROOT_CERT = 3,           /**< Distributor Root Certificate*/
79         PMINFO_SET_DISTRIBUTOR_INTERMEDIATE_CERT = 4,           /**< Distributor Intermediate Certificate*/
80         PMINFO_SET_DISTRIBUTOR_SIGNER_CERT = 5,         /**< Distributor Signer Certificate*/
81         PMINFO_SET_DISTRIBUTOR2_ROOT_CERT = 6,          /**< End Entity Root Certificate*/
82         PMINFO_SET_DISTRIBUTOR2_INTERMEDIATE_CERT = 7,          /**< End Entity Intermediate Certificate*/
83         PMINFO_SET_DISTRIBUTOR2_SIGNER_CERT = 8,                /**< End Entity Signer Certificate*/
84 } pkgmgrinfo_instcert_type;
85
86 typedef enum {
87         PMINFO_CERT_COMPARE_MATCH,
88         PMINFO_CERT_COMPARE_MISMATCH,
89         PMINFO_CERT_COMPARE_LHS_NO_CERT,
90         PMINFO_CERT_COMPARE_RHS_NO_CERT,
91         PMINFO_CERT_COMPARE_BOTH_NO_CERT,
92         PMINFO_CERT_COMPARE_ERROR,
93 } pkgmgrinfo_cert_compare_result_type_e;
94
95 typedef enum {
96         PMINFO_APPINFO_GET_BASICINFO = 0x0001,
97         PMINFO_APPINFO_GET_LABEL = 0x0002,
98         PMINFO_APPINFO_GET_ICON = 0x0004,
99         PMINFO_APPINFO_GET_CATEGORY = 0x0008,
100         PMINFO_APPINFO_GET_APP_CONTROL = 0x0010,
101         PMINFO_APPINFO_GET_METADATA = 0x0020,
102         PMINFO_APPINFO_GET_SPLASH_SCREEN = 0x0040,
103         PMINFO_APPINFO_GET_RES_CONTROL = 0x0080,
104         PMINFO_APPINFO_GET_ALL = 0x00FF
105 } pkgmgrinfo_appinfo_get_option;
106
107 typedef enum {
108         PMINFO_PKGINFO_GET_BASICINFO = 0x0001,
109         PMINFO_PKGINFO_GET_LABEL = 0x0002,
110         PMINFO_PKGINFO_GET_ICON = 0x0004,
111         PMINFO_PKGINFO_GET_AUTHOR = 0x0008,
112         PMINFO_PKGINFO_GET_DESCRIPTION = 0x0010,
113         PMINFO_PKGINFO_GET_PRIVILEGE = 0x0020,
114         PMINFO_PKGINFO_GET_APPDEFINED_PRIVILEGE = 0x0040,
115         PMINFO_PKGINFO_GET_DEPENDENCY = 0x0080,
116         PMINFO_PKGINFO_GET_RES_INFO = 0x0100,
117         PMINFO_PKGINFO_GET_METADATA = 0x0200,
118         PMINFO_PKGINFO_GET_ALL = 0x03FF
119 } pkgmgrinfo_pkginfo_get_option;
120
121 /**
122  * @brief API return values
123  */
124 enum {
125         PMINFO_R_ENOENT = -3,           /**< No result */
126         PMINFO_R_EINVAL = -2,           /**< Invalid argument */
127         PMINFO_R_ERROR = -1,            /**< General error */
128         PMINFO_R_OK = 0                 /**< General success */
129 };
130
131 /**
132  * @brief Value to be used when filtering based on install location
133  */
134 #define PMINFO_PKGINFO_INSTALL_LOCATION_AUTO            "LOCATION_AUTO"
135
136 /**
137  * @brief Value to be used when filtering based on install location
138  */
139 #define PMINFO_PKGINFO_INSTALL_LOCATION_INTERNAL        "LOCATION_INTERNAL"
140
141 /**
142  * @brief Value to be used when filtering based on install location
143  */
144 #define PMINFO_PKGINFO_INSTALL_LOCATION_EXTERNAL        "LOCATION_EXTERNAL"
145
146 /**
147  * @brief Value to be used when get/set update information
148  */
149 #define PMINFO_UPDATEINFO_TYPE_FORCE    "force"
150
151 /**
152  * @brief Value to be used when get/set update information
153  */
154 #define PMINFO_UPDATEINFO_TYPE_OPTIONAL "optional"
155
156 /**
157  * @brief Value to be used when get/set update information
158  */
159 #define PMINFO_UPDATEINFO_TYPE_NONE     "none"
160
161 typedef enum {
162         PMINFO_UPDATEINFO_NONE = 0,             /**<No update info exists*/
163         PMINFO_UPDATEINFO_FORCE,                /**<Don't launch application if it's not updated*/
164         PMINFO_UPDATEINFO_OPTIONAL              /**<Update exists but not force user to update it*/
165 } pkgmgrinfo_updateinfo_update_type;
166
167 typedef enum {
168         PMINFO_HWACCELERATION_OFF = 0,          /**< Don't use hardware acceleration*/
169         PMINFO_HWACCELERATION_ON = 1,           /**< Use hardware acceleration*/
170         PMINFO_HWACCELERATION_DEFAULT = 2               /**< Follow system setting for hardware acceleration */
171 } pkgmgrinfo_app_hwacceleration;
172
173 typedef enum {
174         PMINFO_SCREENREADER_OFF = 0,            /**< Don't use screen reader*/
175         PMINFO_SCREENREADER_ON = 1,             /**< Use screen reader*/
176         PMINFO_SCREENREADER_USE_SYSTEM_SETTING = 2              /**< Follow system setting for screen reader */
177 } pkgmgrinfo_app_screenreader;
178
179 typedef enum {
180         PMINFO_RECENTIMAGE_USE_ICON = 0,                /**<Use icon for recent image*/
181         PMINFO_RECENTIMAGE_USE_CAPTURE = 1,             /**< Use capture for recent image*/
182         PMINFO_RECENTIMAGE_USE_NOTHING = 2              /**< Don't use recent image */
183 } pkgmgrinfo_app_recentimage;
184
185 /**
186  * @brief A handle to get package information
187  */
188 typedef void *pkgmgrinfo_pkginfo_h;
189
190 /**
191  * @brief A handle to get application information
192  */
193 typedef void *pkgmgrinfo_appinfo_h;
194
195 /**
196  * @brief A handle to get certificate information
197  */
198 typedef void *pkgmgrinfo_certinfo_h;
199
200 /**
201  * @brief A handle to filter package information
202  */
203 typedef void *pkgmgrinfo_pkginfo_filter_h;
204
205 /**
206  * @brief A handle to filter package metadata information
207  */
208 typedef void *pkgmgrinfo_pkginfo_metadata_filter_h;
209
210 /**
211  * @brief A handle to get/set package update information
212  */
213 typedef void *pkgmgrinfo_updateinfo_h;
214
215 /**
216  * @brief A handle to filter application information
217  */
218 typedef void *pkgmgrinfo_appinfo_filter_h;
219
220 /**
221  * @brief A handle to filter application metadata  information
222  */
223 typedef void *pkgmgrinfo_appinfo_metadata_filter_h;
224
225 /**
226  * @brief A handle to get package archive information
227  */
228 typedef void *pkgmgrinfo_archiveinfo_h;
229
230 /**
231  * @brief A handle to get allowed package required privilege
232  */
233 typedef void *required_privilege_h;
234
235 /**
236  * @brief type definition.
237  */
238 typedef void pkgmgrinfo_client;
239
240 /**
241  * @fn int (*pkgmgrinfo_foreach_updateinfo_cb) (const pkgmgrinfo_updateinfo_h handle, void *user_data)
242  *
243  * @brief Specifies the type of function passed to pkgmgrinfo_updateinfo_foreach_updateinfo()
244  *
245  * @param[in] handle the package update info handle
246  * @param[in] user_data user data passed to pkgmgrinfo_foreach_pkg_update info()
247  *
248  * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
249  *
250  * @see  pkgmgrinfo_updateinfo_foreach_updateinfo()
251  */
252 typedef int (*pkgmgrinfo_foreach_updateinfo_cb) (const pkgmgrinfo_updateinfo_h handle,
253                                                         void *user_data);
254
255 /**
256  * @fn int (*pkgmgrinfo_pkg_list_cb) (const pkgmgrinfo_pkginfo_h handle, void *user_data)
257  *
258  * @brief Specifies the type of function passed to pkgmgrinfo_pkginfo_get_list(), pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
259  *
260  * @param[in] handle the pkginfo handle
261  * @param[in] user_data user data passed to pkgmgrinfo_pkginfo_get_list(), pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
262  *
263  * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
264  *
265  * @see  pkgmgrinfo_pkginfo_get_list()
266  * @see  pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
267  */
268 typedef int (*pkgmgrinfo_pkg_list_cb) (const pkgmgrinfo_pkginfo_h handle,
269                                                         void *user_data);
270
271 /**
272  * @fn int (*pkgmgrinfo_app_list_cb) (const pkgmgrinfo_appinfo_h handle, void *user_data)
273  *
274  * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_get_list(), pkgmgrinfo_appinfo_filter_foreach_appinfo(), pkgmgrinfo_appinfo_metadata_filter_foreach()
275  *
276  * @param[in] handle the appinfo handle
277  * @param[in] user_data user data passed to pkgmgrinfo_appinfo_get_list(), pkgmgrinfo_appinfo_filter_foreach_appinfo(), pkgmgrinfo_appinfo_metadata_filter_foreach()
278  *
279  * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
280  *
281  * @see  pkgmgrinfo_appinfo_get_list()
282  * @see  pkgmgrinfo_appinfo_filter_foreach_appinfo()
283  * @see  pkgmgrinfo_appinfo_metadata_filter_foreach()
284  */
285 typedef int (*pkgmgrinfo_app_list_cb) (const pkgmgrinfo_appinfo_h handle,
286                                                         void *user_data);
287
288 /**
289  * @fn int (*pkgmgrinfo_app_category_list_cb) (const char *category_name, void *user_data)
290  *
291  * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_category()
292  *
293  * @param[in] category_name the name of the category
294  * @param[in] user_data user data passed to pkgmgrinfo_appinfo_foreach_category()
295  *
296  * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
297  *
298  * @see  pkgmgrinfo_appinfo_foreach_category()
299  */
300 typedef int (*pkgmgrinfo_app_category_list_cb) (const char *category_name,
301                                                         void *user_data);
302
303 /**
304  * @fn int (*pkgmgrinfo_pkg_privilege_list_cb) (const char *privilege_name, void *user_data)
305  *
306  * @brief Specifies the type of function passed to pkgmgrinfo_pkginfo_foreach_privilege()
307  *
308  * @param[in] privilege_name the name of the privilege
309  * @param[in] user_data user data passed to pkgmgrinfo_pkginfo_foreach_privilege()
310  *
311  * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
312  *
313  * @see  pkgmgrinfo_pkginfo_foreach_privilege()
314  */
315 typedef int (*pkgmgrinfo_pkg_privilege_list_cb) (const char *privilege_name,
316                                                         void *user_data);
317
318 /**
319  * @fn int (*pkgmgrinfo_pkg_appdefined_privilege_list_cb) (const char *privilege_name, const char *license_path, void *user_data)
320  *
321  * @brief Specifies the type of function passed to pkgmgrinfo_pkginfo_foreach_appdefined_privilege()
322  *
323  * @param[in] privilege_name the name of the privilege
324  * @param[in] license_path the path of the license
325  * @param[in] user_data user data passed to pkgmgrinfo_pkginfo_foreach_appdefined_privilege()
326  *
327  * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
328  *
329  * @see  pkgmgrinfo_pkginfo_foreach_appdefined_privilege()
330  */
331 typedef int (*pkgmgrinfo_pkg_appdefined_privilege_list_cb) (const char *privilege_name,
332                                                         const char *license_path,
333                                                         void *user_data);
334 /**
335  * @fn int (*pkgmgrinfo_pkg_dependency_list_cb) (const char *from, const char *to, const char *type, const char *required_version, void *user_data)
336  *
337  * @brief Specifies the dependency info of given package passed to pkgmgrinfo_pkginfo_foreach_dependency(), pkgmgrinfo_pkginfo_foreach_required_by(), pkgmgrinfo_archiveinfo_foreach_dependency()
338  *
339  * @param[in] from the pkgid which depends other package
340  * @param[in] to the pkgid which has dependency with given package
341  * @param[in] type type of dependency
342  * @param[in] required_version required version of dependency
343  * @param[in] user_data user data passed
344  *
345  * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
346  *
347  * @see  pkgmgrinfo_pkginfo_foreach_dependency()
348  * @see  pkgmgrinfo_pkginfo_foreach_required_by()
349  */
350 typedef int (*pkgmgrinfo_pkg_dependency_list_cb) (const char *from, const char *to,
351                 const char *type, const char *required_version,
352                 void *user_data);
353
354 /**
355  * @fn int (*pkgmgrinfo_pkg_metadata_list_cb) (const char *metadata_key, const char *metadata_value, void *user_data)
356  *
357  * @brief Specifies the type of function passed to pkgmgrinfo_pkginfo_foreach_metadata()
358  *
359  * @param[in] metadata_name the name of the metadata
360  * @param[in] metadata_value the value of the metadata
361  * @param[in] user_data user data passed to pkgmgrinfo_pkginfo_foreach_metadata()
362  *
363  * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
364  *
365  * @see  pkgmgrinfo_pkginfo_foreach_metadata()
366  */
367 typedef int (*pkgmgrinfo_pkg_metadata_list_cb) (const char *metadata_key,
368                                                         const char *metadata_value, void *user_data);
369
370 /**
371  * @fn int (*pkgmgrinfo_plugin_list_cb) (const char *pkgid, const char *appid, const char *plugin_type, const char *plugin_name, void *user_data);
372  *
373  * @brief Specifies the type of function passed to pkgmgrinfo_plugininfo_foreach_plugininfo()
374  *
375  * @param[in] pkgid the name of the package
376  * @param[in] appid the name of the application
377  * @param[in] plugin_type the type of the executed plugin
378  * @param[in] plugin_name the name of the executed plugin
379  * @param[in] user_data user data passed to pkgmgrinfo_plugininfo_foreach_plugininfo()
380  *
381  * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
382  *
383  * @see  pkgmgrinfo_plugininfo_foreach_plugininfo()
384  */
385 typedef int (*pkgmgrinfo_plugin_list_cb) (const char *pkgid, const char *appid,
386                 const char *plugin_type, const char *plugin_name,
387                 void *user_data);
388
389 /**
390  * @fn int (*pkgmgrinfo_res_allowed_package_list_cb) (
391                 const char *allowed_package,
392                 required_privilege_h privilege_handle, void *user_data);
393  *
394  * @brief Specifies the type of function passed to pkgmgrinfo_pkginfo_foreach_res_allowed_package()
395  *
396  * @param[in] allowed_package the name of the package
397  * @param[in] privilege_handle the required privilege handle of the package
398  * @param[in] user_data user data passed to pkgmgrinfo_pkginfo_foreach_res_allowed_package()
399  *
400  * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
401  *
402  * @see  pkgmgrinfo_pkginfo_foreach_res_allowed_package()
403  */
404 typedef int (*pkgmgrinfo_res_allowed_package_list_cb) (
405                 const char *allowed_package,
406                 required_privilege_h privilege_handle, void *user_data);
407
408 /**
409  * @fn int (*pkgmgrinfo_app_metadata_list_cb) (const char *metadata_key, const char *metadata_value, void *user_data)
410  *
411  * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_metadata()
412  *
413  * @param[in] metadata_name the name of the metadata
414  * @param[in] metadata_value the value of the metadata
415  * @param[in] user_data user data passed to pkgmgrinfo_appinfo_foreach_metadata()
416  *
417  * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
418  *
419  * @see  pkgmgrinfo_appinfo_foreach_metadata()
420  */
421 typedef int (*pkgmgrinfo_app_metadata_list_cb) (const char *metadata_key,
422                                                         const char *metadata_value, void *user_data);
423
424 /**
425  * @fn int (*pkgmgrinfo_app_control_list_cb) (const char *operation, const char *uri, const char *mime, void *user_data);
426  *
427  * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_appcontrol()
428  *
429  * @param[in] operation The operation of the app-control
430  * @param[in] uri       The URI of the app-control
431  * @param[in] mime      The MIME-Type of the app-control
432  * @param[in] user_data user data passed to pkgmgrinfo_appinfo_foreach_appcontrol()
433  *
434  * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
435  *
436  * @see  pkgmgrinfo_appinfo_foreach_appcontrol()
437  */
438 typedef int (*pkgmgrinfo_app_control_list_cb) (const char *operation, const char *uri, const char *mime,
439                                                         void *user_data);
440 /**
441  * @fn int (*pkgmgrinfo_app_control_list_cb_v2) (const char *operation, const char *uri, const char *mime, const char *id, void *user_data)
442  *
443  * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_appcontrol_info()
444  *
445  * @param[in] operation The operation of the app-control
446  * @param[in] uri       The URI of the app-control
447  * @param[in] mime      The MIME-Type of the app-control
448  * @param[in] id        The ID of the app-control
449  * @param[in] user_data The user data passed from pkgmgrinfo_appinfo_foreach_appcontrol_v2()
450  *
451  * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
452  *
453  * @see  pkgmgrinfo_appinfo_foreach_appcontrol_v2()
454  */
455 typedef int (*pkgmgrinfo_app_control_list_cb_v2) (const char *operation,
456                 const char *uri, const char *mime, const char *id,
457                 void *user_data);
458
459 /**
460  * @fn int (*pkgmgrinfo_app_background_category_list_cb) (const char *category_name, void *user_data)
461  *
462  * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_background_category()
463  *
464  * @param[in] category_name retrieved background category name
465  * @param[in] user_data user data passed to pkgmgrinfo_appinfo_foreach_background_category
466  *
467  * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
468  *
469  * @see  pkgmgrinfo_appinfo_foreach_background_category()
470  */
471 typedef int (*pkgmgrinfo_app_background_category_list_cb) (const char *category_name, void *user_data);
472
473 /**
474  * @fn int (*pkgmgrinfo_app_splash_screen_list_cb)(const char *src,
475  *              const char *type, const char *orientation,
476  *              const char *indicatordisplay, const char *color_depth,
477  *              void *user_data);
478  * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_splash_screen()
479  *
480  * @param[in] src the source of the splashscreen
481  * @param[in] type the type of the splashscreen
482  * @param[in] orientation the orientation of the splashscreen
483  * @param[in] indicatordisplay the indicator-display of the splashscreen
484  * @param[in] operation the app-control operation of the splashscreen
485  * @param[in] color_depth the color-depth of the splashscreen
486  * @param[in] user_data user data passed to pkgmgrinfo_appinfo_foreach_splash_screen()
487  *
488  * @return 0 if success, negative value(<0) if fail, Callback is not called if return value is negative.\n
489  *
490  * @see pkgmgrinfo_appinfo_foreach_splash_screen()
491  */
492 typedef int (*pkgmgrinfo_app_splash_screen_list_cb)(const char *src,
493                 const char *type, const char *orientation,
494                 const char *indicatordisplay, const char *operation,
495                 const char *color_depth, void *user_data);
496
497 /**
498  * @fn int (*pkgmgrinfo_app_res_control_list_cb) (const char *res_type,
499                 const char *min_res_version, const char *max_res_version,
500                 const char *auto_close, void *user_data);
501  * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_res_control()
502  *
503  * @param[in] res_type the resource type of the res_control
504  * @param[in] min_res_version the minimum resource version of the res_control
505  * @param[in] max_res_version the maximum resource version of the res_control
506  * @param[in] auto_close the auto close of the res_control
507  * @param[in] user_data user data passed to pkgmgrinfo_appinfo_foreach_res_control()
508  *
509  * @return 0 if success, negative value(<0) if fail, Callback is not called if return value is negative.\n
510  *
511  * @see pkgmgrinfo_appinfo_foreach_res_control()
512  */
513
514 typedef int (*pkgmgrinfo_app_res_control_list_cb) (const char *res_type,
515                 const char *min_res_version, const char *max_res_version,
516                 const char *auto_close, void *user_data);
517
518
519
520 /**
521  * @brief Install Location Types
522  */
523 typedef enum {
524         PMINFO_INSTALL_LOCATION_AUTO = 0,               /**< Auto*/
525         PMINFO_INSTALL_LOCATION_INTERNAL_ONLY,          /**< Internal Installation*/
526         PMINFO_INSTALL_LOCATION_PREFER_EXTERNAL,                /**< External Installation*/
527 } pkgmgrinfo_install_location;
528
529 /**
530  * @brief Application Component Types
531  */
532 typedef enum {
533         PMINFO_ALL_APP = 0,             /**< All Application*/
534         PMINFO_UI_APP,                  /**< UI Application*/
535         PMINFO_SVC_APP,                 /**< Service Application*/
536         PMINFO_WIDGET_APP,              /**< Widget Application*/
537         PMINFO_WATCH_APP,               /**< Watch Application*/
538         PMINFO_COMPONENT_BASED_APP,     /**< Component-based Application (Since 5.5)*/
539 } pkgmgrinfo_app_component;
540
541 /**
542  * @brief Application Storage Types
543  */
544 typedef enum {
545         PMINFO_INTERNAL_STORAGE = 0,            /**< Internal Storage*/
546         PMINFO_EXTERNAL_STORAGE = 1,            /**< External Storage*/
547         PMINFO_EXTENDED_STORAGE = 2,            /**< Extended Storage*/
548 } pkgmgrinfo_installed_storage;
549
550 /**
551  * @brief Certificate Types to be used for getting information
552  */
553 typedef enum {
554         PMINFO_AUTHOR_ROOT_CERT = 0,            /**< Author Root Certificate*/
555         PMINFO_AUTHOR_INTERMEDIATE_CERT = 1,            /**< Author Intermediate Certificate*/
556         PMINFO_AUTHOR_SIGNER_CERT = 2,          /**< Author Signer Certificate*/
557         PMINFO_DISTRIBUTOR_ROOT_CERT = 3,               /**< Distributor Root Certificate*/
558         PMINFO_DISTRIBUTOR_INTERMEDIATE_CERT = 4,               /**< Distributor Intermediate Certificate*/
559         PMINFO_DISTRIBUTOR_SIGNER_CERT = 5,             /**< Distributor Signer Certificate*/
560         PMINFO_DISTRIBUTOR2_ROOT_CERT = 6,              /**< End Entity Root Certificate*/
561         PMINFO_DISTRIBUTOR2_INTERMEDIATE_CERT = 7,              /**< End Entity Intermediate Certificate*/
562         PMINFO_DISTRIBUTOR2_SIGNER_CERT = 8,            /**< End Entity Signer Certificate*/
563 } pkgmgrinfo_cert_type;
564
565 /**
566  * @brief version comparison Types
567  */
568 typedef enum {
569         PMINFO_VERSION_OLD = -1,
570         PMINFO_VERSION_SAME,
571         PMINFO_VERSION_NEW,
572 } pkgmgrinfo_version_compare_type;
573
574 /**
575  * @brief Install Location Types to be used when setting data in DB
576  */
577 typedef enum {
578         INSTALL_INTERNAL = 0,           /**< Internal Installation*/
579         INSTALL_EXTERNAL,               /**< External Installation*/
580         INSTALL_EXTENDED,               /**< Extended Installation*/
581 } INSTALL_LOCATION;
582
583 /**
584  * @brief permission Types
585  */
586 typedef enum {
587         PMINFO_PERMISSION_NORMAL = 0,           /**< permission normal*/
588         PMINFO_PERMISSION_SIGNATURE,            /**< permission type is signature*/
589         PMINFO_PERMISSION_PRIVILEGE,            /**< permission type is privilege*/
590 } pkgmgrinfo_permission_type;
591
592 #endif