4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
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>
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
13 * http://www.apache.org/licenses/LICENSE-2.0
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.
29 * @author Sewook Park <sewook7.park@samsung.com>
30 * @author Shobhit Srivastava <shobhit.s@samsung.com>
32 * @brief This file declares API of pkgmgr-info library
34 * @addtogroup APPLICATION_FRAMEWORK
37 * @defgroup PackageManagerInfo
38 * @section Header Header file to include:
40 * #include <pkgmgr-info.h>
46 #ifndef __PKG_INFO_H__
47 #define __PKG_INFO_H__
60 * This is package information library
62 * Package Information Library is used to get package related information.\n
63 * It uses the package manifest information database to get any package related information\n
64 * It also provides API to set information in the package info database\n
70 * @brief Package Information Library Header File
72 * Generated by Sewook Park <sewook7.park@samsung.com>
77 * @brief A handle to insert certificate information
79 typedef void* pkgmgrinfo_instcertinfo_h;
82 * @brief Certificate Types to be used for setting information
85 PMINFO_SET_AUTHOR_ROOT_CERT = 0, /**< Author Root Certificate*/
86 PMINFO_SET_AUTHOR_INTERMEDIATE_CERT = 1, /**< Author Intermediate Certificate*/
87 PMINFO_SET_AUTHOR_SIGNER_CERT = 2, /**< Author Signer Certificate*/
88 PMINFO_SET_DISTRIBUTOR_ROOT_CERT = 3, /**< Distributor Root Certificate*/
89 PMINFO_SET_DISTRIBUTOR_INTERMEDIATE_CERT = 4, /**< Distributor Intermediate Certificate*/
90 PMINFO_SET_DISTRIBUTOR_SIGNER_CERT = 5, /**< Distributor Signer Certificate*/
91 PMINFO_SET_DISTRIBUTOR2_ROOT_CERT = 6, /**< End Entity Root Certificate*/
92 PMINFO_SET_DISTRIBUTOR2_INTERMEDIATE_CERT = 7, /**< End Entity Intermediate Certificate*/
93 PMINFO_SET_DISTRIBUTOR2_SIGNER_CERT = 8, /**< End Entity Signer Certificate*/
94 }pkgmgrinfo_instcert_type;
97 PMINFO_CERT_COMPARE_MATCH,
98 PMINFO_CERT_COMPARE_MISMATCH,
99 PMINFO_CERT_COMPARE_LHS_NO_CERT,
100 PMINFO_CERT_COMPARE_RHS_NO_CERT,
101 PMINFO_CERT_COMPARE_BOTH_NO_CERT,
102 PMINFO_CERT_COMPARE_ERROR,
103 } pkgmgrinfo_cert_compare_result_type_e;
106 * @brief API return values
109 PMINFO_R_EINVAL = -2, /**< Invalid argument */
110 PMINFO_R_ERROR = -1, /**< General error */
111 PMINFO_R_OK = 0 /**< General success */
115 * @brief Value to be used when filtering based on install location
117 #define PMINFO_PKGINFO_INSTALL_LOCATION_AUTO "LOCATION_AUTO"
120 * @brief Value to be used when filtering based on install location
122 #define PMINFO_PKGINFO_INSTALL_LOCATION_INTERNAL "LOCATION_INTERNAL"
125 * @brief Value to be used when filtering based on install location
127 #define PMINFO_PKGINFO_INSTALL_LOCATION_EXTERNAL "LOCATION_EXTERNAL"
130 * @brief Value to be used when filtering based on app-component
132 #define PMINFO_APPINFO_UI_APP "UI_APP"
135 * @brief Value to be used when filtering based on app-component
137 #define PMINFO_APPINFO_SVC_APP "SVC_APP"
140 PMINFO_HWACCELERATION_NOT_USE_GL = 0, /**< Don't use hardware acceleration*/
141 PMINFO_HWACCELERATION_USE_GL = 1, /**< Use hardware acceleration*/
142 PMINFO_HWACCELERATION_USE_SYSTEM_SETTING = 2 /**< Follow system setting for hardware acceleration */
143 }pkgmgrinfo_app_hwacceleration;
146 PMINFO_RECENTIMAGE_USE_ICON = 0, /**<Use icon for recent image*/
147 PMINFO_RECENTIMAGE_USE_CAPTURE = 1, /**< Use capture for recent image*/
148 PMINFO_RECENTIMAGE_USE_NOTHING = 2 /**< Don't use recent image */
149 }pkgmgrinfo_app_recentimage;
152 * @brief A handle to get package information
154 typedef void* pkgmgrinfo_pkginfo_h;
157 * @brief A handle to get application information
159 typedef void* pkgmgrinfo_appinfo_h;
162 * @brief A handle to get certificate information
164 typedef void* pkgmgrinfo_certinfo_h;
167 * @brief A handle to insert package information
169 typedef void* pkgmgrinfo_pkgdbinfo_h;
172 * @brief A handle to filter package information
174 typedef void* pkgmgrinfo_pkginfo_filter_h;
177 * @brief A handle to filter application information
179 typedef void* pkgmgrinfo_appinfo_filter_h;
182 * @brief A handle to filter application metadata information
184 typedef void* pkgmgrinfo_appinfo_metadata_filter_h;
187 * @brief A handle to get appcontrol information
189 typedef void* pkgmgrinfo_appcontrol_h;
192 * @fn int (*pkgmgrinfo_pkg_list_cb ) (const pkgmgrinfo_pkginfo_h handle, void *user_data)
194 * @brief Specifies the type of function passed to pkgmgrinfo_pkginfo_get_list(), pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
196 * @param[in] handle the pkginfo handle
197 * @param[in] user_data user data passed to pkgmgrinfo_pkginfo_get_list(), pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
199 * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
201 * @see pkgmgrinfo_pkginfo_get_list()
202 * @see pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
204 typedef int (*pkgmgrinfo_pkg_list_cb ) (const pkgmgrinfo_pkginfo_h handle,
208 * @fn int (*pkgmgrinfo_app_list_cb ) (const pkgmgrinfo_appinfo_h handle, void *user_data)
210 * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_get_list(), pkgmgrinfo_appinfo_filter_foreach_appinfo(), pkgmgrinfo_appinfo_metadata_filter_foreach()
212 * @param[in] handle the appinfo handle
213 * @param[in] user_data user data passed to pkgmgrinfo_appinfo_get_list(), pkgmgrinfo_appinfo_filter_foreach_appinfo(), pkgmgrinfo_appinfo_metadata_filter_foreach()
215 * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
217 * @see pkgmgrinfo_appinfo_get_list()
218 * @see pkgmgrinfo_appinfo_filter_foreach_appinfo()
219 * @see pkgmgrinfo_appinfo_metadata_filter_foreach()
221 typedef int (*pkgmgrinfo_app_list_cb ) (const pkgmgrinfo_appinfo_h handle,
225 * @fn int (*pkgmgrinfo_app_category_list_cb ) (const char *category_name, void *user_data)
227 * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_category()
229 * @param[in] category_name the name of the category
230 * @param[in] user_data user data passed to pkgmgrinfo_appinfo_foreach_category()
232 * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
234 * @see pkgmgrinfo_appinfo_foreach_category()
236 typedef int (*pkgmgrinfo_app_category_list_cb ) (const char *category_name,
240 * @fn int (*pkgmgrinfo_app_permission_list_cb ) (const char *permission_type, void *user_data)
242 * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_category()
244 * @param[in] permission_name the name of the permission
245 * @param[in] user_data user data passed to pkgmgrinfo_appinfo_foreach_category()
247 * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
249 * @see pkgmgrinfo_appinfo_foreach_category()
251 typedef int (*pkgmgrinfo_app_permission_list_cb ) (const char *permission_type,
255 * @fn int (*pkgmgrinfo_pkg_privilege_list_cb ) (const char *privilege_name, void *user_data)
257 * @brief Specifies the type of function passed to pkgmgrinfo_pkginfo_foreach_privilege()
259 * @param[in] privilege_name the name of the privilege
260 * @param[in] user_data user data passed to pkgmgrinfo_pkginfo_foreach_privilege()
262 * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
264 * @see pkgmgrinfo_pkginfo_foreach_privilege()
266 typedef int (*pkgmgrinfo_pkg_privilege_list_cb ) (const char *privilege_name,
270 * @fn int (*pkgmgrinfo_app_metadata_list_cb ) (const char *metadata_key, const char *metadata_value, void *user_data)
272 * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_metadata()
274 * @param[in] metadata_name the name of the metadata
275 * @param[in] metadata_value the value of the metadata
276 * @param[in] user_data user data passed to pkgmgrinfo_appinfo_foreach_metadata()
278 * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
280 * @see pkgmgrinfo_appinfo_foreach_metadata()
282 typedef int (*pkgmgrinfo_app_metadata_list_cb ) (const char *metadata_key,
283 const char *metadata_value, void *user_data);
286 * @fn int (*pkgmgrinfo_app_control_list_cb ) (pkgmgrinfo_appcontrol_h handle, void *user_data)
288 * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_appcontrol()
290 * @param[in] handle the appcontrol handle to be used to get operation, uri and mime info
291 * @param[in] user_data user data passed to pkgmgrinfo_appinfo_foreach_appcontrol()
293 * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
295 * @see pkgmgrinfo_appinfo_foreach_appcontrol()
297 typedef int (*pkgmgrinfo_app_control_list_cb ) (pkgmgrinfo_appcontrol_h handle,
301 * @brief Install Location Types
304 PMINFO_INSTALL_LOCATION_AUTO = 0, /**< Auto*/
305 PMINFO_INSTALL_LOCATION_INTERNAL_ONLY, /**< Internal Installation*/
306 PMINFO_INSTALL_LOCATION_PREFER_EXTERNAL, /**< External Installation*/
307 }pkgmgrinfo_install_location;
310 * @brief Application Component Types
313 PMINFO_ALL_APP = 0, /**< All Application*/
314 PMINFO_UI_APP, /**< UI Application*/
315 PMINFO_SVC_APP, /**< Service Application*/
316 }pkgmgrinfo_app_component;
319 * @brief Application Storage Types
322 PMINFO_INTERNAL_STORAGE = 0, /**< Internal Storage*/
323 PMINFO_EXTERNAL_STORAGE = 1, /**< External Storage*/
324 }pkgmgrinfo_installed_storage;
327 * @brief Certificate Types to be used for getting information
330 PMINFO_AUTHOR_ROOT_CERT = 0, /**< Author Root Certificate*/
331 PMINFO_AUTHOR_INTERMEDIATE_CERT = 1, /**< Author Intermediate Certificate*/
332 PMINFO_AUTHOR_SIGNER_CERT = 2, /**< Author Signer Certificate*/
333 PMINFO_DISTRIBUTOR_ROOT_CERT = 3, /**< Distributor Root Certificate*/
334 PMINFO_DISTRIBUTOR_INTERMEDIATE_CERT = 4, /**< Distributor Intermediate Certificate*/
335 PMINFO_DISTRIBUTOR_SIGNER_CERT = 5, /**< Distributor Signer Certificate*/
336 PMINFO_DISTRIBUTOR2_ROOT_CERT = 6, /**< End Entity Root Certificate*/
337 PMINFO_DISTRIBUTOR2_INTERMEDIATE_CERT = 7, /**< End Entity Intermediate Certificate*/
338 PMINFO_DISTRIBUTOR2_SIGNER_CERT = 8, /**< End Entity Signer Certificate*/
339 }pkgmgrinfo_cert_type;
342 * @brief Install Location Types to be used when setting data in DB
345 INSTALL_INTERNAL = 0, /**< Internal Installation*/
346 INSTALL_EXTERNAL, /**< External Installation*/
350 * @brief permission Types
353 PMINFO_PERMISSION_NORMAL = 0, /**< permission normal*/
354 PMINFO_PERMISSION_SIGNATURE, /**< permission type is signature*/
355 PMINFO_PERMISSION_PRIVILEGE, /**< permission type is privilege*/
356 }pkgmgrinfo_permission_type;
359 /** String property for filtering based on package info*/
360 #define PMINFO_PKGINFO_PROP_PACKAGE_ID "PMINFO_PKGINFO_PROP_PACKAGE_ID"
361 /** String property for filtering based on package info*/
362 #define PMINFO_PKGINFO_PROP_PACKAGE_TYPE "PMINFO_PKGINFO_PROP_PACKAGE_TYPE"
363 /** String property for filtering based on package info*/
364 #define PMINFO_PKGINFO_PROP_PACKAGE_VERSION "PMINFO_PKGINFO_PROP_PACKAGE_VERSION"
365 /** String property for filtering based on package info*/
366 #define PMINFO_PKGINFO_PROP_PACKAGE_INSTALL_LOCATION "PMINFO_PKGINFO_PROP_PACKAGE_INSTALL_LOCATION"
367 /** String property for filtering based on package info*/
368 #define PMINFO_PKGINFO_PROP_PACKAGE_INSTALLED_STORAGE "PMINFO_PKGINFO_PROP_PACKAGE_INSTALLED_STORAGE"
369 /** String property for filtering based on package info*/
370 #define PMINFO_PKGINFO_PROP_PACKAGE_AUTHOR_NAME "PMINFO_PKGINFO_PROP_PACKAGE_AUTHOR_NAME"
371 /** String property for filtering based on package info*/
372 #define PMINFO_PKGINFO_PROP_PACKAGE_AUTHOR_EMAIL "PMINFO_PKGINFO_PROP_PACKAGE_AUTHOR_EMAIL"
373 /** String property for filtering based on package info*/
374 #define PMINFO_PKGINFO_PROP_PACKAGE_AUTHOR_HREF "PMINFO_PKGINFO_PROP_PACKAGE_AUTHOR_HREF"
376 /** Boolean property for filtering based on package info*/
377 #define PMINFO_PKGINFO_PROP_PACKAGE_REMOVABLE "PMINFO_PKGINFO_PROP_PACKAGE_REMOVABLE"
378 /** Boolean property for filtering based on package info*/
379 #define PMINFO_PKGINFO_PROP_PACKAGE_PRELOAD "PMINFO_PKGINFO_PROP_PACKAGE_PRELOAD"
380 /** Boolean property for filtering based on package info*/
381 #define PMINFO_PKGINFO_PROP_PACKAGE_READONLY "PMINFO_PKGINFO_PROP_PACKAGE_READONLY"
382 /** Boolean property for filtering based on package info*/
383 #define PMINFO_PKGINFO_PROP_PACKAGE_UPDATE "PMINFO_PKGINFO_PROP_PACKAGE_UPDATE"
384 /** Boolean property for filtering based on package info*/
385 #define PMINFO_PKGINFO_PROP_PACKAGE_APPSETTING "PMINFO_PKGINFO_PROP_PACKAGE_APPSETTING"
386 /** Boolean property for filtering based on package info*/
387 #define PMINFO_PKGINFO_PROP_PACKAGE_NODISPLAY_SETTING "PMINFO_PKGINFO_PROP_PACKAGE_NODISPLAY_SETTING"
389 /** Integer property for filtering based on package info*/
390 #define PMINFO_PKGINFO_PROP_PACKAGE_SIZE "PMINFO_PKGINFO_PROP_PACKAGE_SIZE"
392 /** String property for filtering based on app info*/
393 #define PMINFO_APPINFO_PROP_APP_ID "PMINFO_APPINFO_PROP_APP_ID"
394 /** String property for filtering based on app info*/
395 #define PMINFO_APPINFO_PROP_APP_COMPONENT "PMINFO_APPINFO_PROP_APP_COMPONENT"
396 /** String property for filtering based on app info*/
397 #define PMINFO_APPINFO_PROP_APP_EXEC "PMINFO_APPINFO_PROP_APP_EXEC"
398 /** String property for filtering based on app info*/
399 #define PMINFO_APPINFO_PROP_APP_ICON "PMINFO_APPINFO_PROP_APP_ICON"
400 /** String property for filtering based on app info*/
401 #define PMINFO_APPINFO_PROP_APP_TYPE "PMINFO_APPINFO_PROP_APP_TYPE"
402 /** String property for filtering based on app info*/
403 #define PMINFO_APPINFO_PROP_APP_OPERATION "PMINFO_APPINFO_PROP_APP_OPERATION"
404 /** String property for filtering based on app info*/
405 #define PMINFO_APPINFO_PROP_APP_URI "PMINFO_APPINFO_PROP_APP_URI"
406 /** String property for filtering based on app info*/
407 #define PMINFO_APPINFO_PROP_APP_MIME "PMINFO_APPINFO_PROP_APP_MIME"
408 /** String property for filtering based on app info*/
409 #define PMINFO_APPINFO_PROP_APP_CATEGORY "PMINFO_APPINFO_PROP_APP_CATEGORY"
410 /** String property for filtering based on app info*/
411 #define PMINFO_APPINFO_PROP_APP_HWACCELERATION "PMINFO_APPINFO_PROP_APP_HWACCELERATION"
413 /** Boolean property for filtering based on app info*/
414 #define PMINFO_APPINFO_PROP_APP_NODISPLAY "PMINFO_APPINFO_PROP_APP_NODISPLAY"
415 /** Boolean property for filtering based on app info*/
416 #define PMINFO_APPINFO_PROP_APP_MULTIPLE "PMINFO_APPINFO_PROP_APP_MULTIPLE"
417 /** Boolean property for filtering based on app info*/
418 #define PMINFO_APPINFO_PROP_APP_ONBOOT "PMINFO_APPINFO_PROP_APP_ONBOOT"
419 /** Boolean property for filtering based on app info*/
420 #define PMINFO_APPINFO_PROP_APP_AUTORESTART "PMINFO_APPINFO_PROP_APP_AUTORESTART"
421 /** Boolean property for filtering based on app info*/
422 #define PMINFO_APPINFO_PROP_APP_TASKMANAGE "PMINFO_APPINFO_PROP_APP_TASKMANAGE"
423 /** Boolean property for filtering based on app info*/
424 #define PMINFO_APPINFO_PROP_APP_LAUNCHCONDITION "PMINFO_APPINFO_PROP_APP_LAUNCHCONDITION"
426 /** will be updated*/
427 /** string property for filtering based on pkg info*/
428 #define PMINFO_PKGINFO_PROP_RANGE_BASIC "PMINFO_PKGINFO_PROP_RANGE_BASIC"
431 * @fn int pkgmgrinfo_pkginfo_get_list(pkgmgrinfo_pkg_list_cb pkg_list_cb, void *user_data)
432 * @brief This API gets list of installed packages
434 * @par This API is for package-manager client application
435 * @par Sync (or) Async : Synchronous API
436 * @param[in] pkg_list_cb iteration function for list
437 * @param[in] user_data user data to be passed to callback function
438 * @return 0 if success, error code(<0) if fail
439 * @retval PMINFO_R_OK success
440 * @retval PMINFO_R_EINVAL invalid argument
441 * @retval PMINFO_R_ERROR internal error
445 int pkg_list_cb(pkgmgrinfo_pkginfo_h handle, void *user_data)
449 pkgid1 = (char *)user_data;
450 pkgmgrinfo_pkginfo_get_pkgid(handle, &pkgid2);
451 if (strcmp(pkgid1, pkgid2) == 0) {
458 static int list_pkgs()
461 char *name = "helloworld";
462 ret = pkgmgrinfo_pkginfo_get_list(pkg_list_cb, (void *)name);
463 if (ret != PMINFO_R_OK) {
470 int pkgmgrinfo_pkginfo_get_list(pkgmgrinfo_pkg_list_cb pkg_list_cb, void *user_data);
473 * @fn int pkgmgrinfo_pkginfo_get_pkginfo(const char *pkgid, pkgmgrinfo_pkginfo_h *handle)
474 * @brief This API creates the package information handle from db
476 * @par This API is for package-manager client application
477 * @par Sync (or) Async : Synchronous API
479 * @param[in] pkgid pointer to package ID
480 * @param[out] handle pointer to the package info handle.
481 * @return 0 if success, error code(<0) if fail
482 * @retval PMINFO_R_OK success
483 * @retval PMINFO_R_EINVAL invalid argument
484 * @retval PMINFO_R_ERROR internal error
486 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
487 * @see pkgmgrinfo_pkginfo_get_pkgid()
488 * @see pkgmgrinfo_pkginfo_is_removable()
490 static int get_pkg_type(const char *pkgid)
494 pkgmgrinfo_pkginfo_h handle;
495 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
496 if (ret != PMINFO_R_OK)
498 ret = pkgmgrinfo_pkginfo_get_type(handle, &type);
499 if (ret != PMINFO_R_OK) {
500 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
503 printf("pkgtype: %s\n", type);
504 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
509 int pkgmgrinfo_pkginfo_get_pkginfo(const char *pkgid, pkgmgrinfo_pkginfo_h *handle);
512 * @fn int pkgmgrinfo_pkginfo_get_pkgname(pkgmgrinfo_pkginfo_h handle, char **pkg_name)
513 * @brief This API gets the package name from the package ID
515 * @par This API is for package-manager client application
516 * @par Sync (or) Async : Synchronous API
518 * @param[in] handle pointer to package info handle
519 * @param[out] pkg_name pointer to hold package name
520 * @return 0 if success, error code(<0) if fail
521 * @retval PMINFO_R_OK success
522 * @retval PMINFO_R_EINVAL invalid argument
523 * @retval PMINFO_R_ERROR internal error
524 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
525 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
526 * @see pkgmgrinfo_pkginfo_get_type()
527 * @see pkgmgrinfo_pkginfo_is_removable()
529 static int get_pkg_name(const char *pkgid)
532 char *pkgname = NULL;
533 pkgmgrinfo_pkginfo_h handle;
534 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
535 if (ret != PMINFO_R_OK)
537 ret = pkgmgrinfo_pkginfo_get_pkgname(handle, &pkgname);
538 if (ret != PMINFO_R_OK) {
539 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
542 printf("pkgname: %s\n", pkgname);
543 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
548 int pkgmgrinfo_pkginfo_get_pkgname(pkgmgrinfo_pkginfo_h handle, char **pkg_name);
551 * @fn int pkgmgrinfo_pkginfo_get_pkgid(pkgmgrinfo_pkginfo_h handle, char **pkgid)
552 * @brief This API gets the package id from the package ID
554 * @par This API is for package-manager client application
555 * @par Sync (or) Async : Synchronous API
557 * @param[in] handle pointer to package info handle
558 * @param[out] pkgid pointer to hold package id
559 * @return 0 if success, error code(<0) if fail
560 * @retval PMINFO_R_OK success
561 * @retval PMINFO_R_EINVAL invalid argument
562 * @retval PMINFO_R_ERROR internal error
563 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
564 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
565 * @see pkgmgrinfo_pkginfo_get_type()
566 * @see pkgmgrinfo_pkginfo_is_removable()
568 static int get_pkgid(const char *pkgid)
572 pkgmgrinfo_pkginfo_h handle;
573 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
574 if (ret != PMINFO_R_OK)
576 ret = pkgmgrinfo_pkginfo_get_pkgid(handle, &pkg_id);
577 if (ret != PMINFO_R_OK) {
578 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
581 printf("pkg id: %s\n", pkg_id);
582 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
587 int pkgmgrinfo_pkginfo_get_pkgid(pkgmgrinfo_pkginfo_h handle, char **pkgid);
590 * @fn int pkgmgrinfo_pkginfo_get_type(pkgmgrinfo_pkginfo_h handle, char **type)
591 * @brief This API gets the package type from the package ID
593 * @par This API is for package-manager client application
594 * @par Sync (or) Async : Synchronous API
596 * @param[in] handle pointer to package info handle
597 * @param[out] type pointer to hold package type
598 * @return 0 if success, error code(<0) if fail
599 * @retval PMINFO_R_OK success
600 * @retval PMINFO_R_EINVAL invalid argument
601 * @retval PMINFO_R_ERROR internal error
602 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
603 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
604 * @see pkgmgrinfo_pkginfo_get_pkgid()
605 * @see pkgmgrinfo_pkginfo_is_removable()
607 static int get_pkg_type(const char *pkgid)
611 pkgmgrinfo_pkginfo_h handle;
612 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
613 if (ret != PMINFO_R_OK)
615 ret = pkgmgrinfo_pkginfo_get_type(handle, &type);
616 if (ret != PMINFO_R_OK) {
617 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
620 printf("pkgtype: %s\n", type);
621 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
626 int pkgmgrinfo_pkginfo_get_type(pkgmgrinfo_pkginfo_h handle, char **type);
629 * @fn int pkgmgrinfo_pkginfo_get_version(pkgmgrinfo_pkginfo_h handle, char **version)
630 * @brief This API gets the package version from the package ID
632 * @par This API is for package-manager client application
633 * @par Sync (or) Async : Synchronous API
635 * @param[in] handle pointer to package info handle
636 * @param[out] version pointer to hold package version
637 * @return 0 if success, error code(<0) if fail
638 * @retval PMINFO_R_OK success
639 * @retval PMINFO_R_EINVAL invalid argument
640 * @retval PMINFO_R_ERROR internal error
641 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
642 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
643 * @see pkgmgrinfo_pkginfo_get_pkgid()
644 * @see pkgmgrinfo_pkginfo_is_removable()
646 static int get_pkg_version(const char *pkgid)
649 char *version = NULL;
650 pkgmgrinfo_pkginfo_h handle;
651 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
652 if (ret != PMINFO_R_OK)
654 ret = pkgmgrinfo_pkginfo_get_version(handle, &version);
655 if (ret != PMINFO_R_OK) {
656 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
659 printf("pkg version: %s\n", version);
660 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
665 int pkgmgrinfo_pkginfo_get_version(pkgmgrinfo_pkginfo_h handle, char **version);
668 * @fn int pkgmgrinfo_pkginfo_get_install_location(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_install_location *location)
669 * @brief This API gets the package install location from the package ID
671 * @par This API is for package-manager client application
672 * @par Sync (or) Async : Synchronous API
674 * @param[in] handle pointer to package info handle
675 * @param[out] location pointer to hold package install location
676 * @return 0 if success, error code(<0) if fail
677 * @retval PMINFO_R_OK success
678 * @retval PMINFO_R_EINVAL invalid argument
679 * @retval PMINFO_R_ERROR internal error
680 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
681 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
682 * @see pkgmgrinfo_pkginfo_get_pkgid()
683 * @see pkgmgrinfo_pkginfo_is_removable()
685 static int get_pkg_install_location(const char *pkgid)
688 pkgmgrinfo_install_location location;
689 pkgmgrinfo_pkginfo_h handle;
690 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
691 if (ret != PMINFO_R_OK)
693 ret = pkgmgrinfo_pkginfo_get_install_location(handle, &location);
694 if (ret != PMINFO_R_OK) {
695 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
698 printf("pkg install location: %d\n", location);
699 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
704 int pkgmgrinfo_pkginfo_get_install_location(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_install_location *location);
707 * @fn int pkgmgrinfo_pkginfo_get_package_size(pkgmgrinfo_pkginfo_h handle, int *size)
708 * @brief This API gets the package size from the package ID. size will be 0 if package install location is internal-only.
709 size will be 0 if package install location is prefer-external but size is not specified in manifest file.Application should check
710 the return value of pkgmgrinfo_pkginfo_get_install_location() and use it to distinguish the above cases.
712 * @par This API is for package-manager client application
713 * @par Sync (or) Async : Synchronous API
715 * @param[in] handle pointer to package info handle
716 * @param[out] size pointer to hold package size
717 * @return 0 if success, error code(<0) if fail
718 * @retval PMINFO_R_OK success
719 * @retval PMINFO_R_EINVAL invalid argument
720 * @retval PMINFO_R_ERROR internal error
721 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
722 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
723 * @see pkgmgrinfo_pkginfo_get_pkgid()
724 * @see pkgmgrinfo_pkginfo_is_removable()
726 static int get_pkg_size(const char *pkgid)
730 pkgmgrinfo_pkginfo_h handle;
731 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
732 if (ret != PMINFO_R_OK)
734 ret = pkgmgrinfo_pkginfo_get_package_size(handle, &size);
735 if (ret != PMINFO_R_OK) {
736 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
739 printf("pkgsize: %d\n", size);
740 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
745 int pkgmgrinfo_pkginfo_get_package_size(pkgmgrinfo_pkginfo_h handle, int *size);
748 * @fn int pkgmgrinfo_pkginfo_get_total_size(pkgmgrinfo_pkginfo_h handle, int *size)
749 * @brief This API gets the installed package total size on the target.
751 * @par This API is for package-manager client application
752 * @par Sync (or) Async : Synchronous API
754 * @param[in] handle pointer to package info handle
755 * @param[out] size pointer to hold package total size
756 * @return 0 if success, error code(<0) if fail
757 * @retval PMINFO_R_OK success
758 * @retval PMINFO_R_EINVAL invalid argument
759 * @retval PMINFO_R_ERROR internal error
761 static int get_pkg_total_size(const char *pkgid)
765 pkgmgrinfo_pkginfo_h handle;
766 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
767 if (ret != PMINFO_R_OK)
769 ret = pkgmgrinfo_pkginfo_get_total_size(handle, &size);
770 if (ret != PMINFO_R_OK) {
771 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
774 printf("pkg total size: %d\n", size);
775 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
780 int pkgmgrinfo_pkginfo_get_total_size(pkgmgrinfo_pkginfo_h handle, int *size);
783 * @fn int pkgmgrinfo_pkginfo_get_data_size(pkgmgrinfo_pkginfo_h handle, int *size)
784 * @brief This API gets the installed package data size on the target.
786 * @par This API is for package-manager client application
787 * @par Sync (or) Async : Synchronous API
789 * @param[in] handle pointer to package info handle
790 * @param[out] size pointer to hold package data size
791 * @return 0 if success, error code(<0) if fail
792 * @retval PMINFO_R_OK success
793 * @retval PMINFO_R_EINVAL invalid argument
794 * @retval PMINFO_R_ERROR internal error
796 static int get_pkg_data_size(const char *pkgid)
800 pkgmgrinfo_pkginfo_h handle;
801 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
802 if (ret != PMINFO_R_OK)
804 ret = pkgmgrinfo_pkginfo_get_data_size(handle, &size);
805 if (ret != PMINFO_R_OK) {
806 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
809 printf("pkg data size: %d\n", size);
810 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
815 int pkgmgrinfo_pkginfo_get_data_size(pkgmgrinfo_pkginfo_h handle, int *size);
818 * @fn int pkgmgrinfo_pkginfo_get_icon(pkgmgrinfo_pkginfo_h handle, char **icon)
819 * @brief This API gets the package icon from the package ID
821 * @par This API is for package-manager client application
822 * @par Sync (or) Async : Synchronous API
824 * @param[in] handle pointer to package info handle
825 * @param[out] icon pointer to hold package icon
826 * @return 0 if success, error code(<0) if fail
827 * @retval PMINFO_R_OK success
828 * @retval PMINFO_R_EINVAL invalid argument
829 * @retval PMINFO_R_ERROR internal error
830 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
831 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
832 * @see pkgmgrinfo_pkginfo_get_pkgid()
833 * @see pkgmgrinfo_pkginfo_is_removable()
835 static int get_pkg_icon(const char *pkgid)
839 pkgmgrinfo_pkginfo_h handle;
840 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
841 if (ret != PMINFO_R_OK)
843 ret = pkgmgrinfo_pkginfo_get_icon(handle, &icon);
844 if (ret != PMINFO_R_OK) {
845 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
848 printf("pkg icon: %s\n", icon);
849 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
854 int pkgmgrinfo_pkginfo_get_icon(pkgmgrinfo_pkginfo_h handle, char **icon);
857 * @fn int pkgmgrinfo_pkginfo_get_label(pkgmgrinfo_pkginfo_h handle, char **label)
858 * @brief This API gets the package label from the package ID
860 * @par This API is for package-manager client application
861 * @par Sync (or) Async : Synchronous API
863 * @param[in] handle pointer to package info handle
864 * @param[out] label pointer to hold package label
865 * @return 0 if success, error code(<0) if fail
866 * @retval PMINFO_R_OK success
867 * @retval PMINFO_R_EINVAL invalid argument
868 * @retval PMINFO_R_ERROR internal error
869 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
870 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
871 * @see pkgmgrinfo_pkginfo_get_pkgid()
872 * @see pkgmgrinfo_pkginfo_is_removable()
874 static int get_pkg_label(const char *pkgid)
878 pkgmgrinfo_pkginfo_h handle;
879 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
880 if (ret != PMINFO_R_OK)
882 ret = pkgmgrinfo_pkginfo_get_label(handle, &label);
883 if (ret != PMINFO_R_OK) {
884 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
887 printf("pkg label: %s\n", label);
888 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
893 int pkgmgrinfo_pkginfo_get_label(pkgmgrinfo_pkginfo_h handle, char **label);
896 * @fn int pkgmgrinfo_pkginfo_get_description(pkgmgrinfo_pkginfo_h handle, char **description)
897 * @brief This API gets the package description from the package ID
899 * @par This API is for package-manager client application
900 * @par Sync (or) Async : Synchronous API
902 * @param[in] handle pointer to package info handle
903 * @param[out] description pointer to hold package description
904 * @return 0 if success, error code(<0) if fail
905 * @retval PMINFO_R_OK success
906 * @retval PMINFO_R_EINVAL invalid argument
907 * @retval PMINFO_R_ERROR internal error
908 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
909 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
910 * @see pkgmgrinfo_pkginfo_get_pkgid()
911 * @see pkgmgrinfo_pkginfo_is_removable()
913 static int get_pkg_description(const char *pkgid)
916 char *description = NULL;
917 pkgmgrinfo_pkginfo_h handle;
918 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
919 if (ret != PMINFO_R_OK)
921 ret = pkgmgrinfo_pkginfo_get_description(handle, &description);
922 if (ret != PMINFO_R_OK) {
923 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
926 printf("pkg description: %s\n", description);
927 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
932 int pkgmgrinfo_pkginfo_get_description(pkgmgrinfo_pkginfo_h handle, char **description);
935 * @fn int pkgmgrinfo_pkginfo_get_author_name(pkgmgrinfo_pkginfo_h handle, char **author_name)
936 * @brief This API gets the package's author name from the package ID
938 * @par This API is for package-manager client application
939 * @par Sync (or) Async : Synchronous API
941 * @param[in] handle pointer to package info handle
942 * @param[out] author_name pointer to hold package author name
943 * @return 0 if success, error code(<0) if fail
944 * @retval PMINFO_R_OK success
945 * @retval PMINFO_R_EINVAL invalid argument
946 * @retval PMINFO_R_ERROR internal error
947 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
948 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
949 * @see pkgmgrinfo_pkginfo_get_pkgid()
950 * @see pkgmgrinfo_pkginfo_is_removable()
952 static int get_pkg_author_name(const char *pkgid)
955 char *author_name = NULL;
956 pkgmgrinfo_pkginfo_h handle;
957 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
958 if (ret != PMINFO_R_OK)
960 ret = pkgmgrinfo_pkginfo_get_author_name(handle, &author_name);
961 if (ret != PMINFO_R_OK) {
962 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
965 printf("pkg author name: %s\n", author_name);
966 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
971 int pkgmgrinfo_pkginfo_get_author_name(pkgmgrinfo_pkginfo_h handle, char **author_name);
974 * @fn int pkgmgrinfo_pkginfo_get_author_email(pkgmgrinfo_pkginfo_h handle, char **author_email)
975 * @brief This API gets the package's author email from the package ID
977 * @par This API is for package-manager client application
978 * @par Sync (or) Async : Synchronous API
980 * @param[in] handle pointer to package info handle
981 * @param[out] author_email pointer to hold package author email
982 * @return 0 if success, error code(<0) if fail
983 * @retval PMINFO_R_OK success
984 * @retval PMINFO_R_EINVAL invalid argument
985 * @retval PMINFO_R_ERROR internal error
986 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
987 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
988 * @see pkgmgrinfo_pkginfo_get_pkgid()
989 * @see pkgmgrinfo_pkginfo_is_removable()
991 static int get_pkg_author_email(const char *pkgid)
994 char *author_email = NULL;
995 pkgmgrinfo_pkginfo_h handle;
996 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
997 if (ret != PMINFO_R_OK)
999 ret = pkgmgrinfo_pkginfo_get_author_email(handle, &author_email);
1000 if (ret != PMINFO_R_OK) {
1001 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1004 printf("pkg author email: %s\n", author_email);
1005 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1010 int pkgmgrinfo_pkginfo_get_author_email(pkgmgrinfo_pkginfo_h handle, char **author_email);
1013 * @fn int pkgmgrinfo_pkginfo_get_author_href(pkgmgrinfo_pkginfo_h handle, char **author_href)
1014 * @brief This API gets the package's author href from the package ID
1016 * @par This API is for package-manager client application
1017 * @par Sync (or) Async : Synchronous API
1019 * @param[in] handle pointer to package info handle
1020 * @param[out] author_href pointer to hold package author href
1021 * @return 0 if success, error code(<0) if fail
1022 * @retval PMINFO_R_OK success
1023 * @retval PMINFO_R_EINVAL invalid argument
1024 * @retval PMINFO_R_ERROR internal error
1025 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
1026 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
1027 * @see pkgmgrinfo_pkginfo_get_pkgid()
1028 * @see pkgmgrinfo_pkginfo_is_removable()
1030 static int get_pkg_author_href(const char *pkgid)
1033 char *author_href = NULL;
1034 pkgmgrinfo_pkginfo_h handle;
1035 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1036 if (ret != PMINFO_R_OK)
1038 ret = pkgmgrinfo_pkginfo_get_author_href(handle, &author_href);
1039 if (ret != PMINFO_R_OK) {
1040 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1043 printf("pkg author href: %s\n", author_href);
1044 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1049 int pkgmgrinfo_pkginfo_get_author_href(pkgmgrinfo_pkginfo_h handle, char **author_href);
1052 * @fn int pkgmgrinfo_pkginfo_get_installed_storage(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_installed_storage *storage)
1053 * @brief This API gets the package installed storagae value from the package ID
1055 * @par This API is for package-manager client application
1056 * @par Sync (or) Async : Synchronous API
1058 * @param[in] handle pointer to package info handle
1059 * @param[out] storage pointer to hold package installed storage
1060 * @return 0 if success, error code(<0) if fail
1061 * @retval PMINFO_R_OK success
1062 * @retval PMINFO_R_EINVAL invalid argument
1063 * @retval PMINFO_R_ERROR internal error
1064 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
1065 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
1066 * @see pkgmgrinfo_pkginfo_get_pkgid()
1067 * @see pkgmgrinfo_pkginfo_is_removable()
1069 static int get_pkg_installed_storage(const char *pkgid)
1072 pkgmgrinfo_installed_storage storage;
1073 pkgmgrinfo_pkginfo_h handle;
1074 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1075 if (ret != PMINFO_R_OK)
1077 ret = pkgmgrinfo_pkginfo_get_installed_storage(handle, &storage);
1078 if (ret != PMINFO_R_OK) {
1079 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1082 printf("pkg installed storage: %d\n", storage);
1083 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1088 int pkgmgrinfo_pkginfo_get_installed_storage(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_installed_storage *storage);
1091 * @fn int pkgmgrinfo_pkginfo_get_installed_time(pkgmgrinfo_pkginfo_h handle, int *installed_time)
1092 * @brief This API gets the installed time of package from the package ID
1094 * @par This API is for package-manager client application
1095 * @par Sync (or) Async : Synchronous API
1097 * @param[in] handle pointer to package info handle
1098 * @param[out] installed_time pointer to hold installed time of package
1099 * @return 0 if success, error code(<0) if fail
1100 * @retval PMINFO_R_OK success
1101 * @retval PMINFO_R_EINVAL invalid argument
1102 * @retval PMINFO_R_ERROR internal error
1103 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
1104 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
1105 * @see pkgmgrinfo_pkginfo_get_pkgid()
1106 * @see pkgmgrinfo_pkginfo_is_removable()
1108 static int get_pkg_installed_time(const char *pkgid)
1111 int installed_time = 0;
1112 pkgmgrinfo_pkginfo_h handle;
1113 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1114 if (ret != PMINFO_R_OK)
1116 ret = pkgmgrinfo_pkginfo_get_installed_time(handle, &installed_time);
1117 if (ret != PMINFO_R_OK) {
1118 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1121 printf("installed_time: %d\n", installed_time);
1122 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1127 int pkgmgrinfo_pkginfo_get_installed_time(pkgmgrinfo_pkginfo_h handle, int *installed_time);
1130 * @fn int pkgmgrinfo_pkginfo_get_storeclientid(pkgmgrinfo_pkginfo_h handle, char **storeclientid)
1131 * @brief This API gets the store client id of package from the package ID
1133 * @par This API is for package-manager client application
1134 * @par Sync (or) Async : Synchronous API
1136 * @param[in] handle pointer to package info handle
1137 * @param[out] storeclientid pointer to hold store client id of package
1138 * @return 0 if success, error code(<0) if fail
1139 * @retval PMINFO_R_OK success
1140 * @retval PMINFO_R_EINVAL invalid argument
1141 * @retval PMINFO_R_ERROR internal error
1142 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
1143 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
1144 * @see pkgmgrinfo_pkginfo_get_pkgid()
1145 * @see pkgmgrinfo_pkginfo_is_removable()
1147 static int get_pkg_storeclientid(const char *pkgid)
1150 char *storeclientid = 0;
1151 pkgmgrinfo_pkginfo_h handle;
1152 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1153 if (ret != PMINFO_R_OK)
1155 ret = pkgmgrinfo_pkginfo_get_storeclientid(handle, &storeclientid);
1156 if (ret != PMINFO_R_OK) {
1157 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1160 printf(store client id: %s\n", storeclientid);
1161 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1166 int pkgmgrinfo_pkginfo_get_storeclientid(pkgmgrinfo_pkginfo_h handle, char **storeclientid);
1169 * @fn int pkgmgrinfo_pkginfo_get_mainappid(pkgmgrinfo_pkginfo_h handle, char **mainappid)
1170 * @brief This API gets the main app id of package from the package ID
1172 * @par This API is for package-manager client application
1173 * @par Sync (or) Async : Synchronous API
1175 * @param[in] handle pointer to package info handle
1176 * @param[out] mainappid pointer to hold main app id of package
1177 * @return 0 if success, error code(<0) if fail
1178 * @retval PMINFO_R_OK success
1179 * @retval PMINFO_R_EINVAL invalid argument
1180 * @retval PMINFO_R_ERROR internal error
1181 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
1182 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
1183 * @see pkgmgrinfo_pkginfo_get_pkgid()
1184 * @see pkgmgrinfo_pkginfo_is_removable()
1186 static int get_pkg_mainappid(const char *pkgid)
1189 char *mainappid = 0;
1190 pkgmgrinfo_pkginfo_h handle;
1191 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1192 if (ret != PMINFO_R_OK)
1194 ret = pkgmgrinfo_pkginfo_get_mainappid(handle, &mainappid);
1195 if (ret != PMINFO_R_OK) {
1196 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1199 printf(main app id: %s\n", mainappid);
1200 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1205 int pkgmgrinfo_pkginfo_get_mainappid(pkgmgrinfo_pkginfo_h handle, char **mainappid);
1208 * @fn int pkgmgrinfo_pkginfo_get_url(pkgmgrinfo_pkginfo_h handle, char **url)
1209 * @brief This API gets the url of package from the package ID
1211 * @par This API is for package-manager client application
1212 * @par Sync (or) Async : Synchronous API
1214 * @param[in] handle pointer to package info handle
1215 * @param[out] url pointer to hold url of package
1216 * @return 0 if success, error code(<0) if fail
1217 * @retval PMINFO_R_OK success
1218 * @retval PMINFO_R_EINVAL invalid argument
1219 * @retval PMINFO_R_ERROR internal error
1220 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
1221 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
1222 * @see pkgmgrinfo_pkginfo_get_pkgid()
1223 * @see pkgmgrinfo_pkginfo_is_removable()
1225 static int get_pkg_url(const char *pkgid)
1229 pkgmgrinfo_pkginfo_h handle;
1230 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1231 if (ret != PMINFO_R_OK)
1233 ret = pkgmgrinfo_pkginfo_get_url(handle, &url);
1234 if (ret != PMINFO_R_OK) {
1235 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1238 printf("url : %s\n", url);
1239 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1244 int pkgmgrinfo_pkginfo_get_url(pkgmgrinfo_pkginfo_h handle, char **url);
1248 * @fn int pkgmgrinfo_pkginfo_get_root_path(pkgmgrinfo_pkginfo_h handle, char **path)
1249 * @brief This API gets the root path of package
1251 * @par Sync (or) Async : Synchronous API
1253 * @param[in] handle pointer to package info handle
1254 * @param[out] path pointer to hold root path of package
1255 * @return 0 if success, error code(<0) if fail
1256 * @retval PMINFO_R_OK success
1257 * @retval PMINFO_R_EINVAL invalid argument
1258 * @retval PMINFO_R_ERROR internal error
1260 static int get_root_path(const char *pkgid)
1264 pkgmgrinfo_pkginfo_h handle;
1265 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1266 if (ret != PMINFO_R_OK)
1269 ret = pkgmgrinfo_pkginfo_get_root_path(handle, &path);
1270 if (ret != PMINFO_R_OK) {
1271 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1274 printf("path : %s\n", path);
1275 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1281 int pkgmgrinfo_pkginfo_get_root_path(pkgmgrinfo_pkginfo_h handle, char **path);
1285 * @fn int pkgmgrinfo_pkginfo_get_csc_path(pkgmgrinfo_pkginfo_h handle, char **path)
1286 * @brief This API gets the csc path of package
1288 * @par Sync (or) Async : Synchronous API
1290 * @param[in] handle pointer to package info handle
1291 * @param[out] path pointer to hold csc path of package
1292 * @return 0 if success, error code(<0) if fail
1293 * @retval PMINFO_R_OK success
1294 * @retval PMINFO_R_EINVAL invalid argument
1295 * @retval PMINFO_R_ERROR internal error
1297 static int get_csc_path(const char *pkgid)
1301 pkgmgrinfo_pkginfo_h handle;
1302 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1303 if (ret != PMINFO_R_OK)
1306 ret = pkgmgrinfo_pkginfo_get_csc_path(handle, &path);
1307 if (ret != PMINFO_R_OK) {
1308 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1311 printf("path : %s\n", path);
1312 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1318 int pkgmgrinfo_pkginfo_get_csc_path(pkgmgrinfo_pkginfo_h handle, char **path);
1321 * @fn int pkgmgrinfo_pkginfo_compare_pkg_cert_info(const char *lhs_package_id, const char *rhs_package_id, pkgmgrinfo_cert_compare_result_type_e *compare_result)
1322 * @brief This API compare the cert information from given package id
1324 * @par This API is for package-manager client application
1325 * @par Sync (or) Async : Synchronous API
1327 * @param[in] lhs_package_id pointer to first package ID
1328 * @param[in] rhs_package_id pointer to second package ID
1329 * @param[out] compare_result pointer to the compare result.
1330 * @return 0 if success, error code(<0) if fail
1331 * @retval PMINFO_R_OK success
1332 * @retval PMINFO_R_EINVAL invalid argument
1333 * @retval PMINFO_R_ERROR internal error
1335 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
1336 * @see pkgmgrinfo_pkginfo_get_pkgid()
1337 * @see pkgmgrinfo_pkginfo_is_removable()
1339 static int compare_pkg_cert_info(const char *lhs_package_id, const char *rhs_package_id, pkgmgrinfo_cert_compare_result_type_e *compare_result)
1342 pkgmgrinfo_cert_compare_result_type_e result;
1344 ret = pkgmgrinfo_pkginfo_compare_pkg_cert_info(lhs_package_id, rhs_package_id, &result);
1345 if (ret != PMINFO_R_OK) {
1348 printf("result: %d\n", result);
1353 int pkgmgrinfo_pkginfo_compare_pkg_cert_info(const char *lhs_package_id, const char *rhs_package_id, pkgmgrinfo_cert_compare_result_type_e *compare_result);
1356 * @fn int pkgmgrinfo_pkginfo_compare_app_cert_info(const char *lhs_app_id, const char *rhs_app_id, pkgmgrinfo_cert_compare_result_type_e *compare_result)
1357 * @brief This API compare the cert information from given app id
1359 * @par This API is for package-manager client application
1360 * @par Sync (or) Async : Synchronous API
1362 * @param[in] lhs_app_id pointer to first app ID
1363 * @param[in] rhs_app_id pointer to second app ID
1364 * @param[out] compare_result pointer to the compare result.
1365 * @return 0 if success, error code(<0) if fail
1366 * @retval PMINFO_R_OK success
1367 * @retval PMINFO_R_EINVAL invalid argument
1368 * @retval PMINFO_R_ERROR internal error
1370 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
1371 * @see pkgmgrinfo_pkginfo_get_pkgid()
1372 * @see pkgmgrinfo_pkginfo_is_removable()
1374 static int compare_app_cert_info(const char *lhs_app_id, const char *rhs_app_id, pkgmgrinfo_cert_compare_result_type_e *compare_result)
1377 pkgmgrinfo_cert_compare_result_type_e result;
1379 ret = pkgmgrinfo_pkginfo_compare_app_cert_info(lhs_app_id, rhs_app_id, &result);
1380 if (ret != PMINFO_R_OK) {
1383 printf("result: %d\n", result);
1388 int pkgmgrinfo_pkginfo_compare_app_cert_info(const char *lhs_app_id, const char *rhs_app_id, pkgmgrinfo_cert_compare_result_type_e *compare_result);
1391 * @fn int pkgmgrinfo_pkginfo_is_removable(pkgmgrinfo_pkginfo_h handle, bool *removable)
1392 * @brief This API gets the package 'removable' value from the package ID
1394 * @par This API is for package-manager client application
1395 * @par Sync (or) Async : Synchronous API
1397 * @param[in] handle pointer to package info handle
1398 * @param[out] removable pointer to hold package removable value
1399 * @return 0 if success, error code(<0) if fail
1400 * @retval PMINFO_R_OK success
1401 * @retval PMINFO_R_EINVAL invalid argument
1402 * @retval PMINFO_R_ERROR internal error
1403 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
1404 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
1405 * @see pkgmgrinfo_pkginfo_get_pkgid()
1406 * @see pkgmgrinfo_pkginfo_is_readonly()
1408 static int get_pkg_removable(const char *pkgid)
1412 pkgmgrinfo_pkginfo_h handle;
1413 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1414 if (ret != PMINFO_R_OK)
1416 ret = pkgmgrinfo_pkginfo_is_removable(handle, &removable);
1417 if (ret != PMINFO_R_OK) {
1418 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1421 printf("pkg removable: %d\n", removable);
1422 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1427 int pkgmgrinfo_pkginfo_is_removable(pkgmgrinfo_pkginfo_h handle, bool *removable);
1430 * @fn int pkgmgrinfo_pkginfo_is_movable(pkgmgrinfo_pkginfo_h handle, bool *movable)
1431 * @brief This API check that the package can move internal storage to external storage or external storage to internal storage from the package ID
1433 * @par This API is for package-manager client application
1434 * @par Sync (or) Async : Synchronous API
1436 * @param[in] handle pointer to package info handle
1437 * @param[out] movable pointer to hold package movable state
1438 * @return 0 if success, error code(<0) if fail
1439 * @retval PMINFO_R_OK success
1440 * @retval PMINFO_R_EINVAL invalid argument
1441 * @retval PMINFO_R_ERROR internal error
1442 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
1443 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
1444 * @see pkgmgrinfo_pkginfo_get_pkgid()
1446 static int get_pkg_movable(const char *pkgid)
1450 pkgmgrinfo_pkginfo_h handle;
1451 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1452 if (ret != PMINFO_R_OK)
1454 ret = pkgmgrinfo_pkginfo_is_movable(handle, &movable);
1455 if (ret != PMINFO_R_OK) {
1456 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1459 printf("pkg movable: %d\n", movable);
1460 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1465 int pkgmgrinfo_pkginfo_is_movable(pkgmgrinfo_pkginfo_h handle, bool *movable);
1468 * @fn int pkgmgrinfo_pkginfo_is_preload(pkgmgrinfo_pkginfo_h handle, bool *preload)
1469 * @brief This API gets the package 'preload' value from the package ID
1471 * @par This API is for package-manager client application
1472 * @par Sync (or) Async : Synchronous API
1474 * @param[in] handle pointer to package info handle
1475 * @param[out] preload pointer to hold package preload value
1476 * @return 0 if success, error code(<0) if fail
1477 * @retval PMINFO_R_OK success
1478 * @retval PMINFO_R_EINVAL invalid argument
1479 * @retval PMINFO_R_ERROR internal error
1480 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
1481 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
1482 * @see pkgmgrinfo_pkginfo_get_pkgid()
1483 * @see pkgmgrinfo_pkginfo_is_readonly()
1485 static int get_pkg_preload(const char *pkgid)
1489 pkgmgrinfo_pkginfo_h handle;
1490 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1491 if (ret != PMINFO_R_OK)
1493 ret = pkgmgrinfo_pkginfo_is_preload(handle, &preload);
1494 if (ret != PMINFO_R_OK) {
1495 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1498 printf("pkg preload: %d\n", preload);
1499 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1504 int pkgmgrinfo_pkginfo_is_preload(pkgmgrinfo_pkginfo_h handle, bool *preload);
1507 * @fn int pkgmgrinfo_pkginfo_is_readonly(pkgmgrinfo_pkginfo_h handle, bool *readonly)
1508 * @brief This API gets the package 'readonly' value from the package ID
1510 * @par This API is for package-manager client application
1511 * @par Sync (or) Async : Synchronous API
1513 * @param[in] handle pointer to package info handle
1514 * @param[out] readonly pointer to hold package readonly value
1515 * @return 0 if success, error code(<0) if fail
1516 * @retval PMINFO_R_OK success
1517 * @retval PMINFO_R_EINVAL invalid argument
1518 * @retval PMINFO_R_ERROR internal error
1519 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
1520 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
1521 * @see pkgmgrinfo_pkginfo_get_pkgid()
1522 * @see pkgmgrinfo_pkginfo_is_removable()
1524 static int get_pkg_readonly(const char *pkgid)
1528 pkgmgrinfo_pkginfo_h handle;
1529 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1530 if (ret != PMINFO_R_OK)
1532 ret = pkgmgrinfo_pkginfo_is_readonly(handle, &readonly);
1533 if (ret != PMINFO_R_OK) {
1534 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1537 printf("pkg readonly: %d\n", readonly);
1538 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1543 int pkgmgrinfo_pkginfo_is_readonly(pkgmgrinfo_pkginfo_h handle, bool *readonly);
1547 * @fn int pkgmgrinfo_pkginfo_is_update(pkgmgrinfo_pkginfo_h handle, bool *update)
1548 * @brief This API gets the package 'upate' value from the package ID
1550 * @par This API is for package-manager client application
1551 * @par Sync (or) Async : Synchronous API
1553 * @param[in] handle pointer to package info handle
1554 * @param[out] update pointer to hold package update value
1555 * @return 0 if success, error code(<0) if fail
1556 * @retval PMINFO_R_OK success
1557 * @retval PMINFO_R_EINVAL invalid argument
1558 * @retval PMINFO_R_ERROR internal error
1559 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
1560 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
1561 * @see pkgmgrinfo_pkginfo_get_pkgid()
1563 static int get_pkg_update(const char *pkgid)
1567 pkgmgrinfo_pkginfo_h handle;
1568 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1569 if (ret != PMINFO_R_OK)
1571 ret = pkgmgrinfo_pkginfo_is_update(handle, &update);
1572 if (ret != PMINFO_R_OK) {
1573 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1576 printf("pkg update: %d\n", update);
1577 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1582 int pkgmgrinfo_pkginfo_is_update(pkgmgrinfo_pkginfo_h handle, bool *update);
1585 * @fn int pkgmgrinfo_pkginfo_is_accessible(pkgmgrinfo_pkginfo_h handle, bool *accessible)
1586 * @brief This API gets the package 'accessible' value from the package ID
1588 * @par This API is for package-manager client application
1589 * @par Sync (or) Async : Synchronous API
1591 * @param[in] handle pointer to package info handle
1592 * @param[out] accessible pointer to hold package accessible value
1593 * @return 0 if success, error code(<0) if fail
1594 * @retval PMINFO_R_OK success
1595 * @retval PMINFO_R_EINVAL invalid argument
1596 * @retval PMINFO_R_ERROR internal error
1597 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
1598 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
1599 * @see pkgmgrinfo_pkginfo_get_pkgid()
1600 * @see pkgmgrinfo_pkginfo_is_readonly()
1602 static int get_pkg_accessible(const char *pkgid)
1606 pkgmgrinfo_pkginfo_h handle;
1607 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1608 if (ret != PMINFO_R_OK)
1610 ret = pkgmgrinfo_pkginfo_is_accessible(handle, &accessible);
1611 if (ret != PMINFO_R_OK) {
1612 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1615 printf("pkg accessible: %d\n", accessible);
1616 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1621 int pkgmgrinfo_pkginfo_is_accessible(pkgmgrinfo_pkginfo_h handle, bool *accessible);
1624 * @fn int pkgmgrinfo_pkginfo_destroy_pkginfo(pkgmgrinfo_pkginfo_h handle)
1625 * @brief This API destroys the package information handle freeing up all the resources
1627 * @par This API is for package-manager client application
1628 * @par Sync (or) Async : Synchronous API
1630 * @param[in] handle pointer to the package info handle
1631 * @return 0 if success, error code(<0) if fail
1632 * @retval PMINFO_R_OK success
1633 * @retval PMINFO_R_EINVAL invalid argument
1634 * @retval PMINFO_R_ERROR internal error
1635 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
1637 * @see pkgmgrinfo_pkginfo_get_pkgid()
1638 * @see pkgmgrinfo_pkginfo_is_removable()
1640 static int get_pkg_type(const char *pkgid)
1644 pkgmgrinfo_pkginfo_h handle;
1645 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1646 if (ret != PMINFO_R_OK)
1648 ret = pkgmgrinfo_pkginfo_get_type(handle, &type);
1649 if (ret != PMINFO_R_OK) {
1650 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1653 printf("pkgtype: %s\n", type);
1654 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1659 int pkgmgrinfo_pkginfo_destroy_pkginfo(pkgmgrinfo_pkginfo_h handle);
1662 * @fn int pkgmgrinfo_pkginfo_filter_create(pkgmgrinfo_pkginfo_filter_h *handle)
1663 * @brief This API creates the package information filter handle from db. All filter properties will be ANDed.
1664 The query will search the entire package information collected from the manifest file of all the installed packages
1666 * @par This API is for package-manager client application
1667 * @par Sync (or) Async : Synchronous API
1669 * @param[out] handle pointer to the package info filter handle.
1670 * @return 0 if success, error code(<0) if fail
1671 * @retval PMINFO_R_OK success
1672 * @retval PMINFO_R_EINVAL invalid argument
1673 * @retval PMINFO_R_ERROR internal error
1675 * @post pkgmgrinfo_pkginfo_filter_destroy()
1676 * @see pkgmgrinfo_pkginfo_filter_count()
1677 * @see pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
1679 static int get_rpm_pkg_count()
1683 pkgmgrinfo_pkginfo_filter_h handle;
1684 ret = pkgmgrinfo_pkginfo_filter_create(&handle);
1685 if (ret != PMINFO_R_OK)
1687 ret = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_TYPE, "rpm");
1688 if (ret != PMINFO_R_OK) {
1689 pkgmgrinfo_pkginfo_filter_destroy(handle);
1692 ret = pkgmgrinfo_pkginfo_filter_count(handle, &count);
1693 if (ret != PMINFO_R_OK) {
1694 pkgmgrinfo_pkginfo_filter_destroy(handle);
1697 printf("No of rpm pkgs: %d\n", count);
1698 pkgmgrinfo_pkginfo_filter_destroy(handle);
1703 int pkgmgrinfo_pkginfo_filter_create(pkgmgrinfo_pkginfo_filter_h *handle);
1706 * @fn int pkgmgrinfo_pkginfo_filter_destroy(pkgmgrinfo_pkginfo_filter_h handle)
1707 * @brief This API destroys the package information filter handle freeing up all the resources
1709 * @par This API is for package-manager client application
1710 * @par Sync (or) Async : Synchronous API
1712 * @param[in] handle pointer to the package info filter handle.
1713 * @return 0 if success, error code(<0) if fail
1714 * @retval PMINFO_R_OK success
1715 * @retval PMINFO_R_EINVAL invalid argument
1716 * @retval PMINFO_R_ERROR internal error
1717 * @pre pkgmgrinfo_pkginfo_filter_create()
1719 * @see pkgmgrinfo_pkginfo_filter_count()
1720 * @see pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
1722 static int get_rpm_pkg_count()
1726 pkgmgrinfo_pkginfo_filter_h handle;
1727 ret = pkgmgrinfo_pkginfo_filter_create(&handle);
1728 if (ret != PMINFO_R_OK)
1730 ret = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_TYPE, "rpm");
1731 if (ret != PMINFO_R_OK) {
1732 pkgmgrinfo_pkginfo_filter_destroy(handle);
1735 ret = pkgmgrinfo_pkginfo_filter_count(handle, &count);
1736 if (ret != PMINFO_R_OK) {
1737 pkgmgrinfo_pkginfo_filter_destroy(handle);
1740 printf("No of rpm pkgs: %d\n", count);
1741 pkgmgrinfo_pkginfo_filter_destroy(handle);
1746 int pkgmgrinfo_pkginfo_filter_destroy(pkgmgrinfo_pkginfo_filter_h handle);
1749 * @fn int pkgmgrinfo_pkginfo_filter_add_bool(pkgmgrinfo_pkginfo_filter_h handle, const char *property, const bool value)
1750 * @brief This API adds a boolean filter property to the filter handle
1752 * @par This API is for package-manager client application
1753 * @par Sync (or) Async : Synchronous API
1755 * @param[in] handle pointer to the package info filter handle.
1756 * @param[in] property boolean property name.
1757 * @param[in] value value corresponding to the property.
1758 * @return 0 if success, error code(<0) if fail
1759 * @retval PMINFO_R_OK success
1760 * @retval PMINFO_R_EINVAL invalid argument
1761 * @retval PMINFO_R_ERROR internal error
1762 * @pre pkgmgrinfo_pkginfo_filter_create()
1763 * @post pkgmgrinfo_pkginfo_filter_destroy()
1764 * @see pkgmgrinfo_pkginfo_filter_count()
1765 * @see pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
1767 static int get_preload_pkg_count()
1771 pkgmgrinfo_pkginfo_filter_h handle;
1772 ret = pkgmgrinfo_pkginfo_filter_create(&handle);
1773 if (ret != PMINFO_R_OK)
1775 ret = pkgmgrinfo_pkginfo_filter_add_bool(handle, PMINFO_PKGINFO_PROP_PACKAGE_PRELOAD, 1);
1776 if (ret != PMINFO_R_OK) {
1777 pkgmgrinfo_pkginfo_filter_destroy(handle);
1780 ret = pkgmgrinfo_pkginfo_filter_count(handle, &count);
1781 if (ret != PMINFO_R_OK) {
1782 pkgmgrinfo_pkginfo_filter_destroy(handle);
1785 printf("No of preload pkgs: %d\n", count);
1786 pkgmgrinfo_pkginfo_filter_destroy(handle);
1791 int pkgmgrinfo_pkginfo_filter_add_bool(pkgmgrinfo_pkginfo_filter_h handle,
1792 const char *property, const bool value);
1795 * @fn int pkgmgrinfo_pkginfo_filter_add_int(pkgmgrinfo_pkginfo_filter_h handle, const char *property, const int value)
1796 * @brief This API adds an integer filter property to the filter handle
1798 * @par This API is for package-manager client application
1799 * @par Sync (or) Async : Synchronous API
1801 * @param[in] handle pointer to the package info filter handle.
1802 * @param[in] property integer property name.
1803 * @param[in] value value corresponding to the property.
1804 * @return 0 if success, error code(<0) if fail
1805 * @retval PMINFO_R_OK success
1806 * @retval PMINFO_R_EINVAL invalid argument
1807 * @retval PMINFO_R_ERROR internal error
1808 * @pre pkgmgrinfo_pkginfo_filter_create()
1809 * @post pkgmgrinfo_pkginfo_filter_destroy()
1810 * @see pkgmgrinfo_pkginfo_filter_count()
1811 * @see pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
1813 static int get_pkg_count()
1817 pkgmgrinfo_pkginfo_filter_h handle;
1818 ret = pkgmgrinfo_pkginfo_filter_create(&handle);
1819 if (ret != PMINFO_R_OK)
1821 ret = pkgmgrinfo_pkginfo_filter_add_int(handle, PMINFO_PKGINFO_PROP_PACKAGE_SIZE, 10);
1822 if (ret != PMINFO_R_OK) {
1823 pkgmgrinfo_pkginfo_filter_destroy(handle);
1826 ret = pkgmgrinfo_pkginfo_filter_count(handle, &count);
1827 if (ret != PMINFO_R_OK) {
1828 pkgmgrinfo_pkginfo_filter_destroy(handle);
1831 printf("No of preload pkgs: %d\n", count);
1832 pkgmgrinfo_pkginfo_filter_destroy(handle);
1837 int pkgmgrinfo_pkginfo_filter_add_int(pkgmgrinfo_pkginfo_filter_h handle,
1838 const char *property, const int value);
1841 * @fn int pkgmgrinfo_pkginfo_filter_add_string(pkgmgrinfo_pkginfo_filter_h handle, const char *property, const char *value)
1842 * @brief This API adds a string filter property to the filter handle
1844 * @par This API is for package-manager client application
1845 * @par Sync (or) Async : Synchronous API
1847 * @param[in] handle pointer to the package info filter handle.
1848 * @param[in] property string property name.
1849 * @param[in] value value corresponding to the property.
1850 * @return 0 if success, error code(<0) if fail
1851 * @retval PMINFO_R_OK success
1852 * @retval PMINFO_R_EINVAL invalid argument
1853 * @retval PMINFO_R_ERROR internal error
1854 * @pre pkgmgrinfo_pkginfo_filter_create()
1855 * @post pkgmgrinfo_pkginfo_filter_destroy()
1856 * @see pkgmgrinfo_pkginfo_filter_count()
1857 * @see pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
1859 static int get_rpm_pkg_count()
1863 pkgmgrinfo_pkginfo_filter_h handle;
1864 ret = pkgmgrinfo_pkginfo_filter_create(&handle);
1865 if (ret != PMINFO_R_OK)
1867 ret = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_TYPE, "rpm");
1868 if (ret != PMINFO_R_OK) {
1869 pkgmgrinfo_pkginfo_filter_destroy(handle);
1872 ret = pkgmgrinfo_pkginfo_filter_count(handle, &count);
1873 if (ret != PMINFO_R_OK) {
1874 pkgmgrinfo_pkginfo_filter_destroy(handle);
1877 printf("No of rpm pkgs: %d\n", count);
1878 pkgmgrinfo_pkginfo_filter_destroy(handle);
1883 int pkgmgrinfo_pkginfo_filter_add_string(pkgmgrinfo_pkginfo_filter_h handle,
1884 const char *property, const char *value);
1887 * @fn int pkgmgrinfo_pkginfo_filter_foreach_pkginfo(pkgmgrinfo_pkginfo_filter_h handle, pkgmgrinfo_pkg_list_cb pkg_cb, void *user_data)
1888 * @brief This API executes the user supplied callback function for each package that satisfy the filter conditions
1890 * @par This API is for package-manager client application
1891 * @par Sync (or) Async : Synchronous API
1893 * @param[in] handle pointer to the package info filter handle.
1894 * @param[in] pkg_cb callback function.
1895 * @param[in] user_data user data to be passed to the callback function
1896 * @return 0 if success, error code(<0) if fail
1897 * @retval PMINFO_R_OK success
1898 * @retval PMINFO_R_EINVAL invalid argument
1899 * @retval PMINFO_R_ERROR internal error
1900 * @pre pkgmgrinfo_pkginfo_filter_create()
1901 * @post pkgmgrinfo_pkginfo_filter_destroy()
1902 * @see pkgmgrinfo_pkginfo_filter_count()
1904 int pkg_list_cb(pkgmgrinfo_pkginfo_h handle, void *user_data)
1907 pkgmgrinfo_pkginfo_get_pkgid(handle, &pkgid);
1908 printf("pkg id : %s\n", pkgid);
1912 static int get_rpm_pkg_list()
1915 pkgmgrinfo_pkginfo_filter_h handle;
1916 ret = pkgmgrinfo_pkginfo_filter_create(&handle);
1917 if (ret != PMINFO_R_OK)
1919 ret = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_TYPE, "rpm");
1920 if (ret != PMINFO_R_OK) {
1921 pkgmgrinfo_pkginfo_filter_destroy(handle);
1924 ret = pkgmgrinfo_pkginfo_filter_foreach_pkginfo(handle, pkg_list_cb, NULL);
1925 if (ret != PMINFO_R_OK) {
1926 pkgmgrinfo_pkginfo_filter_destroy(handle);
1929 pkgmgrinfo_pkginfo_filter_destroy(handle);
1934 int pkgmgrinfo_pkginfo_filter_foreach_pkginfo(pkgmgrinfo_pkginfo_filter_h handle,
1935 pkgmgrinfo_pkg_list_cb pkg_cb, void *user_data);
1938 * @fn int pkgmgrinfo_pkginfo_filter_count(pkgmgrinfo_pkginfo_filter_h handle, int *count)
1939 * @brief This API counts the package that satisfy the filter conditions
1941 * @par This API is for package-manager client application
1942 * @par Sync (or) Async : Synchronous API
1944 * @param[in] handle pointer to the package info filter handle.
1945 * @param[in] count pointer to store the count value.
1946 * @return 0 if success, error code(<0) if fail
1947 * @retval PMINFO_R_OK success
1948 * @retval PMINFO_R_EINVAL invalid argument
1949 * @retval PMINFO_R_ERROR internal error
1950 * @pre pkgmgrinfo_pkginfo_filter_create()
1951 * @post pkgmgrinfo_pkginfo_filter_destroy()
1952 * @see pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
1954 static int get_rpm_pkg_count()
1958 pkgmgrinfo_pkginfo_filter_h handle;
1959 ret = pkgmgrinfo_pkginfo_filter_create(&handle);
1960 if (ret != PMINFO_R_OK)
1962 ret = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_TYPE, "rpm");
1963 if (ret != PMINFO_R_OK) {
1964 pkgmgrinfo_pkginfo_filter_destroy(handle);
1967 ret = pkgmgrinfo_pkginfo_filter_count(handle, &count);
1968 if (ret != PMINFO_R_OK) {
1969 pkgmgrinfo_pkginfo_filter_destroy(handle);
1972 printf("No of rpm pkgs: %d\n", count);
1973 pkgmgrinfo_pkginfo_filter_destroy(handle);
1978 int pkgmgrinfo_pkginfo_filter_count(pkgmgrinfo_pkginfo_filter_h handle, int *count);
1981 * @fn int pkgmgrinfo_pkginfo_foreach_privilege(pkgmgrinfo_pkginfo_h handle,
1982 pkgmgrinfo_pkg_privilege_list_cb privilege_func, void *user_data);
1983 * @brief This API gets the list of privilege for a particular package
1985 * @par This API is for package-manager client application
1986 * @par Sync (or) Async : Synchronous API
1987 * @param[in] handle pointer to the package info handle.
1988 * @param[in] privilege_func callback function for list
1989 * @param[in] user_data user data to be passed to callback function
1990 * @return 0 if success, error code(<0) if fail
1991 * @retval PMINFO_R_OK success
1992 * @retval PMINFO_R_EINVAL invalid argument
1993 * @retval PMINFO_R_ERROR internal error
1994 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
1995 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
1997 int privilege_func(const char *name, void *user_data)
1999 if (strcmp(name, (char *)user_data) == 0)
2005 static int list_privilege(const char *package, char *privilege)
2008 pkgmgrinfo_pkginfo_h handle;
2009 ret = pkgmgrinfo_pkginfo_get_pkginfo(package, &handle);
2010 if (ret != PMINFO_R_OK)
2012 ret = pkgmgrinfo_pkginfo_foreach_privilege(handle, privilege_func, (void *)privilege);
2013 if (ret != PMINFO_R_OK) {
2014 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
2017 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
2022 int pkgmgrinfo_pkginfo_foreach_privilege(pkgmgrinfo_pkginfo_h handle,
2023 pkgmgrinfo_pkg_privilege_list_cb privilege_func, void *user_data);
2026 * @fn int pkgmgrinfo_appinfo_get_list(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_app_component component,
2027 pkgmgrinfo_app_list_cb app_func, void *user_data)
2028 * @brief This API gets list of installed applications for a particular package
2030 * @par This API is for package-manager client application
2031 * @par Sync (or) Async : Synchronous API
2032 * @param[in] handle package info handle
2033 * @param[in] component application component
2034 * @param[in] app_func iteration function for list
2035 * @param[in] user_data user data to be passed to callback function
2036 * @return 0 if success, error code(<0) if fail
2037 * @retval PMINFO_R_OK success
2038 * @retval PMINFO_R_EINVAL invalid argument
2039 * @retval PMINFO_R_ERROR internal error
2040 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
2041 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
2043 int app_func(pkgmgrinfo_appinfo_h handle, void *user_data)
2046 pkgmgrinfo_appinfo_get_appid(handle, &appid);
2047 printf("appid : %s\n", appid);
2051 static int list_apps(const char *pkgid)
2054 pkgmgrinfo_pkginfo_h handle;
2055 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
2056 if (ret != PMINFO_R_OK)
2058 ret = pkgmgrinfo_appinfo_get_list(handle, PMINFO_UI_APP, app_func, NULL);
2059 if (ret != PMINFO_R_OK) {
2060 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
2063 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
2068 int pkgmgrinfo_appinfo_get_list(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_app_component component,
2069 pkgmgrinfo_app_list_cb app_func, void *user_data);
2071 * @fn int pkgmgrinfo_appinfo_get_install_list(pkgmgrinfo_app_list_cb app_func, void *user_data);
2072 * @brief This API gets list of installed applications from all packages with minimum informaion.
2074 * @par This API is for package-manager client application
2075 * @par Sync (or) Async : Synchronous API
2076 * @param[in] app_func iteration function for list
2077 * @param[in] user_data user data to be passed to callback function
2078 * @return 0 if success, error code(<0) if fail
2079 * @retval PMINFO_R_OK success
2080 * @retval PMINFO_R_EINVAL invalid argument
2081 * @retval PMINFO_R_ERROR internal error
2085 int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
2087 char *pkgid1 = NULL;
2088 char *pkgid2 = NULL;
2089 pkgid1 = (char *)user_data;
2090 pkgmgrinfo_appinfo_get_pkgid(handle, &pkgid2);
2091 if (strcmp(pkgid1, pkgid2) == 0) {
2098 static int list_apps()
2101 char *name = "helloworld";
2102 ret = pkgmgrinfo_appinfo_get_install_list(app_list_cb, (void *)name);
2103 if (ret != PMINFO_R_OK) {
2110 int pkgmgrinfo_appinfo_get_install_list(pkgmgrinfo_app_list_cb app_func, void *user_data);
2113 * @fn int pkgmgrinfo_appinfo_get_installed_list(pkgmgrinfo_app_list_cb app_func, void *user_data);
2114 * @brief This API gets list of installed applications from all packages.
2116 * @par This API is for package-manager client application
2117 * @par Sync (or) Async : Synchronous API
2118 * @param[in] app_func iteration function for list
2119 * @param[in] user_data user data to be passed to callback function
2120 * @return 0 if success, error code(<0) if fail
2121 * @retval PMINFO_R_OK success
2122 * @retval PMINFO_R_EINVAL invalid argument
2123 * @retval PMINFO_R_ERROR internal error
2127 int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
2129 char *pkgid1 = NULL;
2130 char *pkgid2 = NULL;
2131 pkgid1 = (char *)user_data;
2132 pkgmgrinfo_appinfo_get_pkgid(handle, &pkgid2);
2133 if (strcmp(pkgid1, pkgid2) == 0) {
2140 static int list_apps()
2143 char *name = "helloworld";
2144 ret = pkgmgrinfo_appinfo_get_installed_list(app_list_cb, (void *)name);
2145 if (ret != PMINFO_R_OK) {
2152 int pkgmgrinfo_appinfo_get_installed_list(pkgmgrinfo_app_list_cb app_func, void *user_data);
2155 * @fn int pkgmgrinfo_appinfo_get_appinfo(const char *appid, pkgmgrinfo_appinfo_h *handle)
2156 * @brief This API creates the application information handle from db
2158 * @par This API is for package-manager client application
2159 * @par Sync (or) Async : Synchronous API
2161 * @param[in] appid pointer to appid
2162 * @param[out] handle pointer to the application info handle.
2163 * @return 0 if success, error code(<0) if fail
2164 * @retval PMINFO_R_OK success
2165 * @retval PMINFO_R_EINVAL invalid argument
2166 * @retval PMINFO_R_ERROR internal error
2168 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2169 * @see pkgmgrinfo_appinfo_get_pkgid()
2170 * @see pkgmgrinfo_appinfo_is_multiple()
2172 static int get_app_type(const char *appid)
2176 pkgmgrinfo_appinfo_h handle;
2177 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2178 if (ret != PMINFO_R_OK)
2180 ret = pkgmgrinfo_appinfo_get_apptype(handle, &type);
2181 if (ret != PMINFO_R_OK) {
2182 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2185 printf("apptype: %s\n", type);
2186 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2191 int pkgmgrinfo_appinfo_get_appinfo(const char *appid, pkgmgrinfo_appinfo_h *handle);
2194 * @fn int pkgmgrinfo_appinfo_get_appid(pkgmgrinfo_appinfo_h handle, char **appid)
2195 * @brief This API gets the application ID
2197 * @par This API is for package-manager client application
2198 * @par Sync (or) Async : Synchronous API
2200 * @param[in] handle pointer to the application info handle.
2201 * @param[out] appid pointer to hold appid
2202 * @return 0 if success, error code(<0) if fail
2203 * @retval PMINFO_R_OK success
2204 * @retval PMINFO_R_EINVAL invalid argument
2205 * @retval PMINFO_R_ERROR internal error
2206 * @pre pkgmgrinfo_appinfo_get_appinfo()
2207 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2208 * @see pkgmgrinfo_appinfo_get_pkgid()
2209 * @see pkgmgrinfo_appinfo_is_multiple()
2211 static int get_app_id(const char *appid)
2214 char *app_id = NULL;
2215 pkgmgrinfo_appinfo_h handle;
2216 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2217 if (ret != PMINFO_R_OK)
2219 ret = pkgmgrinfo_appinfo_get_appid(handle, &app_id);
2220 if (ret != PMINFO_R_OK) {
2221 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2224 printf("app id: %s\n", app_id);
2225 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2230 int pkgmgrinfo_appinfo_get_appid(pkgmgrinfo_appinfo_h handle, char **appid);
2233 * @fn int pkgmgrinfo_appinfo_get_pkgname(pkgmgrinfo_appinfo_h handle, char **pkg_name)
2234 * @brief This API gets the package name of the application
2236 * @par This API is for package-manager client application
2237 * @par Sync (or) Async : Synchronous API
2239 * @param[in] handle pointer to the application info handle.
2240 * @param[out] pkg_name pointer to hold package name
2241 * @return 0 if success, error code(<0) if fail
2242 * @retval PMINFO_R_OK success
2243 * @retval PMINFO_R_EINVAL invalid argument
2244 * @retval PMINFO_R_ERROR internal error
2245 * @pre pkgmgrinfo_appinfo_get_appinfo()
2246 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2247 * @see pkgmgrinfo_appinfo_get_appid()
2248 * @see pkgmgrinfo_appinfo_is_multiple()
2250 static int get_app_pkgname(const char *appid)
2253 char *pkgname = NULL;
2254 pkgmgrinfo_appinfo_h handle;
2255 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2256 if (ret != PMINFO_R_OK)
2258 ret = pkgmgrinfo_appinfo_get_pkgname(handle, &pkgname);
2259 if (ret != PMINFO_R_OK) {
2260 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2263 printf("pkg name: %s\n", pkgname);
2264 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2269 int pkgmgrinfo_appinfo_get_pkgname(pkgmgrinfo_appinfo_h handle, char **pkg_name);
2272 * @fn int pkgmgrinfo_appinfo_get_pkgid(pkgmgrinfo_appinfo_h handle, char **pkgid)
2273 * @brief This API gets the package id of the application
2275 * @par This API is for package-manager client application
2276 * @par Sync (or) Async : Synchronous API
2278 * @param[in] handle pointer to the application info handle.
2279 * @param[out] pkgid pointer to hold package id
2280 * @return 0 if success, error code(<0) if fail
2281 * @retval PMINFO_R_OK success
2282 * @retval PMINFO_R_EINVAL invalid argument
2283 * @retval PMINFO_R_ERROR internal error
2284 * @pre pkgmgrinfo_appinfo_get_appinfo()
2285 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2286 * @see pkgmgrinfo_appinfo_get_appid()
2287 * @see pkgmgrinfo_appinfo_is_multiple()
2289 static int get_app_pkgid(const char *appid)
2293 pkgmgrinfo_appinfo_h handle;
2294 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2295 if (ret != PMINFO_R_OK)
2297 ret = pkgmgrinfo_appinfo_get_pkgid(handle, &pkgid);
2298 if (ret != PMINFO_R_OK) {
2299 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2302 printf("pkg id: %s\n", pkgid);
2303 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2308 int pkgmgrinfo_appinfo_get_pkgid(pkgmgrinfo_appinfo_h handle, char **pkgid);
2311 * @fn int pkgmgrinfo_appinfo_get_exec(pkgmgrinfo_appinfo_h handle, char **exec)
2312 * @brief This API gets the executable name of the application
2314 * @par This API is for package-manager client application
2315 * @par Sync (or) Async : Synchronous API
2317 * @param[in] handle pointer to the application info handle.
2318 * @param[out] exec pointer to hold app exec name
2319 * @return 0 if success, error code(<0) if fail
2320 * @retval PMINFO_R_OK success
2321 * @retval PMINFO_R_EINVAL invalid argument
2322 * @retval PMINFO_R_ERROR internal error
2323 * @pre pkgmgrinfo_appinfo_get_appinfo()
2324 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2325 * @see pkgmgrinfo_appinfo_get_appid()
2326 * @see pkgmgrinfo_appinfo_is_multiple()
2328 static int get_app_exec(const char *appid)
2332 pkgmgrinfo_appinfo_h handle;
2333 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2334 if (ret != PMINFO_R_OK)
2336 ret = pkgmgrinfo_appinfo_get_exec(handle, &exec);
2337 if (ret != PMINFO_R_OK) {
2338 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2341 printf("exec name: %s\n", exec);
2342 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2347 int pkgmgrinfo_appinfo_get_exec(pkgmgrinfo_appinfo_h handle, char **exec);
2350 * @fn int pkgmgrinfo_appinfo_get_icon(pkgmgrinfo_appinfo_h handle, char **icon)
2351 * @brief This API gets the icon name of the application
2353 * @par This API is for package-manager client application
2354 * @par Sync (or) Async : Synchronous API
2356 * @param[in] handle pointer to the application info handle.
2357 * @param[out] icon pointer to hold app icon name
2358 * @return 0 if success, error code(<0) if fail
2359 * @retval PMINFO_R_OK success
2360 * @retval PMINFO_R_EINVAL invalid argument
2361 * @retval PMINFO_R_ERROR internal error
2362 * @pre pkgmgrinfo_appinfo_get_appinfo()
2363 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2364 * @see pkgmgrinfo_appinfo_get_appid()
2365 * @see pkgmgrinfo_appinfo_is_multiple()
2367 static int get_app_icon(const char *appid)
2371 pkgmgrinfo_appinfo_h handle;
2372 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2373 if (ret != PMINFO_R_OK)
2375 ret = pkgmgrinfo_appinfo_get_icon(handle, &icon);
2376 if (ret != PMINFO_R_OK) {
2377 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2380 printf("icon name: %s\n", icon);
2381 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2386 int pkgmgrinfo_appinfo_get_icon(pkgmgrinfo_appinfo_h handle, char **icon);
2389 * @fn int pkgmgrinfo_appinfo_get_label(pkgmgrinfo_appinfo_h handle, char **label)
2390 * @brief This API gets the label of the application
2392 * @par This API is for package-manager client application
2393 * @par Sync (or) Async : Synchronous API
2395 * @param[in] handle pointer to the application info handle.
2396 * @param[out] label pointer to hold app label
2397 * @return 0 if success, error code(<0) if fail
2398 * @retval PMINFO_R_OK success
2399 * @retval PMINFO_R_EINVAL invalid argument
2400 * @retval PMINFO_R_ERROR internal error
2401 * @pre pkgmgrinfo_appinfo_get_appinfo()
2402 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2403 * @see pkgmgrinfo_appinfo_get_appid()
2404 * @see pkgmgrinfo_appinfo_is_multiple()
2406 static int get_app_label(const char *appid)
2410 pkgmgrinfo_appinfo_h handle;
2411 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2412 if (ret != PMINFO_R_OK)
2414 ret = pkgmgrinfo_appinfo_get_label(handle, &label);
2415 if (ret != PMINFO_R_OK) {
2416 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2419 printf("label : %s\n", label);
2420 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2425 int pkgmgrinfo_appinfo_get_label(pkgmgrinfo_appinfo_h handle, char **label);
2428 * @fn int pkgmgrinfo_appinfo_get_component(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_component *component)
2429 * @brief This API gets the component of the application
2431 * @par This API is for package-manager client application
2432 * @par Sync (or) Async : Synchronous API
2434 * @param[in] handle pointer to the application info handle.
2435 * @param[out] component pointer to hold app component
2436 * @return 0 if success, error code(<0) if fail
2437 * @retval PMINFO_R_OK success
2438 * @retval PMINFO_R_EINVAL invalid argument
2439 * @retval PMINFO_R_ERROR internal error
2440 * @pre pkgmgrinfo_appinfo_get_appinfo()
2441 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2442 * @see pkgmgrinfo_appinfo_get_appid()
2443 * @see pkgmgrinfo_appinfo_is_multiple()
2445 static int get_app_component(const char *appid)
2448 pkgmgrinfo_app_component component;
2449 pkgmgrinfo_appinfo_h handle;
2450 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2451 if (ret != PMINFO_R_OK)
2453 ret = pkgmgrinfo_appinfo_get_component(handle, &component);
2454 if (ret != PMINFO_R_OK) {
2455 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2458 printf("component : %s\n", component);
2459 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2464 int pkgmgrinfo_appinfo_get_component(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_component *component);
2467 * @fn int pkgmgrinfo_appinfo_get_apptype(pkgmgrinfo_appinfo_h handle, char **app_type)
2468 * @brief This API gets the apptype of the application
2470 * @par This API is for package-manager client application
2471 * @par Sync (or) Async : Synchronous API
2473 * @param[in] handle pointer to the application info handle.
2474 * @param[out] app_type pointer to hold apptype
2475 * @return 0 if success, error code(<0) if fail
2476 * @retval PMINFO_R_OK success
2477 * @retval PMINFO_R_EINVAL invalid argument
2478 * @retval PMINFO_R_ERROR internal error
2479 * @pre pkgmgrinfo_appinfo_get_appinfo()
2480 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2481 * @see pkgmgrinfo_appinfo_get_appid()
2482 * @see pkgmgrinfo_appinfo_is_multiple()
2484 static int get_app_type(const char *appid)
2487 char *apptype = NULL;
2488 pkgmgrinfo_appinfo_h handle;
2489 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2490 if (ret != PMINFO_R_OK)
2492 ret = pkgmgrinfo_appinfo_get_apptype(handle, &apptype);
2493 if (ret != PMINFO_R_OK) {
2494 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2497 printf("apptype : %s\n", apptype);
2498 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2503 int pkgmgrinfo_appinfo_get_apptype(pkgmgrinfo_appinfo_h handle, char **app_type);
2506 * @fn int pkgmgrinfo_appinfo_get_operation(pkgmgrinfo_appcontrol_h handle,
2507 int *operation_count, char ***operation)
2508 * @brief This API gets the list of operation of the application
2510 * @par This API is for package-manager client application
2511 * @par Sync (or) Async : Synchronous API
2513 * @param[in] handle pointer to the appcontrol handle.
2514 * @param[out] operation_count pointer to hold number of operations
2515 * @param[out] operation pointer to hold list of operations
2516 * @return 0 if success, error code(<0) if fail
2517 * @retval PMINFO_R_OK success
2518 * @retval PMINFO_R_EINVAL invalid argument
2519 * @retval PMINFO_R_ERROR internal error
2520 * @pre pkgmgrinfo_appinfo_get_appinfo()
2521 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2522 * @see pkgmgrinfo_appinfo_get_uri()
2523 * @see pkgmgrinfo_appinfo_get_mime()
2525 int appcontrol_func(pkgmgrinfo_appcontrol_h handle, void *user_data)
2530 pkgmgrinfo_appinfo_get_operation(handle, &oc, &operation);
2531 for (i = 0; i < oc; i++) {
2532 if (strcmp(operation[i], (char *)user_data) == 0)
2539 static int check_operation(const char *appid, char *operation)
2542 pkgmgrinfo_appinfo_h handle;
2543 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2544 if (ret != PMINFO_R_OK)
2546 ret = pkgmgrinfo_appinfo_foreach_appcontrol(handle, appcontrol_func, (void *)operation);
2547 if (ret != PMINFO_R_OK) {
2548 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2551 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2556 int pkgmgrinfo_appinfo_get_operation(pkgmgrinfo_appcontrol_h handle,
2557 int *operation_count, char ***operation);
2560 * @fn int pkgmgrinfo_appinfo_get_uri(pkgmgrinfo_appcontrol_h handle,
2561 int *uri_count, char ***uri)
2562 * @brief This API gets the list of uri of the application
2564 * @par This API is for package-manager client application
2565 * @par Sync (or) Async : Synchronous API
2567 * @param[in] handle pointer to the appcontrol handle.
2568 * @param[out] uri_count pointer to hold number of uris
2569 * @param[out] uri pointer to hold list of uris
2570 * @return 0 if success, error code(<0) if fail
2571 * @retval PMINFO_R_OK success
2572 * @retval PMINFO_R_EINVAL invalid argument
2573 * @retval PMINFO_R_ERROR internal error
2574 * @pre pkgmgrinfo_appinfo_get_appinfo()
2575 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2576 * @see pkgmgrinfo_appinfo_get_operation()
2577 * @see pkgmgrinfo_appinfo_get_mime()
2579 int appcontrol_func(pkgmgrinfo_appcontrol_h handle, void *user_data)
2584 pkgmgrinfo_appinfo_get_uri(handle, &uc, &uri);
2585 for (i = 0; i < uc; i++) {
2586 if (strcmp(uri[i], (char *)user_data) == 0)
2593 static int check_uri(const char *appid, char *uri)
2596 pkgmgrinfo_appinfo_h handle;
2597 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2598 if (ret != PMINFO_R_OK)
2600 ret = pkgmgrinfo_appinfo_foreach_appcontrol(handle, appcontrol_func, (void *)uri);
2601 if (ret != PMINFO_R_OK) {
2602 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2605 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2610 int pkgmgrinfo_appinfo_get_uri(pkgmgrinfo_appcontrol_h handle,
2611 int *uri_count, char ***uri);
2614 * @fn int pkgmgrinfo_appinfo_get_mime(pkgmgrinfo_appcontrol_h handle,
2615 int *mime_count, char ***mime)
2616 * @brief This API gets the list of mime of the application
2618 * @par This API is for package-manager client application
2619 * @par Sync (or) Async : Synchronous API
2621 * @param[in] handle pointer to the appcontrol handle.
2622 * @param[out] mime_count pointer to hold number of mimes
2623 * @param[out] mime pointer to hold list of mimes
2624 * @return 0 if success, error code(<0) if fail
2625 * @retval PMINFO_R_OK success
2626 * @retval PMINFO_R_EINVAL invalid argument
2627 * @retval PMINFO_R_ERROR internal error
2628 * @pre pkgmgrinfo_appinfo_get_appinfo()
2629 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2630 * @see pkgmgrinfo_appinfo_get_uri()
2631 * @see pkgmgrinfo_appinfo_get_operation()
2633 int appcontrol_func(pkgmgrinfo_appcontrol_h handle, void *user_data)
2638 pkgmgrinfo_appinfo_get_operation(handle, &mc, &mime);
2639 for (i = 0; i < mc; i++) {
2640 if (strcmp(mime[i], (char *)user_data) == 0)
2647 static int check_mime(const char *appid, char *mime)
2650 pkgmgrinfo_appinfo_h handle;
2651 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2652 if (ret != PMINFO_R_OK)
2654 ret = pkgmgrinfo_appinfo_foreach_appcontrol(handle, appcontrol_func, (void *)mime);
2655 if (ret != PMINFO_R_OK) {
2656 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2659 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2664 int pkgmgrinfo_appinfo_get_mime(pkgmgrinfo_appcontrol_h handle,
2665 int *mime_count, char ***mime);
2668 * @fn int pkgmgrinfo_appinfo_get_notification_icon(pkgmgrinfo_appinfo_h handle, char **icon)
2669 * @brief This API gets the notification icon of the application
2671 * @par This API is for package-manager client application
2672 * @par Sync (or) Async : Synchronous API
2674 * @param[in] handle pointer to the application info handle.
2675 * @param[out] path pointer to hold notification icon
2676 * @return 0 if success, error code(<0) if fail
2677 * @retval PMINFO_R_OK success
2678 * @retval PMINFO_R_EINVAL invalid argument
2679 * @retval PMINFO_R_ERROR internal error
2680 * @pre pkgmgrinfo_appinfo_get_appinfo()
2681 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2682 * @see pkgmgrinfo_appinfo_get_appid()
2683 * @see pkgmgrinfo_appinfo_is_multiple()
2685 static int get_app_notification_icon(const char *appid)
2688 char *notification_icon = NULL;
2689 pkgmgrinfo_appinfo_h handle;
2690 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2691 if (ret != PMINFO_R_OK)
2693 ret = pkgmgrinfo_appinfo_get_notification_icon(handle, ¬ification_icon);
2694 if (ret != PMINFO_R_OK) {
2695 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2698 printf("notification icon : %s\n", notification_icon);
2699 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2704 int pkgmgrinfo_appinfo_get_notification_icon(pkgmgrinfo_appinfo_h handle, char **icon);
2707 * @fn int pkgmgrinfo_appinfo_get_setting_icon(pkgmgrinfo_appinfo_h handle, char **icon)
2708 * @brief This API gets the setting icon of the application
2710 * @par This API is for package-manager client application
2711 * @par Sync (or) Async : Synchronous API
2713 * @param[in] handle pointer to the application info handle.
2714 * @param[out] path pointer to hold setting icon
2715 * @return 0 if success, error code(<0) if fail
2716 * @retval PMINFO_R_OK success
2717 * @retval PMINFO_R_EINVAL invalid argument
2718 * @retval PMINFO_R_ERROR internal error
2719 * @pre pkgmgrinfo_appinfo_get_appinfo()
2720 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2721 * @see pkgmgrinfo_appinfo_get_appid()
2722 * @see pkgmgrinfo_appinfo_is_multiple()
2724 static int get_app_setting_icon(const char *appid)
2727 char *setting_icon = NULL;
2728 pkgmgrinfo_appinfo_h handle;
2729 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2730 if (ret != PMINFO_R_OK)
2732 ret = pkgmgrinfo_appinfo_get_setting_icon(handle, &setting_icon);
2733 if (ret != PMINFO_R_OK) {
2734 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2737 printf("setting icon : %s\n", setting_icon);
2738 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2743 int pkgmgrinfo_appinfo_get_setting_icon(pkgmgrinfo_appinfo_h handle, char **icon);
2746 * @fn int pkgmgrinfo_appinfo_get_recent_image_type(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_recentimage *type)
2747 * @brief This API gets the type of recent image on app-tray
2749 * @par This API is for package-manager client application
2750 * @par Sync (or) Async : Synchronous API
2752 * @param[in] handle pointer to the application info handle.
2753 * @param[out] type pointer to hold image type
2754 * @return 0 if success, error code(<0) if fail
2755 * @retval PMINFO_R_OK success
2756 * @retval PMINFO_R_EINVAL invalid argument
2757 * @retval PMINFO_R_ERROR internal error
2758 * @pre pkgmgrinfo_appinfo_get_appinfo()
2759 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2760 * @see pkgmgrinfo_appinfo_get_appid()
2761 * @see pkgmgrinfo_appinfo_is_multiple()
2763 static int get_app_recent_image_type(const char *appid)
2766 pkgmgrinfo_app_recentimage type;
2767 pkgmgrinfo_appinfo_h handle;
2768 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2769 if (ret != PMINFO_R_OK)
2771 ret = pkgmgrinfo_appinfo_get_recent_image_type(handle, &type);
2772 if (ret != PMINFO_R_OK) {
2773 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2776 printf("recent image type: %d\n", type);
2777 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2782 int pkgmgrinfo_appinfo_get_recent_image_type(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_recentimage *type);
2786 * @fn int pkgmgrinfo_appinfo_get_preview_image(pkgmgrinfo_appinfo_h handle, char **preview_img)
2787 * @brief This API gets the preview image of application
2789 * @par Sync (or) Async : Synchronous API
2791 * @param[in] handle pointer to the application info handle.
2792 * @param[out] preview_img pointer to hold preview image path
2793 * @return 0 if success, error code(<0) if fail
2794 * @retval PMINFO_R_OK success
2795 * @retval PMINFO_R_EINVAL invalid argument
2796 * @retval PMINFO_R_ERROR internal error
2797 * @pre pkgmgrinfo_appinfo_get_appinfo()
2798 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2799 * @see pkgmgrinfo_appinfo_get_appid()
2801 static int get_app_previewimage(const char *appid)
2804 char *preview = NULL;
2805 pkgmgrinfo_appinfo_h handle = NULL;
2806 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2807 if (ret != PMINFO_R_OK)
2809 ret = pkgmgrinfo_appinfo_get_preview_image(handle, &preview);
2810 if (ret != PMINFO_R_OK) {
2811 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2814 printf("preview image path : %s\n", preview);
2815 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2820 int pkgmgrinfo_appinfo_get_preview_image(pkgmgrinfo_appinfo_h handle, char **preview_img);
2824 * @fn int pkgmgrinfo_appinfo_get_permission_type(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_permission_type *permission)
2825 * @brief This API gets the package permission type of the application
2827 * @par This API is for package-manager client application
2828 * @par Sync (or) Async : Synchronous API
2830 * @param[in] handle pointer to the application info handle.
2831 * @param[out] permission pointer to hold package permission
2832 * @return 0 if success, error code(<0) if fail
2833 * @retval PMINFO_R_OK success
2834 * @retval PMINFO_R_EINVAL invalid argument
2835 * @retval PMINFO_R_ERROR internal error
2836 * @pre pkgmgrinfo_appinfo_get_appinfo()
2837 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2838 * @see pkgmgrinfo_appinfo_get_appid()
2840 static int get_app_permission(const char *appid)
2843 pkgmgrinfo_permission_type permission = 0;
2844 pkgmgrinfo_appinfo_h handle;
2846 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2847 if (ret != PMINFO_R_OK)
2849 ret = pkgmgrinfo_appinfo_get_permission_type(handle, &permission);
2850 if (ret != PMINFO_R_OK) {
2851 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2854 printf("permission type: %d\n", permission);
2855 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2860 int pkgmgrinfo_appinfo_get_permission_type(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_permission_type *permission);
2863 * @fn int pkgmgrinfo_appinfo_foreach_permission(pkgmgrinfo_appinfo_h handle,
2864 pkgmgrinfo_app_permission_list_cb permission_func, void *user_data);
2865 * @brief This API gets the list of permission for a particular application
2867 * @par This API is for package-manager client application
2868 * @par Sync (or) Async : Synchronous API
2869 * @param[in] handle pointer to the application info handle.
2870 * @param[in] permission_func callback function for list
2871 * @param[in] user_data user data to be passed to callback function
2872 * @return 0 if success, error code(<0) if fail
2873 * @retval PMINFO_R_OK success
2874 * @retval PMINFO_R_EINVAL invalid argument
2875 * @retval PMINFO_R_ERROR internal error
2876 * @pre pkgmgrinfo_appinfo_get_appinfo()
2877 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2879 int permission_func(const char *name, void *user_data)
2881 if (strcmp(name, (char *)user_data) == 0)
2887 static int list_permission(const char *appid, char *permission)
2890 pkgmgrinfo_appinfo_h handle;
2891 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2892 if (ret != PMINFO_R_OK)
2894 ret = pkgmgrinfo_appinfo_foreach_permission(handle, permission_func, (void *)permission);
2895 if (ret != PMINFO_R_OK) {
2896 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2899 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2904 int pkgmgrinfo_appinfo_foreach_permission(pkgmgrinfo_appinfo_h handle,
2905 pkgmgrinfo_app_permission_list_cb permission_func, void *user_data);
2908 * @fn int pkgmgrinfo_appinfo_foreach_category(pkgmgrinfo_appinfo_h handle,
2909 pkgmgrinfo_app_category_list_cb category_func, void *user_data);
2910 * @brief This API gets the list of category for a particular application
2912 * @par This API is for package-manager client application
2913 * @par Sync (or) Async : Synchronous API
2914 * @param[in] handle pointer to the application info handle.
2915 * @param[in] category_func callback function for list
2916 * @param[in] user_data user data to be passed to callback function
2917 * @return 0 if success, error code(<0) if fail
2918 * @retval PMINFO_R_OK success
2919 * @retval PMINFO_R_EINVAL invalid argument
2920 * @retval PMINFO_R_ERROR internal error
2921 * @pre pkgmgrinfo_appinfo_get_appinfo()
2922 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2924 int category_func(const char *name, void *user_data)
2926 if (strcmp(name, (char *)user_data) == 0)
2932 static int list_category(const char *appid, char *category)
2935 pkgmgrinfo_appinfo_h handle;
2936 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2937 if (ret != PMINFO_R_OK)
2939 ret = pkgmgrinfo_appinfo_foreach_category(handle, category_func, (void *)category);
2940 if (ret != PMINFO_R_OK) {
2941 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2944 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2949 int pkgmgrinfo_appinfo_foreach_category(pkgmgrinfo_appinfo_h handle,
2950 pkgmgrinfo_app_category_list_cb category_func, void *user_data);
2953 * @fn int pkgmgrinfo_appinfo_foreach_metadata(pkgmgrinfo_appinfo_h handle,
2954 pkgmgrinfo_app_metadata_list_cb metadata_func, void *user_data);
2955 * @brief This API gets the list of metadata for a particular application
2957 * @par This API is for package-manager client application
2958 * @par Sync (or) Async : Synchronous API
2959 * @param[in] handle pointer to the application info handle.
2960 * @param[in] metadata_func callback function for list
2961 * @param[in] user_data user data to be passed to callback function
2962 * @return 0 if success, error code(<0) if fail
2963 * @retval PMINFO_R_OK success
2964 * @retval PMINFO_R_EINVAL invalid argument
2965 * @retval PMINFO_R_ERROR internal error
2966 * @pre pkgmgrinfo_appinfo_get_appinfo()
2967 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2969 int metadata_func(const char *key, const char *value, void *user_data)
2971 if (strcmp(key, (char *)user_data) == 0) {
2972 printf("Value is %s\n", value);
2979 static int list_metadata(const char *appid, char *key)
2982 pkgmgrinfo_appinfo_h handle;
2983 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2984 if (ret != PMINFO_R_OK)
2986 ret = pkgmgrinfo_appinfo_foreach_metadata(handle, metadata_func, (void *)key);
2987 if (ret != PMINFO_R_OK) {
2988 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2991 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2996 int pkgmgrinfo_appinfo_foreach_metadata(pkgmgrinfo_appinfo_h handle,
2997 pkgmgrinfo_app_metadata_list_cb metadata_func, void *user_data);
3001 * @fn int pkgmgrinfo_appinfo_foreach_appcontrol(pkgmgrinfo_appinfo_h handle,
3002 pkgmgrinfo_app_control_list_cb appcontrol_func, void *user_data);
3003 * @brief This API gets the list of app-control for a particular application
3005 * @par This API is for package-manager client application
3006 * @par Sync (or) Async : Synchronous API
3007 * @param[in] handle pointer to the application info handle.
3008 * @param[in] appcontrol_func callback function for list
3009 * @param[in] user_data user data to be passed to callback function
3010 * @return 0 if success, error code(<0) if fail
3011 * @retval PMINFO_R_OK success
3012 * @retval PMINFO_R_EINVAL invalid argument
3013 * @retval PMINFO_R_ERROR internal error
3014 * @pre pkgmgrinfo_appinfo_get_appinfo()
3015 * @post pkgmgrinfo_appinfo_destroy_appinfo()
3017 int appcontrol_func(pkgmgrinfo_appcontrol_h handle, void *user_data)
3022 pkgmgrinfo_appinfo_get_operation(handle, &oc, &operation);
3023 for (i = 0; i < oc; i++) {
3024 if (strcmp(operation[i], (char *)user_data) == 0)
3031 static int check_operation(const char *appid, char *operation)
3034 pkgmgrinfo_appinfo_h handle;
3035 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3036 if (ret != PMINFO_R_OK)
3038 ret = pkgmgrinfo_appinfo_foreach_appcontrol(handle, appcontrol_func, (void *)operation);
3039 if (ret != PMINFO_R_OK) {
3040 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3043 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3048 int pkgmgrinfo_appinfo_foreach_appcontrol(pkgmgrinfo_appinfo_h handle,
3049 pkgmgrinfo_app_control_list_cb appcontrol_func, void *user_data);
3052 * @fn int pkgmgrinfo_appinfo_is_nodisplay(pkgmgrinfo_appinfo_h handle, bool *nodisplay)
3053 * @brief This API gets the application 'nodisplay' value from the app ID
3055 * @par This API is for package-manager client application
3056 * @par Sync (or) Async : Synchronous API
3058 * @param[in] handle pointer to application info handle
3059 * @param[out] nodisplay pointer to hold package nodisplay value
3060 * @return 0 if success, error code(<0) if fail
3061 * @retval PMINFO_R_OK success
3062 * @retval PMINFO_R_EINVAL invalid argument
3063 * @retval PMINFO_R_ERROR internal error
3064 * @pre pkgmgrinfo_appinfo_get_appinfo()
3065 * @post pkgmgrinfo_appinfo_destroy_appinfo()
3066 * @see pkgmgrinfo_appinfo_get_appid()
3067 * @see pkgmgrinfo_appinfo_is_multiple()
3069 static int get_app_nodisplay(const char *appid)
3073 pkgmgrinfo_appinfo_h handle;
3074 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3075 if (ret != PMINFO_R_OK)
3077 ret = pkgmgrinfo_appinfo_is_nodisplay(handle, &nodisplay);
3078 if (ret != PMINFO_R_OK) {
3079 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3082 printf("app nodisplay: %d\n", nodisplay);
3083 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3088 int pkgmgrinfo_appinfo_is_nodisplay(pkgmgrinfo_appinfo_h handle, bool *nodisplay);
3091 * @fn int pkgmgrinfo_appinfo_is_multiple(pkgmgrinfo_appinfo_h handle, bool *multiple)
3092 * @brief This API gets the application 'multiple' value from the app ID
3094 * @par This API is for package-manager client application
3095 * @par Sync (or) Async : Synchronous API
3097 * @param[in] handle pointer to application info handle
3098 * @param[out] multiple pointer to hold package multiple value
3099 * @return 0 if success, error code(<0) if fail
3100 * @retval PMINFO_R_OK success
3101 * @retval PMINFO_R_EINVAL invalid argument
3102 * @retval PMINFO_R_ERROR internal error
3103 * @pre pkgmgrinfo_appinfo_get_appinfo()
3104 * @post pkgmgrinfo_appinfo_destroy_appinfo()
3105 * @see pkgmgrinfo_appinfo_get_appid()
3106 * @see pkgmgrinfo_appinfo_is_nodisplay()
3108 static int get_app_multiple(const char *appid)
3112 pkgmgrinfo_appinfo_h handle;
3113 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3114 if (ret != PMINFO_R_OK)
3116 ret = pkgmgrinfo_appinfo_is_multiple(handle, &multiple);
3117 if (ret != PMINFO_R_OK) {
3118 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3121 printf("app multiple: %d\n", multiple);
3122 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3127 int pkgmgrinfo_appinfo_is_multiple(pkgmgrinfo_appinfo_h handle, bool *multiple);
3130 * @fn int pkgmgrinfo_appinfo_is_indicator_display_allowed(pkgmgrinfo_appinfo_h handle, bool *indicator_disp)
3131 * @brief This API gets the application 'indicatordisplay' value. If true, indicator will be displayed during
3132 * application launching effect. If fales, indicator will be hidden during application launching effect
3134 * @par This API is for package-manager client application
3135 * @par Sync (or) Async : Synchronous API
3137 * @param[in] handle pointer to application info handle
3138 * @param[out] indicator_disp contains indicator display status for application launching effect
3139 * @return 0 if success, error code(<0) if fail
3140 * @retval PMINFO_R_OK success
3141 * @retval PMINFO_R_EINVAL invalid argument
3142 * @retval PMINFO_R_ERROR internal error
3143 * @pre pkgmgrinfo_appinfo_get_appinfo()
3144 * @post pkgmgrinfo_appinfo_destroy_appinfo()
3145 * @see pkgmgrinfo_appinfo_get_appid()
3146 * @see pkgmgrinfo_appinfo_is_nodisplay()
3148 static int get_app_indicator_display(const char *appid)
3151 bool indicator_disp;
3152 pkgmgrinfo_appinfo_h handle;
3153 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3154 if (ret != PMINFO_R_OK)
3156 ret = pkgmgrinfo_appinfo_is_indicator_display_allowed(handle, &indicator_disp);
3157 if (ret != PMINFO_R_OK){
3158 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3161 printf("app indicator disp : %d\n", indicator_disp);
3162 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3167 int pkgmgrinfo_appinfo_is_indicator_display_allowed(pkgmgrinfo_appinfo_h handle, bool *indicator_disp);
3170 * @fn int pkgmgrinfo_appinfo_get_effectimage(pkgmgrinfo_appinfo_h handle, char **portrait_img, char **landscape_img)
3171 * @brief This API gets the application's landscape & portrait effect images
3173 * @par This API is for package-manager client application
3174 * @par Sync (or) Async : Synchronous API
3176 * @param[in] handle pointer to application info handle
3177 * @param[out] portrait_img contains portrait mode effect image
3178 * @param[out] landscape_img contains landscape mode effect image
3179 * @return 0 if success, error code(<0) if fail
3180 * @retval PMINFO_R_OK success
3181 * @retval PMINFO_R_EINVAL invalid argument
3182 * @retval PMINFO_R_ERROR internal error
3183 * @pre pkgmgrinfo_appinfo_get_appinfo()
3184 * @post pkgmgrinfo_appinfo_destroy_appinfo()
3185 * @see pkgmgrinfo_appinfo_get_appid()
3186 * @see pkgmgrinfo_appinfo_is_nodisplay()
3188 static int get_app_effectimages(const char *appid)
3191 char *portraitimg = NULL;
3192 char *landscapeimg = NULL;
3193 pkgmgrinfo_appinfo_h handle;
3194 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3195 if (ret != PMINFO_R_OK)
3197 ret = pkgmgrinfo_appinfo_get_effectimage(handle, &portraitimg, &landscapeimg);
3198 if (ret != PMINFO_R_OK) {
3199 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3202 printf("app effect image portrait: %s, app effect image landscape : %s\n", portraitimg, landscapeimg);
3203 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3208 int pkgmgrinfo_appinfo_get_effectimage(pkgmgrinfo_appinfo_h handle, char **portrait_img, char **landscape_img);
3211 * @fn int pkgmgrinfo_appinfo_is_taskmanage(pkgmgrinfo_appinfo_h handle, bool *taskmanage)
3212 * @brief This API gets the application 'taskmanage' value from the app ID
3214 * @par This API is for package-manager client application
3215 * @par Sync (or) Async : Synchronous API
3217 * @param[in] handle pointer to application info handle
3218 * @param[out] taskmanage pointer to hold package taskmanage value
3219 * @return 0 if success, error code(<0) if fail
3220 * @retval PMINFO_R_OK success
3221 * @retval PMINFO_R_EINVAL invalid argument
3222 * @retval PMINFO_R_ERROR internal error
3223 * @pre pkgmgrinfo_appinfo_get_appinfo()
3224 * @post pkgmgrinfo_appinfo_destroy_appinfo()
3225 * @see pkgmgrinfo_appinfo_get_appid()
3226 * @see pkgmgrinfo_appinfo_is_multiple()
3228 static int get_app_taskmanage(const char *appid)
3232 pkgmgrinfo_appinfo_h handle;
3233 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3234 if (ret != PMINFO_R_OK)
3236 ret = pkgmgrinfo_appinfo_is_taskmanage(handle, &taskmanage);
3237 if (ret != PMINFO_R_OK) {
3238 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3241 printf("app taskmanage: %d\n", taskmanage);
3242 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3247 int pkgmgrinfo_appinfo_is_taskmanage(pkgmgrinfo_appinfo_h handle, bool *taskmanage);
3250 * @fn int pkgmgrinfo_appinfo_is_enabled(pkgmgrinfo_appinfo_h handle, bool *enabled)
3251 * @brief This API gets the application 'taskmanage' value from the app ID
3253 * @par This API is for package-manager client application
3254 * @par Sync (or) Async : Synchronous API
3256 * @param[in] handle pointer to application info handle
3257 * @param[out] enabled pointer to hold package enabled value
3258 * @return 0 if success, error code(<0) if fail
3259 * @retval PMINFO_R_OK success
3260 * @retval PMINFO_R_EINVAL invalid argument
3261 * @retval PMINFO_R_ERROR internal error
3262 * @pre pkgmgrinfo_appinfo_get_appinfo()
3263 * @post pkgmgrinfo_appinfo_destroy_appinfo()
3264 * @see pkgmgrinfo_appinfo_get_appid()
3265 * @see pkgmgrinfo_appinfo_is_multiple()
3267 static int get_app_enabled(const char *appid)
3271 pkgmgrinfo_appinfo_h handle;
3272 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3273 if (ret != PMINFO_R_OK)
3275 ret = pkgmgrinfo_appinfo_is_taskmanage(handle, &enabled);
3276 if (ret != PMINFO_R_OK) {
3277 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3280 printf("app enabled: %d\n", enabled);
3281 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3286 int pkgmgrinfo_appinfo_is_enabled(pkgmgrinfo_appinfo_h handle, bool *enabled);
3289 * @fn int pkgmgrinfo_appinfo_get_hwacceleration(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_hwacceleration *hwacceleration)
3290 * @brief This API gets the application 'hwacceleration' value from the app ID
3292 * @par This API is for package-manager client application
3293 * @par Sync (or) Async : Synchronous API
3295 * @param[in] handle pointer to application info handle
3296 * @param[out] hwacceleration pointer to hold package hwacceleration value
3297 * @return 0 if success, error code(<0) if fail
3298 * @retval PMINFO_R_OK success
3299 * @retval PMINFO_R_EINVAL invalid argument
3300 * @retval PMINFO_R_ERROR internal error
3301 * @pre pkgmgrinfo_appinfo_get_appinfo()
3302 * @post pkgmgrinfo_appinfo_destroy_appinfo()
3303 * @see pkgmgrinfo_appinfo_get_appid()
3304 * @see pkgmgrinfo_appinfo_is_multiple()
3306 static int get_app_hwacceleration(const char *appid)
3309 pkgmgrinfo_app_hwacceleration hwacceleration;
3310 pkgmgrinfo_appinfo_h handle;
3311 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3312 if (ret != PMINFO_R_OK)
3314 ret = pkgmgrinfo_appinfo_get_hwacceleration(handle, &hwacceleration);
3315 if (ret != PMINFO_R_OK) {
3316 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3319 printf("app hwacceleration: %d\n", hwacceleration);
3320 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3325 int pkgmgrinfo_appinfo_get_hwacceleration(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_hwacceleration *hwacceleration);
3328 * @fn int pkgmgrinfo_appinfo_is_onboot(pkgmgrinfo_appinfo_h handle, bool *onboot)
3329 * @brief This API gets the application 'onboot' value from the app ID
3331 * @par This API is for package-manager client application
3332 * @par Sync (or) Async : Synchronous API
3334 * @param[in] handle pointer to application info handle
3335 * @param[out] onboot pointer to hold package onboot value
3336 * @return 0 if success, error code(<0) if fail
3337 * @retval PMINFO_R_OK success
3338 * @retval PMINFO_R_EINVAL invalid argument
3339 * @retval PMINFO_R_ERROR internal error
3340 * @pre pkgmgrinfo_appinfo_get_appinfo()
3341 * @post pkgmgrinfo_appinfo_destroy_appinfo()
3342 * @see pkgmgrinfo_appinfo_get_appid()
3343 * @see pkgmgrinfo_appinfo_is_multiple()
3345 static int get_app_onboot(const char *appid)
3349 pkgmgrinfo_appinfo_h handle;
3350 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3351 if (ret != PMINFO_R_OK)
3353 ret = pkgmgrinfo_appinfo_is_onboot(handle, &onboot);
3354 if (ret != PMINFO_R_OK) {
3355 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3358 printf("app onboot: %d\n", onboot);
3359 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3364 int pkgmgrinfo_appinfo_is_onboot(pkgmgrinfo_appinfo_h handle, bool *onboot);
3367 * @fn int pkgmgrinfo_appinfo_is_autorestart(pkgmgrinfo_appinfo_h handle, bool *autorestart)
3368 * @brief This API gets the application 'autorestart' value from the app ID
3370 * @par This API is for package-manager client application
3371 * @par Sync (or) Async : Synchronous API
3373 * @param[in] handle pointer to application info handle
3374 * @param[out] autorestart pointer to hold package autorestart value
3375 * @return 0 if success, error code(<0) if fail
3376 * @retval PMINFO_R_OK success
3377 * @retval PMINFO_R_EINVAL invalid argument
3378 * @retval PMINFO_R_ERROR internal error
3379 * @pre pkgmgrinfo_appinfo_get_appinfo()
3380 * @post pkgmgrinfo_appinfo_destroy_appinfo()
3381 * @see pkgmgrinfo_appinfo_get_appid()
3382 * @see pkgmgrinfo_appinfo_is_multiple()
3384 static int get_app_autorestart(const char *appid)
3388 pkgmgrinfo_appinfo_h handle;
3389 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3390 if (ret != PMINFO_R_OK)
3392 ret = pkgmgrinfo_appinfo_is_autorestart(handle, &autorestart);
3393 if (ret != PMINFO_R_OK) {
3394 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3397 printf("app autorestart: %d\n", autorestart);
3398 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3403 int pkgmgrinfo_appinfo_is_autorestart(pkgmgrinfo_appinfo_h handle, bool *autorestart);
3406 * @fn int pkgmgrinfo_appinfo_is_mainapp(pkgmgrinfo_appinfo_h handle, bool *mainapp)
3407 * @brief This API gets the value for given application is main app or not from handle
3409 * @par This API is for package-manager client application
3410 * @par Sync (or) Async : Synchronous API
3412 * @param[in] handle pointer to application info handle
3413 * @param[out] mainapp pointer to hold package mainapp is or not
3414 * @return 0 if success, error code(<0) if fail
3415 * @retval PMINFO_R_OK success
3416 * @retval PMINFO_R_EINVAL invalid argument
3417 * @retval PMINFO_R_ERROR internal error
3418 * @pre pkgmgrinfo_appinfo_get_appinfo()
3419 * @post pkgmgrinfo_appinfo_destroy_appinfo()
3420 * @see pkgmgrinfo_appinfo_get_appid()
3421 * @see pkgmgrinfo_appinfo_is_multiple()
3423 static int get_app_mainapp(const char *appid)
3427 pkgmgrinfo_appinfo_h handle;
3428 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3429 if (ret != PMINFO_R_OK)
3431 ret = pkgmgrinfo_appinfo_is_mainapp(handle, &mainapp);
3432 if (ret != PMINFO_R_OK) {
3433 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3436 printf("mainapp: %d\n", mainapp);
3437 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3442 int pkgmgrinfo_appinfo_is_mainapp(pkgmgrinfo_appinfo_h handle, bool *mainapp);
3445 * @fn int pkgmgrinfo_appinfo_destroy_appinfo(pkgmgrinfo_appinfo_h handle)
3446 * @brief This API destroys the application information handle freeing up all the resources
3448 * @par This API is for package-manager client application
3449 * @par Sync (or) Async : Synchronous API
3451 * @param[in] handle pointer to the application info handle.
3452 * @return 0 if success, error code(<0) if fail
3453 * @retval PMINFO_R_OK success
3454 * @retval PMINFO_R_EINVAL invalid argument
3455 * @retval PMINFO_R_ERROR internal error
3456 * @pre pkgmgrinfo_appinfo_get_appinfo()
3458 * @see pkgmgrinfo_appinfo_get_pkgid()
3459 * @see pkgmgrinfo_appinfo_is_multiple()
3461 static int get_app_type(const char *appid)
3465 pkgmgrinfo_appinfo_h handle;
3466 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3467 if (ret != PMINFO_R_OK)
3469 ret = pkgmgrinfo_appinfo_get_apptype(handle, &type);
3470 if (ret != PMINFO_R_OK) {
3471 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3474 printf("apptype: %s\n", type);
3475 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3480 int pkgmgrinfo_appinfo_destroy_appinfo(pkgmgrinfo_appinfo_h handle);
3483 * @fn int pkgmgrinfo_appinfo_filter_create(pkgmgrinfo_appinfo_filter_h *handle)
3484 * @brief This API creates the application information filter handle from db. All filter properties will be ANDed.
3485 The query will search the entire application information collected from the manifest file of all the installed packages
3487 * @par This API is for package-manager client application
3488 * @par Sync (or) Async : Synchronous API
3490 * @param[out] handle pointer to the application info filter handle.
3491 * @return 0 if success, error code(<0) if fail
3492 * @retval PMINFO_R_OK success
3493 * @retval PMINFO_R_EINVAL invalid argument
3494 * @retval PMINFO_R_ERROR internal error
3496 * @post pkgmgrinfo_appinfo_filter_destroy()
3497 * @see pkgmgrinfo_appinfo_filter_count()
3498 * @see pkgmgrinfo_appinfo_filter_foreach_appinfo()
3500 static int get_capp_count()
3504 pkgmgrinfo_appinfo_filter_h handle;
3505 ret = pkgmgrinfo_appinfo_filter_create(&handle);
3506 if (ret != PMINFO_R_OK)
3508 ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp");
3509 if (ret != PMINFO_R_OK) {
3510 pkgmgrinfo_appinfo_filter_destroy(handle);
3513 ret = pkgmgrinfo_appinfo_filter_count(handle, &count);
3514 if (ret != PMINFO_R_OK) {
3515 pkgmgrinfo_appinfo_filter_destroy(handle);
3518 printf("No of capp: %d\n", count);
3519 pkgmgrinfo_appinfo_filter_destroy(handle);
3524 int pkgmgrinfo_appinfo_filter_create(pkgmgrinfo_appinfo_filter_h *handle);
3527 * @fn int pkgmgrinfo_appinfo_filter_destroy(pkgmgrinfo_appinfo_filter_h handle)
3528 * @brief This API destroys the application information filter handle freeing up all the resources
3530 * @par This API is for package-manager client application
3531 * @par Sync (or) Async : Synchronous API
3533 * @param[in] handle pointer to the application info filter handle.
3534 * @return 0 if success, error code(<0) if fail
3535 * @retval PMINFO_R_OK success
3536 * @retval PMINFO_R_EINVAL invalid argument
3537 * @retval PMINFO_R_ERROR internal error
3538 * @pre pkgmgrinfo_appinfo_filter_create()
3540 * @see pkgmgrinfo_appinfo_filter_count()
3541 * @see pkgmgrinfo_appinfo_filter_foreach_appinfo()
3543 static int get_capp_count()
3547 pkgmgrinfo_appinfo_filter_h handle;
3548 ret = pkgmgrinfo_appinfo_filter_create(&handle);
3549 if (ret != PMINFO_R_OK)
3551 ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp");
3552 if (ret != PMINFO_R_OK) {
3553 pkgmgrinfo_appinfo_filter_destroy(handle);
3556 ret = pkgmgrinfo_appinfo_filter_count(handle, &count);
3557 if (ret != PMINFO_R_OK) {
3558 pkgmgrinfo_appinfo_filter_destroy(handle);
3561 printf("No of capp: %d\n", count);
3562 pkgmgrinfo_appinfo_filter_destroy(handle);
3567 int pkgmgrinfo_appinfo_filter_destroy(pkgmgrinfo_appinfo_filter_h handle);
3570 * @fn int pkgmgrinfo_appinfo_filter_add_bool(pkgmgrinfo_appinfo_filter_h handle, const char *property, const bool value)
3571 * @brief This API adds a boolean filter property to the filter handle
3573 * @par This API is for package-manager client application
3574 * @par Sync (or) Async : Synchronous API
3576 * @param[in] handle pointer to the application info filter handle.
3577 * @param[in] property boolean property name.
3578 * @param[in] value value corresponding to the property.
3579 * @return 0 if success, error code(<0) if fail
3580 * @retval PMINFO_R_OK success
3581 * @retval PMINFO_R_EINVAL invalid argument
3582 * @retval PMINFO_R_ERROR internal error
3583 * @pre pkgmgrinfo_appinfo_filter_create()
3584 * @post pkgmgrinfo_appinfo_filter_destroy()
3585 * @see pkgmgrinfo_appinfo_filter_count()
3586 * @see pkgmgrinfo_appinfo_filter_foreach_appinfo()
3588 static int get_taskmanageable_app_count()
3592 pkgmgrinfo_appinfo_filter_h handle;
3593 ret = pkgmgrinfo_appinfo_filter_create(&handle);
3594 if (ret != PMINFO_R_OK)
3596 ret = pkgmgrinfo_appinfo_filter_add_bool(handle, PMINFO_APPINFO_PROP_APP_TASKMANAGE, 1);
3597 if (ret != PMINFO_R_OK) {
3598 pkgmgrinfo_appinfo_filter_destroy(handle);
3601 ret = pkgmgrinfo_appinfo_filter_count(handle, &count);
3602 if (ret != PMINFO_R_OK) {
3603 pkgmgrinfo_appinfo_filter_destroy(handle);
3606 printf("No of taskmanageable apps: %d\n", count);
3607 pkgmgrinfo_appinfo_filter_destroy(handle);
3612 int pkgmgrinfo_appinfo_filter_add_bool(pkgmgrinfo_appinfo_filter_h handle,
3613 const char *property, const bool value);
3616 * @fn int pkgmgrinfo_appinfo_filter_add_int(pkgmgrinfo_appinfo_filter_h handle, const char *property, const int value)
3617 * @brief This API adds an integer filter property to the filter handle
3619 * @par This API is for package-manager client application
3620 * @par Sync (or) Async : Synchronous API
3622 * @param[in] handle pointer to the application info filter handle.
3623 * @param[in] property integer property name.
3624 * @param[in] value value corresponding to the property.
3625 * @return 0 if success, error code(<0) if fail
3626 * @retval PMINFO_R_OK success
3627 * @retval PMINFO_R_EINVAL invalid argument
3628 * @retval PMINFO_R_ERROR internal error
3629 * @pre pkgmgrinfo_appinfo_filter_create()
3630 * @post pkgmgrinfo_appinfo_filter_destroy()
3631 * @see pkgmgrinfo_appinfo_filter_count()
3632 * @see pkgmgrinfo_appinfo_filter_foreach_appinfo()
3634 static int get_taskmanageable_app_count()
3638 pkgmgrinfo_appinfo_filter_h handle;
3639 ret = pkgmgrinfo_appinfo_filter_create(&handle);
3640 if (ret != PMINFO_R_OK)
3642 ret = pkgmgrinfo_appinfo_filter_add_bool(handle, PMINFO_APPINFO_PROP_APP_XXX, 10);
3643 if (ret != PMINFO_R_OK) {
3644 pkgmgrinfo_appinfo_filter_destroy(handle);
3647 ret = pkgmgrinfo_appinfo_filter_count(handle, &count);
3648 if (ret != PMINFO_R_OK) {
3649 pkgmgrinfo_appinfo_filter_destroy(handle);
3652 printf("No of apps: %d\n", count);
3653 pkgmgrinfo_appinfo_filter_destroy(handle);
3658 int pkgmgrinfo_appinfo_filter_add_int(pkgmgrinfo_appinfo_filter_h handle,
3659 const char *property, const int value);
3662 * @fn int pkgmgrinfo_appinfo_filter_add_string(pkgmgrinfo_appinfo_filter_h handle, const char *property, const char *value)
3663 * @brief This API adds a string filter property to the filter handle
3665 * @par This API is for package-manager client application
3666 * @par Sync (or) Async : Synchronous API
3668 * @param[in] handle pointer to the application info filter handle.
3669 * @param[in] property string property name.
3670 * @param[in] value value corresponding to the property.
3671 * @return 0 if success, error code(<0) if fail
3672 * @retval PMINFO_R_OK success
3673 * @retval PMINFO_R_EINVAL invalid argument
3674 * @retval PMINFO_R_ERROR internal error
3675 * @pre pkgmgrinfo_appinfo_filter_create()
3676 * @post pkgmgrinfo_appinfo_filter_destroy()
3677 * @see pkgmgrinfo_appinfo_filter_count()
3678 * @see pkgmgrinfo_appinfo_filter_foreach_appinfo()
3680 static int get_capp_count()
3684 pkgmgrinfo_appinfo_filter_h handle;
3685 ret = pkgmgrinfo_appinfo_filter_create(&handle);
3686 if (ret != PMINFO_R_OK)
3688 ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp");
3689 if (ret != PMINFO_R_OK) {
3690 pkgmgrinfo_appinfo_filter_destroy(handle);
3693 ret = pkgmgrinfo_appinfo_filter_count(handle, &count);
3694 if (ret != PMINFO_R_OK) {
3695 pkgmgrinfo_appinfo_filter_destroy(handle);
3698 printf("No of capp: %d\n", count);
3699 pkgmgrinfo_appinfo_filter_destroy(handle);
3704 int pkgmgrinfo_appinfo_filter_add_string(pkgmgrinfo_appinfo_filter_h handle,
3705 const char *property, const char *value);
3708 * @fn int pkgmgrinfo_appinfo_filter_foreach_appinfo(pkgmgrinfo_appinfo_filter_h handle, pkgmgrinfo_app_list_cb app_cb, void *user_data)
3709 * @brief This API executes the user supplied callback function for each application that satisfy the filter conditions
3711 * @par This API is for package-manager client application
3712 * @par Sync (or) Async : Synchronous API
3714 * @param[in] handle pointer to the application info filter handle.
3715 * @param[in] app_cb callback function.
3716 * @param[in] user_data user data to be passed to the callback function
3717 * @return 0 if success, error code(<0) if fail
3718 * @retval PMINFO_R_OK success
3719 * @retval PMINFO_R_EINVAL invalid argument
3720 * @retval PMINFO_R_ERROR internal error
3721 * @pre pkgmgrinfo_appinfo_filter_create()
3722 * @post pkgmgrinfo_appinfo_filter_destroy()
3723 * @see pkgmgrinfo_appinfo_filter_count()
3725 int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
3728 pkgmgrinfo_appinfo_get_appid(handle, &appid);
3729 printf("appid : %s\n", appid);
3733 static int get_capp_list()
3736 pkgmgrinfo_appinfo_filter_h handle;
3737 ret = pkgmgrinfo_appinfo_filter_create(&handle);
3738 if (ret != PMINFO_R_OK)
3740 ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp");
3741 if (ret != PMINFO_R_OK) {
3742 pkgmgrinfo_appinfo_filter_destroy(handle);
3745 ret = pkgmgrinfo_appinfo_filter_foreach_appinfo(handle, app_list_cb, NULL);
3746 if (ret != PMINFO_R_OK) {
3747 pkgmgrinfo_appinfo_filter_destroy(handle);
3750 pkgmgrinfo_appinfo_filter_destroy(handle);
3755 int pkgmgrinfo_appinfo_filter_foreach_appinfo(pkgmgrinfo_appinfo_filter_h handle,
3756 pkgmgrinfo_app_list_cb app_cb, void *user_data);
3759 * @fn int pkgmgrinfo_appinfo_filter_count(pkgmgrinfo_appinfo_filter_h handle, int *count)
3760 * @brief This API counts the application that satisfy the filter conditions
3762 * @par This API is for package-manager client application
3763 * @par Sync (or) Async : Synchronous API
3765 * @param[in] handle pointer to the application info filter handle.
3766 * @param[in] count pointer to store count value
3767 * @return 0 if success, error code(<0) if fail
3768 * @retval PMINFO_R_OK success
3769 * @retval PMINFO_R_EINVAL invalid argument
3770 * @retval PMINFO_R_ERROR internal error
3771 * @pre pkgmgrinfo_appinfo_filter_create()
3772 * @post pkgmgrinfo_appinfo_filter_destroy()
3773 * @see pkgmgrinfo_appinfo_filter_foreach_appinfo()
3775 static int get_capp_count()
3779 pkgmgrinfo_appinfo_filter_h handle;
3780 ret = pkgmgrinfo_appinfo_filter_create(&handle);
3781 if (ret != PMINFO_R_OK)
3783 ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp");
3784 if (ret != PMINFO_R_OK) {
3785 pkgmgrinfo_appinfo_filter_destroy(handle);
3788 ret = pkgmgrinfo_appinfo_filter_count(handle, &count);
3789 if (ret != PMINFO_R_OK) {
3790 pkgmgrinfo_appinfo_filter_destroy(handle);
3793 printf("No of capp: %d\n", count);
3794 pkgmgrinfo_appinfo_filter_destroy(handle);
3799 int pkgmgrinfo_appinfo_filter_count(pkgmgrinfo_appinfo_filter_h handle, int *count);
3802 * @fn int pkgmgrinfo_appinfo_metadata_filter_create(pkgmgrinfo_appinfo_metadata_filter_h *handle)
3803 * @brief This API creates the application's metadata information filter handle from db.
3805 * @par This API is for package-manager client application
3806 * @par Sync (or) Async : Synchronous API
3808 * @param[out] handle pointer to the application metadata info filter handle.
3809 * @return 0 if success, error code(<0) if fail
3810 * @retval PMINFO_R_OK success
3811 * @retval PMINFO_R_EINVAL invalid argument
3812 * @retval PMINFO_R_ERROR internal error
3814 * @post pkgmgrinfo_appinfo_metadata_filter_destroy()
3815 * @see pkgmgrinfo_appinfo_metadata_filter_foreach()
3817 int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
3820 pkgmgrinfo_appinfo_get_appid(handle, &appid);
3821 printf("appid : %s\n", appid);
3825 static int get_app_list(const char *mkey, const char *mvalue)
3828 pkgmgrinfo_appinfo_metadata_filter_h handle;
3829 ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle);
3830 if (ret != PMINFO_R_OK)
3832 ret = pkgmgrinfo_appinfo_metadata_filter_add(handle, mkey, mvalue);
3833 if (ret != PMINFO_R_OK) {
3834 pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
3837 ret = pkgmgrinfo_appinfo_metadata_filter_foreach(handle, app_list_cb, NULL);
3838 if (ret != PMINFO_R_OK) {
3839 pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
3842 pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
3847 int pkgmgrinfo_appinfo_metadata_filter_create(pkgmgrinfo_appinfo_metadata_filter_h *handle);
3850 * @fn int pkgmgrinfo_appinfo_metadata_filter_destroy(pkgmgrinfo_appinfo_metadata_filter_h handle)
3851 * @brief This API destroys the application's metadata information filter handle.
3853 * @par This API is for package-manager client application
3854 * @par Sync (or) Async : Synchronous API
3856 * @param[in] handle pointer to the application metadata info filter handle.
3857 * @return 0 if success, error code(<0) if fail
3858 * @retval PMINFO_R_OK success
3859 * @retval PMINFO_R_EINVAL invalid argument
3860 * @retval PMINFO_R_ERROR internal error
3861 * @pre pkgmgrinfo_appinfo_metadata_filter_create()
3863 * @see pkgmgrinfo_appinfo_metadata_filter_foreach()
3865 int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
3868 pkgmgrinfo_appinfo_get_appid(handle, &appid);
3869 printf("appid : %s\n", appid);
3873 static int get_app_list(const char *mkey, const char *mvalue)
3876 pkgmgrinfo_appinfo_metadata_filter_h handle;
3877 ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle);
3878 if (ret != PMINFO_R_OK)
3880 ret = pkgmgrinfo_appinfo_metadata_filter_add(handle, mkey, mvalue);
3881 if (ret != PMINFO_R_OK) {
3882 pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
3885 ret = pkgmgrinfo_appinfo_metadata_filter_foreach(handle, app_list_cb, NULL);
3886 if (ret != PMINFO_R_OK) {
3887 pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
3890 pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
3895 int pkgmgrinfo_appinfo_metadata_filter_destroy(pkgmgrinfo_appinfo_metadata_filter_h handle);
3898 * @fn int pkgmgrinfo_appinfo_metadata_filter_add(pkgmgrinfo_appinfo_metadata_filter_h handle, const char *key, const char *value)
3899 * @brief This API adds filter condition for the query API. The query will search the entire application metadata information collected from
3900 * the manifest file of all the installed packages. You can specify value as NULL to search based on key only.
3902 * @par This API is for package-manager client application
3903 * @par Sync (or) Async : Synchronous API
3905 * @param[in] handle pointer to the application metadata info filter handle.
3906 * @param[in] key pointer to metadata key
3907 * @param[in] value pointer to metadata value
3908 * @return 0 if success, error code(<0) if fail
3909 * @retval PMINFO_R_OK success
3910 * @retval PMINFO_R_EINVAL invalid argument
3911 * @retval PMINFO_R_ERROR internal error
3912 * @pre pkgmgrinfo_appinfo_metadata_filter_create()
3913 * @post pkgmgrinfo_appinfo_metadata_filter_foreach(), pkgmgrinfo_appinfo_metadata_filter_destroy()
3914 * @see pkgmgrinfo_appinfo_metadata_filter_foreach()
3916 int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
3919 pkgmgrinfo_appinfo_get_appid(handle, &appid);
3920 printf("appid : %s\n", appid);
3924 static int get_app_list(const char *mkey, const char *mvalue)
3927 pkgmgrinfo_appinfo_metadata_filter_h handle;
3928 ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle);
3929 if (ret != PMINFO_R_OK)
3931 ret = pkgmgrinfo_appinfo_metadata_filter_add(handle, mkey, mvalue);
3932 if (ret != PMINFO_R_OK) {
3933 pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
3936 ret = pkgmgrinfo_appinfo_metadata_filter_foreach(handle, app_list_cb, NULL);
3937 if (ret != PMINFO_R_OK) {
3938 pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
3941 pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
3946 int pkgmgrinfo_appinfo_metadata_filter_add(pkgmgrinfo_appinfo_metadata_filter_h handle,
3947 const char *key, const char *value);
3950 * @fn int pkgmgrinfo_appinfo_metadata_filter_foreach(pkgmgrinfo_appinfo_metadata_filter_h handle, pkgmgrinfo_app_list_cb app_cb, void *user_data)
3951 * @brief This API executes the filter query. The query will search the entire application metadata information collected from
3952 * the manifest file of all the installed packages. For each application returned by the query, the callback will be called. If callback returns
3953 * negative value, no more callbacks will be called and API will return.
3955 * @par This API is for package-manager client application
3956 * @par Sync (or) Async : Synchronous API
3958 * @param[in] handle pointer to the application metadata info filter handle.
3959 * @param[in] app_cb function pointer to callback
3960 * @param[in] user_data pointer to user data
3961 * @return 0 if success, error code(<0) if fail
3962 * @retval PMINFO_R_OK success
3963 * @retval PMINFO_R_EINVAL invalid argument
3964 * @retval PMINFO_R_ERROR internal error
3965 * @pre pkgmgrinfo_appinfo_metadata_filter_create()
3966 * @post pkgmgrinfo_appinfo_metadata_filter_destroy()
3968 int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
3971 pkgmgrinfo_appinfo_get_appid(handle, &appid);
3972 printf("appid : %s\n", appid);
3976 static int get_app_list(const char *mkey, const char *mvalue)
3979 pkgmgrinfo_appinfo_metadata_filter_h handle;
3980 ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle);
3981 if (ret != PMINFO_R_OK)
3983 ret = pkgmgrinfo_appinfo_metadata_filter_add(handle, mkey, mvalue);
3984 if (ret != PMINFO_R_OK) {
3985 pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
3988 ret = pkgmgrinfo_appinfo_metadata_filter_foreach(handle, app_list_cb, NULL);
3989 if (ret != PMINFO_R_OK) {
3990 pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
3993 pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
3998 int pkgmgrinfo_appinfo_metadata_filter_foreach(pkgmgrinfo_appinfo_metadata_filter_h handle,
3999 pkgmgrinfo_app_list_cb app_cb, void *user_data);
4002 * @fn int pkgmgrinfo_pkginfo_create_certinfo(pkgmgrinfo_certinfo_h *handle)
4003 * @brief This API creates the package cert information handle to get data from db.
4005 * @par This API is for package-manager client application
4006 * @par Sync (or) Async : Synchronous API
4008 * @param[out] handle pointer to the package cert handle.
4009 * @return 0 if success, error code(<0) if fail
4010 * @retval PMINFO_R_OK success
4011 * @retval PMINFO_R_EINVAL invalid argument
4012 * @retval PMINFO_R_ERROR internal error
4014 * @post pkgmgrinfo_pkginfo_destroy_certinfo()
4015 * @see pkgmgrinfo_pkginfo_get_cert_value()
4016 * @see pkgmgrinfo_pkginfo_load_certinfo()
4018 static int get_cert_info(const char *pkgid)
4021 pkgmgrinfo_certinfo_h handle;
4022 char *auth_cert = NULL;
4023 ret = pkgmgrinfo_pkginfo_create_certinfo(&handle);
4024 if (ret != PMINFO_R_OK)
4026 ret = pkgmgrinfo_pkginfo_load_certinfo(pkgid, handle);
4027 if (ret != PMINFO_R_OK) {
4028 pkgmgrinfo_pkginfo_destroy_certinfo(handle);
4031 ret = pkgmgrinfo_pkginfo_get_cert_value(handle, PMINFO_AUTHOR_ROOT_CERT, &auth_cert);
4032 if (ret != PMINFO_R_OK) {
4033 pkgmgrinfo_pkginfo_destroy_certinfo(handle);
4036 printf("Author root certificate: %s\n", auth_root);
4037 pkgmgrinfo_pkginfo_destroy_certinfo(handle);
4042 int pkgmgrinfo_pkginfo_create_certinfo(pkgmgrinfo_certinfo_h *handle);
4045 * @fn int pkgmgrinfo_pkginfo_load_certinfo(const char *pkgid, pkgmgrinfo_certinfo_h handle)
4046 * @brief This API loads the package cert information handle with data from db.
4048 * @par This API is for package-manager client application
4049 * @par Sync (or) Async : Synchronous API
4051 * @param[in] pkgid pointer to the package ID.
4052 * @param[in] handle pointer to the package cert handle.
4053 * @return 0 if success, error code(<0) if fail
4054 * @retval PMINFO_R_OK success
4055 * @retval PMINFO_R_EINVAL invalid argument
4056 * @retval PMINFO_R_ERROR internal error
4057 * @pre pkgmgrinfo_pkginfo_create_certinfo()
4058 * @post pkgmgrinfo_pkginfo_destroy_certinfo()
4059 * @see pkgmgrinfo_pkginfo_get_cert_value()
4061 static int get_cert_info(const char *pkgid)
4064 pkgmgrinfo_certinfo_h handle;
4065 char *auth_cert = NULL;
4066 ret = pkgmgrinfo_pkginfo_create_certinfo(&handle);
4067 if (ret != PMINFO_R_OK)
4069 ret = pkgmgrinfo_pkginfo_load_certinfo(pkgid, handle);
4070 if (ret != PMINFO_R_OK) {
4071 pkgmgrinfo_pkginfo_destroy_certinfo(handle);
4074 ret = pkgmgrinfo_pkginfo_get_cert_value(handle, PMINFO_AUTHOR_ROOT_CERT, &auth_cert);
4075 if (ret != PMINFO_R_OK) {
4076 pkgmgrinfo_pkginfo_destroy_certinfo(handle);
4079 printf("Author root certificate: %s\n", auth_root);
4080 pkgmgrinfo_pkginfo_destroy_certinfo(handle);
4085 int pkgmgrinfo_pkginfo_load_certinfo(const char *pkgid, pkgmgrinfo_certinfo_h handle);
4088 * @fn int pkgmgrinfo_pkginfo_get_cert_value(pkgmgrinfo_certinfo_h handle, pkgmgrinfo_cert_type cert_type, const char **cert_value)
4089 * @brief This API gets the package cert information from the handle
4091 * @par This API is for package-manager client application
4092 * @par Sync (or) Async : Synchronous API
4094 * @param[in] handle pointer to the package cert handle.
4095 * @param[in] cert_type certificate type
4096 * @param[out] cert_value pointer to hold certificate value
4097 * @return 0 if success, error code(<0) if fail
4098 * @retval PMINFO_R_OK success
4099 * @retval PMINFO_R_EINVAL invalid argument
4100 * @retval PMINFO_R_ERROR internal error
4101 * @pre pkgmgrinfo_pkginfo_create_certinfo()
4102 * @post pkgmgrinfo_pkginfo_destroy_certinfo()
4103 * @see pkgmgrinfo_pkginfo_load_certinfo()
4105 static int get_cert_info(const char *pkgid)
4108 pkgmgrinfo_certinfo_h handle;
4109 char *auth_cert = NULL;
4110 ret = pkgmgrinfo_pkginfo_create_certinfo(&handle);
4111 if (ret != PMINFO_R_OK)
4113 ret = pkgmgrinfo_pkginfo_load_certinfo(pkgid, handle);
4114 if (ret != PMINFO_R_OK) {
4115 pkgmgrinfo_pkginfo_destroy_certinfo(handle);
4118 ret = pkgmgrinfo_pkginfo_get_cert_value(handle, PMINFO_AUTHOR_ROOT_CERT, &auth_cert);
4119 if (ret != PMINFO_R_OK) {
4120 pkgmgrinfo_pkginfo_destroy_certinfo(handle);
4123 printf("Author root certificate: %s\n", auth_root);
4124 pkgmgrinfo_pkginfo_destroy_certinfo(handle);
4129 int pkgmgrinfo_pkginfo_get_cert_value(pkgmgrinfo_certinfo_h handle, pkgmgrinfo_cert_type cert_type, const char **cert_value);
4132 * @fn int pkgmgrinfo_pkginfo_destroy_certinfo(pkgmgrinfo_certinfo_h handle)
4133 * @brief This API destroys the package cert information handle freeing up all the resources
4135 * @par This API is for package-manager client application
4136 * @par Sync (or) Async : Synchronous API
4138 * @param[in] handle pointer to the package cert handle.
4139 * @return 0 if success, error code(<0) if fail
4140 * @retval PMINFO_R_OK success
4141 * @retval PMINFO_R_EINVAL invalid argument
4142 * @retval PMINFO_R_ERROR internal error
4143 * @pre pkgmgrinfo_pkginfo_create_certinfo()
4145 * @see pkgmgrinfo_pkginfo_load_certinfo()
4147 static int get_cert_info(const char *pkgid)
4150 pkgmgrinfo_certinfo_h handle;
4151 char *auth_cert = NULL;
4152 ret = pkgmgrinfo_pkginfo_create_certinfo(&handle);
4153 if (ret != PMINFO_R_OK)
4155 ret = pkgmgrinfo_pkginfo_load_certinfo(pkgid, handle);
4156 if (ret != PMINFO_R_OK) {
4157 pkgmgrinfo_pkginfo_destroy_certinfo(handle);
4160 ret = pkgmgrinfo_pkginfo_get_cert_value(handle, PMINFO_AUTHOR_ROOT_CERT, &auth_cert);
4161 if (ret != PMINFO_R_OK) {
4162 pkgmgrinfo_pkginfo_destroy_certinfo(handle);
4165 printf("Author root certificate: %s\n", auth_root);
4166 pkgmgrinfo_pkginfo_destroy_certinfo(handle);
4171 int pkgmgrinfo_pkginfo_destroy_certinfo(pkgmgrinfo_certinfo_h handle);
4174 * @fn int pkgmgrinfo_delete_certinfo(const char *pkgid)
4175 * @brief This API deletes the package cert information from DB
4177 * @par This API is for package-manager client application
4178 * @par Sync (or) Async : Synchronous API
4180 * @param[in] pkgid pointer to the package ID.
4181 * @return 0 if success, error code(<0) if fail
4182 * @retval PMINFO_R_OK success
4183 * @retval PMINFO_R_EINVAL invalid argument
4184 * @retval PMINFO_R_ERROR internal error
4188 static int delete_cert_info(const char *pkgid)
4191 ret = pkgmgrinfo_delete_certinfo(pkgid);
4192 if (ret != PMINFO_R_OK)
4198 int pkgmgrinfo_delete_certinfo(const char *pkgid);
4201 * @fn int pkgmgrinfo_create_pkgdbinfo(const char *pkgid, pkgmgrinfo_pkgdbinfo_h *handle)
4202 * @brief This API creates the package db information handle to set data in db.
4204 * @par This API is for package-manager client application
4205 * @par Sync (or) Async : Synchronous API
4207 * @param[in] pkgid pointer to the package ID.
4208 * @param[out] handle pointer to the package db info handle.
4209 * @return 0 if success, error code(<0) if fail
4210 * @retval PMINFO_R_OK success
4211 * @retval PMINFO_R_EINVAL invalid argument
4212 * @retval PMINFO_R_ERROR internal error
4214 * @post pkgmgrinfo_destroy_pkgdbinfo()
4215 * @see pkgmgrinfo_save_pkgdbinfo()
4216 * @see pkgmgrinfo_set_type_to_pkgdbinfo()
4218 static int set_pkg_in_db(const char *pkgid)
4221 pkgmgrinfo_pkgdbinfo_h handle;
4222 ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
4223 if (ret != PMINFO_R_OK)
4225 ret = pkgmgrinfo_set_version_to_pkgdbinfo(handle, "0.0.1");
4226 if (ret != PMINFO_R_OK) {
4227 pkgmgrinfo_destroy_pkgdbinfo(handle);
4230 ret = pkgmgrinfo_save_pkgdbinfo(handle);
4231 if (ret != PMINFO_R_OK) {
4232 pkgmgrinfo_destroy_pkgdbinfo(handle);
4235 pkgmgrinfo_destroy_pkgdbinfo(handle);
4240 int pkgmgrinfo_create_pkgdbinfo(const char *pkgid, pkgmgrinfo_pkgdbinfo_h *handle);
4243 * @fn int pkgmgrinfo_set_type_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *type)
4244 * @brief This API sets the package type in db handle
4246 * @par This API is for package-manager client application
4247 * @par Sync (or) Async : Synchronous API
4249 * @param[in] handle pointer to the pkgdbinfo handle.
4250 * @param[in] type pointer to the package type.
4251 * @return 0 if success, error code(<0) if fail
4252 * @retval PMINFO_R_OK success
4253 * @retval PMINFO_R_EINVAL invalid argument
4254 * @retval PMINFO_R_ERROR internal error
4255 * @pre pkgmgrinfo_create_pkgdbinfo()
4256 * @post pkgmgrinfo_destroy_pkgdbinfo()
4257 * @see pkgmgrinfo_save_pkgdbinfo()
4258 * @see pkgmgrinfo_set_version_to_pkgdbinfo()
4260 static int set_pkg_type_in_db(const char *pkgid)
4263 pkgmgrinfo_pkgdbinfo_h handle;
4264 ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
4265 if (ret != PMINFO_R_OK)
4267 ret = pkgmgrinfo_set_type_to_pkgdbinfo(handle, "wgt");
4268 if (ret != PMINFO_R_OK) {
4269 pkgmgrinfo_destroy_pkgdbinfo(handle);
4272 ret = pkgmgrinfo_save_pkgdbinfo(handle);
4273 if (ret != PMINFO_R_OK) {
4274 pkgmgrinfo_destroy_pkgdbinfo(handle);
4277 pkgmgrinfo_destroy_pkgdbinfo(handle);
4282 int pkgmgrinfo_set_type_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *type);
4285 * @fn int pkgmgrinfo_set_version_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *version)
4286 * @brief This API sets the package version in db handle
4288 * @par This API is for package-manager client application
4289 * @par Sync (or) Async : Synchronous API
4291 * @param[in] handle pointer to the pkgdbinfo handle.
4292 * @param[in] version pointer to the package version
4293 * @return 0 if success, error code(<0) if fail
4294 * @retval PMINFO_R_OK success
4295 * @retval PMINFO_R_EINVAL invalid argument
4296 * @retval PMINFO_R_ERROR internal error
4297 * @pre pkgmgrinfo_create_pkgdbinfo()
4298 * @post pkgmgrinfo_destroy_pkgdbinfo()
4299 * @see pkgmgrinfo_save_pkgdbinfo()
4300 * @see pkgmgrinfo_set_type_to_pkgdbinfo()
4302 static int set_pkg_version_in_db(const char *pkgid)
4305 pkgmgrinfo_pkgdbinfo_h handle;
4306 ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
4307 if (ret != PMINFO_R_OK)
4309 ret = pkgmgrinfo_set_version_to_pkgdbinfo(handle, "0.0.1");
4310 if (ret != PMINFO_R_OK) {
4311 pkgmgrinfo_destroy_pkgdbinfo(handle);
4314 ret = pkgmgrinfo_save_pkgdbinfo(handle);
4315 if (ret != PMINFO_R_OK) {
4316 pkgmgrinfo_destroy_pkgdbinfo(handle);
4319 pkgmgrinfo_destroy_pkgdbinfo(handle);
4324 int pkgmgrinfo_set_version_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *version);
4327 * @fn int pkgmgrinfo_set_install_location_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, INSTALL_LOCATION location)
4328 * @brief This API sets the package install location in db handle
4330 * @par This API is for package-manager client application
4331 * @par Sync (or) Async : Synchronous API
4333 * @param[in] handle pointer to the pkgdbinfo handle.
4334 * @param[in] location package install location
4335 * @return 0 if success, error code(<0) if fail
4336 * @retval PMINFO_R_OK success
4337 * @retval PMINFO_R_EINVAL invalid argument
4338 * @retval PMINFO_R_ERROR internal error
4339 * @pre pkgmgrinfo_create_pkgdbinfo()
4340 * @post pkgmgrinfo_destroy_pkgdbinfo()
4341 * @see pkgmgrinfo_save_pkgdbinfo()
4342 * @see pkgmgrinfo_set_type_to_pkgdbinfo()
4344 static int set_pkg_install_location_in_db(const char *pkgid)
4347 pkgmgrinfo_pkgdbinfo_h handle;
4348 ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
4349 if (ret != PMINFO_R_OK)
4351 ret = pkgmgrinfo_set_install_location_to_pkgdbinfo(handle, INSTALL_INTERNAL);
4352 if (ret != PMINFO_R_OK) {
4353 pkgmgrinfo_destroy_pkgdbinfo(handle);
4356 ret = pkgmgrinfo_save_pkgdbinfo(handle);
4357 if (ret != PMINFO_R_OK) {
4358 pkgmgrinfo_destroy_pkgdbinfo(handle);
4361 pkgmgrinfo_destroy_pkgdbinfo(handle);
4366 int pkgmgrinfo_set_install_location_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, INSTALL_LOCATION location);
4369 * @fn int pkgmgrinfo_set_size_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *size)
4370 * @brief This API sets the package size in db handle
4372 * @par This API is for package-manager client application
4373 * @par Sync (or) Async : Synchronous API
4375 * @param[in] handle pointer to the pkgdbinfo handle.
4376 * @param[in] size pointer to the package size
4377 * @return 0 if success, error code(<0) if fail
4378 * @retval PMINFO_R_OK success
4379 * @retval PMINFO_R_EINVAL invalid argument
4380 * @retval PMINFO_R_ERROR internal error
4381 * @pre pkgmgrinfo_create_pkgdbinfo()
4382 * @post pkgmgrinfo_destroy_pkgdbinfo()
4383 * @see pkgmgrinfo_save_pkgdbinfo()
4384 * @see pkgmgrinfo_set_type_to_pkgdbinfo()
4386 static int set_pkg_size_in_db(const char *pkgid)
4389 pkgmgrinfo_pkgdbinfo_h handle;
4390 ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
4391 if (ret != PMINFO_R_OK)
4393 ret = pkgmgrinfo_set_size_to_pkgdbinfo(handle, "15");
4394 if (ret != PMINFO_R_OK) {
4395 pkgmgrinfo_destroy_pkgdbinfo(handle);
4398 ret = pkgmgrinfo_save_pkgdbinfo(handle);
4399 if (ret != PMINFO_R_OK) {
4400 pkgmgrinfo_destroy_pkgdbinfo(handle);
4403 pkgmgrinfo_destroy_pkgdbinfo(handle);
4408 int pkgmgrinfo_set_size_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *size);
4411 * @fn int pkgmgrinfo_set_label_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *label, const char *locale)
4412 * @brief This API sets the package label in db handle
4414 * @par This API is for package-manager client application
4415 * @par Sync (or) Async : Synchronous API
4417 * @param[in] handle pointer to the pkgdbinfo handle.
4418 * @param[in] label pointer to the package label
4419 * @param[in] locale pointer to the locale
4420 * @return 0 if success, error code(<0) if fail
4421 * @retval PMINFO_R_OK success
4422 * @retval PMINFO_R_EINVAL invalid argument
4423 * @retval PMINFO_R_ERROR internal error
4424 * @pre pkgmgrinfo_create_pkgdbinfo()
4425 * @post pkgmgrinfo_destroy_pkgdbinfo()
4426 * @see pkgmgrinfo_save_pkgdbinfo()
4427 * @see pkgmgrinfo_set_type_to_pkgdbinfo()
4429 static int set_pkg_label_in_db(const char *pkgid)
4432 pkgmgrinfo_pkgdbinfo_h handle;
4433 ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
4434 if (ret != PMINFO_R_OK)
4436 ret = pkgmgrinfo_set_label_to_pkgdbinfo(handle, "helloworld", "en-us");
4437 if (ret != PMINFO_R_OK) {
4438 pkgmgrinfo_destroy_pkgdbinfo(handle);
4441 ret = pkgmgrinfo_save_pkgdbinfo(handle);
4442 if (ret != PMINFO_R_OK) {
4443 pkgmgrinfo_destroy_pkgdbinfo(handle);
4446 pkgmgrinfo_destroy_pkgdbinfo(handle);
4451 int pkgmgrinfo_set_label_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *label, const char *locale);
4454 * @fn int pkgmgrinfo_set_icon_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *icon, const char *locale)
4455 * @brief This API sets the package icon in db handle
4457 * @par This API is for package-manager client application
4458 * @par Sync (or) Async : Synchronous API
4460 * @param[in] handle pointer to the pkgdbinfo handle.
4461 * @param[in] icon pointer to the package icon
4462 * @param[in] locale pointer to the locale
4463 * @return 0 if success, error code(<0) if fail
4464 * @retval PMINFO_R_OK success
4465 * @retval PMINFO_R_EINVAL invalid argument
4466 * @retval PMINFO_R_ERROR internal error
4467 * @pre pkgmgrinfo_create_pkgdbinfo()
4468 * @post pkgmgrinfo_destroy_pkgdbinfo()
4469 * @see pkgmgrinfo_save_pkgdbinfo()
4470 * @see pkgmgrinfo_set_type_to_pkgdbinfo()
4472 static int set_pkg_icon_in_db(const char *pkgid)
4475 pkgmgrinfo_pkgdbinfo_h handle;
4476 ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
4477 if (ret != PMINFO_R_OK)
4479 ret = pkgmgrinfo_set_icon_to_pkgdbinfo(handle, "helloworld.png", "en-us");
4480 if (ret != PMINFO_R_OK) {
4481 pkgmgrinfo_destroy_pkgdbinfo(handle);
4484 ret = pkgmgrinfo_save_pkgdbinfo(handle);
4485 if (ret != PMINFO_R_OK) {
4486 pkgmgrinfo_destroy_pkgdbinfo(handle);
4489 pkgmgrinfo_destroy_pkgdbinfo(handle);
4494 int pkgmgrinfo_set_icon_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *icon, const char *locale);
4497 * @fn int pkgmgrinfo_set_description_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *description, const char *locale)
4498 * @brief This API sets the package description in db handle
4500 * @par This API is for package-manager client application
4501 * @par Sync (or) Async : Synchronous API
4503 * @param[in] handle pointer to the pkgdbinfo handle.
4504 * @param[in] description pointer to the package description
4505 * @param[in] locale pointer to the locale
4506 * @return 0 if success, error code(<0) if fail
4507 * @retval PMINFO_R_OK success
4508 * @retval PMINFO_R_EINVAL invalid argument
4509 * @retval PMINFO_R_ERROR internal error
4510 * @pre pkgmgrinfo_create_pkgdbinfo()
4511 * @post pkgmgrinfo_destroy_pkgdbinfo()
4512 * @see pkgmgrinfo_save_pkgdbinfo()
4513 * @see pkgmgrinfo_set_type_to_pkgdbinfo()
4515 static int set_pkg_description_in_db(const char *pkgid)
4518 pkgmgrinfo_pkgdbinfo_h handle;
4519 ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
4520 if (ret != PMINFO_R_OK)
4522 ret = pkgmgrinfo_set_description_to_pkgdbinfo(handle, "helloworld application", "en-us");
4523 if (ret != PMINFO_R_OK) {
4524 pkgmgrinfo_destroy_pkgdbinfo(handle);
4527 ret = pkgmgrinfo_save_pkgdbinfo(handle);
4528 if (ret != PMINFO_R_OK) {
4529 pkgmgrinfo_destroy_pkgdbinfo(handle);
4532 pkgmgrinfo_destroy_pkgdbinfo(handle);
4537 int pkgmgrinfo_set_description_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *description, const char *locale);
4540 * @fn int pkgmgrinfo_set_author_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *author_name,
4541 const char *author_email, const char *author_href, const char *locale)
4542 * @brief This API sets the package author info in db handle
4544 * @par This API is for package-manager client application
4545 * @par Sync (or) Async : Synchronous API
4547 * @param[in] handle pointer to the pkgdbinfo handle.
4548 * @param[in] author_name pointer to the package author name
4549 * @param[in] author_email pointer to the package author email
4550 * @param[in] author_href pointer to the package author href
4551 * @param[in] locale pointer to the locale
4552 * @return 0 if success, error code(<0) if fail
4553 * @retval PMINFO_R_OK success
4554 * @retval PMINFO_R_EINVAL invalid argument
4555 * @retval PMINFO_R_ERROR internal error
4556 * @pre pkgmgrinfo_create_pkgdbinfo()
4557 * @post pkgmgrinfo_destroy_pkgdbinfo()
4558 * @see pkgmgrinfo_save_pkgdbinfo()
4559 * @see pkgmgrinfo_set_type_to_pkgdbinfo()
4561 static int set_pkg_author_in_db(const char *pkgid)
4564 pkgmgrinfo_pkgdbinfo_h handle;
4565 ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
4566 if (ret != PMINFO_R_OK)
4568 ret = pkgmgrinfo_set_author_to_pkgdbinfo(handle, "John", "john@samsung.com", "www.samsung.com", "en-us");
4569 if (ret != PMINFO_R_OK) {
4570 pkgmgrinfo_destroy_pkgdbinfo(handle);
4573 ret = pkgmgrinfo_save_pkgdbinfo(handle);
4574 if (ret != PMINFO_R_OK) {
4575 pkgmgrinfo_destroy_pkgdbinfo(handle);
4578 pkgmgrinfo_destroy_pkgdbinfo(handle);
4583 int pkgmgrinfo_set_author_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *author_name,
4584 const char *author_email, const char *author_href, const char *locale);
4587 * @fn int pkgmgrinfo_set_removable_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, int removable)
4588 * @brief This API sets the package 'removable' value in db handle
4590 * @par This API is for package-manager client application
4591 * @par Sync (or) Async : Synchronous API
4593 * @param[in] handle pointer to the pkgdbinfo handle.
4594 * @param[in] removable package removable value
4595 * @return 0 if success, error code(<0) if fail
4596 * @retval PMINFO_R_OK success
4597 * @retval PMINFO_R_EINVAL invalid argument
4598 * @retval PMINFO_R_ERROR internal error
4599 * @pre pkgmgrinfo_create_pkgdbinfo()
4600 * @post pkgmgrinfo_destroy_pkgdbinfo()
4601 * @see pkgmgrinfo_save_pkgdbinfo()
4602 * @see pkgmgrinfo_set_type_to_pkgdbinfo()
4604 static int set_pkg_removable_in_db(const char *pkgid)
4607 pkgmgrinfo_pkgdbinfo_h handle;
4608 ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
4609 if (ret != PMINFO_R_OK)
4611 ret = pkgmgrinfo_set_removable_to_pkgdbinfo(handle, 1);
4612 if (ret != PMINFO_R_OK) {
4613 pkgmgrinfo_destroy_pkgdbinfo(handle);
4616 ret = pkgmgrinfo_save_pkgdbinfo(handle);
4617 if (ret != PMINFO_R_OK) {
4618 pkgmgrinfo_destroy_pkgdbinfo(handle);
4621 pkgmgrinfo_destroy_pkgdbinfo(handle);
4626 int pkgmgrinfo_set_removable_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, int removable);
4629 * @fn int pkgmgrinfo_set_preload_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, int preload)
4630 * @brief This API sets the package 'preload' value in db handle
4632 * @par This API is for package-manager client application
4633 * @par Sync (or) Async : Synchronous API
4635 * @param[in] handle pointer to the pkgdbinfo handle.
4636 * @param[in] preload package preload value
4637 * @return 0 if success, error code(<0) if fail
4638 * @retval PMINFO_R_OK success
4639 * @retval PMINFO_R_EINVAL invalid argument
4640 * @retval PMINFO_R_ERROR internal error
4641 * @pre pkgmgrinfo_create_pkgdbinfo()
4642 * @post pkgmgrinfo_destroy_pkgdbinfo()
4643 * @see pkgmgrinfo_save_pkgdbinfo()
4644 * @see pkgmgrinfo_set_type_to_pkgdbinfo()
4646 static int set_pkg_preload_in_db(const char *pkgid)
4649 pkgmgrinfo_pkgdbinfo_h handle;
4650 ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
4651 if (ret != PMINFO_R_OK)
4653 ret = pkgmgrinfo_set_preload_to_pkgdbinfo(handle, 1);
4654 if (ret != PMINFO_R_OK) {
4655 pkgmgrinfo_destroy_pkgdbinfo(handle);
4658 ret = pkgmgrinfo_save_pkgdbinfo(handle);
4659 if (ret != PMINFO_R_OK) {
4660 pkgmgrinfo_destroy_pkgdbinfo(handle);
4663 pkgmgrinfo_destroy_pkgdbinfo(handle);
4668 int pkgmgrinfo_set_preload_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, int preload);
4671 * @fn int pkgmgrinfo_set_installed_storage_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, INSTALL_LOCATION location)
4672 * @brief This API sets the package 'installed_storage' value in db handle
4674 * @par This API is for package-manager client application
4675 * @par Sync (or) Async : Synchronous API
4677 * @param[in] handle pointer to the pkgdbinfo handle.
4678 * @param[in] location installed_storage value
4679 * @return 0 if success, error code(<0) if fail
4680 * @retval PMINFO_R_OK success
4681 * @retval PMINFO_R_EINVAL invalid argument
4682 * @retval PMINFO_R_ERROR internal error
4683 * @pre pkgmgrinfo_create_pkgdbinfo()
4684 * @post pkgmgrinfo_destroy_pkgdbinfo()
4685 * @see pkgmgrinfo_save_pkgdbinfo()
4687 static int set_pkg_installed_storage_in_db(const char *pkgid)
4690 pkgmgrinfo_pkgdbinfo_h handle;
4691 ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
4692 if (ret != PMINFO_R_OK)
4694 ret = pkgmgrinfo_set_installed_storage_to_pkgdbinfo(handle, INSTALL_INTERNAL);
4695 if (ret != PMINFO_R_OK) {
4696 pkgmgrinfo_destroy_pkgdbinfo(handle);
4699 ret = pkgmgrinfo_save_pkgdbinfo(handle);
4700 if (ret != PMINFO_R_OK) {
4701 pkgmgrinfo_destroy_pkgdbinfo(handle);
4704 pkgmgrinfo_destroy_pkgdbinfo(handle);
4709 int pkgmgrinfo_set_installed_storage_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, INSTALL_LOCATION location);
4712 * @fn int pkgmgrinfo_save_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle)
4713 * @brief This API saves all the information from the handle to the DB.
4715 * @par This API is for package-manager client application
4716 * @par Sync (or) Async : Synchronous API
4718 * @param[in] handle pointer to the package db info handle.
4719 * @return 0 if success, error code(<0) if fail
4720 * @retval PMINFO_R_OK success
4721 * @retval PMINFO_R_EINVAL invalid argument
4722 * @retval PMINFO_R_ERROR internal error
4723 * @pre pkgmgrinfo_create_pkgdbinfo()
4724 * @post pkgmgrinfo_destroy_pkgdbinfo()
4725 * @see pkgmgrinfo_set_type_to_pkgdbinfo()
4727 static int set_pkg_in_db(const char *pkgid)
4730 pkgmgrinfo_pkgdbinfo_h handle;
4731 ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
4732 if (ret != PMINFO_R_OK)
4734 ret = pkgmgrinfo_set_version_to_pkgdbinfo(handle, "0.0.1");
4735 if (ret != PMINFO_R_OK) {
4736 pkgmgrinfo_destroy_pkgdbinfo(handle);
4739 ret = pkgmgrinfo_save_pkgdbinfo(handle);
4740 if (ret != PMINFO_R_OK) {
4741 pkgmgrinfo_destroy_pkgdbinfo(handle);
4744 pkgmgrinfo_destroy_pkgdbinfo(handle);
4749 int pkgmgrinfo_save_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle);
4752 * @fn int pkgmgrinfo_destroy_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle)
4753 * @brief This API destroys the package db information handle freeing up all the resources
4755 * @par This API is for package-manager client application
4756 * @par Sync (or) Async : Synchronous API
4758 * @param[in] handle pointer to the package db info handle.
4759 * @return 0 if success, error code(<0) if fail
4760 * @retval PMINFO_R_OK success
4761 * @retval PMINFO_R_EINVAL invalid argument
4762 * @retval PMINFO_R_ERROR internal error
4763 * @pre pkgmgrinfo_create_pkgdbinfo()
4765 * @see pkgmgrinfo_save_pkgdbinfo()
4766 * @see pkgmgrinfo_set_type_to_pkgdbinfo()
4768 static int set_pkg_in_db(const char *pkgid)
4771 pkgmgrinfo_pkgdbinfo_h handle;
4772 ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
4773 if (ret != PMINFO_R_OK)
4775 ret = pkgmgrinfo_set_version_to_pkgdbinfo(handle, "0.0.1");
4776 if (ret != PMINFO_R_OK) {
4777 pkgmgrinfo_destroy_pkgdbinfo(handle);
4780 ret = pkgmgrinfo_save_pkgdbinfo(handle);
4781 if (ret != PMINFO_R_OK) {
4782 pkgmgrinfo_destroy_pkgdbinfo(handle);
4785 pkgmgrinfo_destroy_pkgdbinfo(handle);
4790 int pkgmgrinfo_destroy_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle);
4794 * @fn int pkgmgrinfo_create_certinfo_set_handle(pkgmgrinfo_instcertinfo_h *handle)
4795 * @brief This API creates the package cert information handle to set data in db.
4797 * @par This API is for package-manager client application
4798 * @par Sync (or) Async : Synchronous API
4800 * @param[out] handle pointer to the package cert handle.
4801 * @return 0 if success, error code(<0) if fail
4802 * @retval PMINFO_R_OK success
4803 * @retval PMINFO_R_EINVAL invalid argument
4804 * @retval PMINFO_R_ERROR internal error
4806 * @post pkgmgrinfo_destroy_certinfo_set_handle()
4807 * @see pkgmgrinfo_set_cert_value()
4808 * @see pkgmgrinfo_save_certinfo()
4810 static int set_cert_in_db(const char *pkgid)
4813 pkgmgrinfo_instcertinfo_h handle;
4814 ret = pkgmgrinfo_create_certinfo_set_handle(&handle);
4815 if (ret != PMINFO_R_OK)
4817 ret = pkgmgrinfo_set_cert_value(handle, PMINFO_SET_AUTHOR_ROOT_CERT, "author root certificate");
4818 if (ret != PMINFO_R_OK) {
4819 pkgmgrinfo_destroy_certinfo_set_handle(handle);
4822 ret = pkgmgrinfo_save_pkgdbinfo(pkgid, handle);
4823 if (ret != PMINFO_R_OK) {
4824 pkgmgrinfo_destroy_certinfo_set_handle(handle);
4827 pkgmgrinfo_destroy_certinfo_set_handle(handle);
4832 int pkgmgrinfo_create_certinfo_set_handle(pkgmgrinfo_instcertinfo_h *handle);
4835 * @fn int pkgmgrinfo_set_cert_value(pkgmgrinfo_instcertinfo_h handle, pkgmgrinfo_instcert_type cert_type, char *cert_value)
4836 * @brief This API sets the package cert information in the handle.
4838 * @par This API is for package-manager client application
4839 * @par Sync (or) Async : Synchronous API
4841 * @param[in] handle pointer to the package cert handle.
4842 * @param[in] cert_type certificate type.
4843 * @param[in] cert_value certificate value.
4844 * @return 0 if success, error code(<0) if fail
4845 * @retval PMINFO_R_OK success
4846 * @retval PMINFO_R_EINVAL invalid argument
4847 * @retval PMINFO_R_ERROR internal error
4848 * @pre pkgmgrinfo_create_certinfo_set_handle()
4849 * @post pkgmgrinfo_destroy_certinfo_set_handle()
4850 * @see pkgmgrinfo_save_certinfo()
4852 static int set_cert_in_db(const char *pkgid)
4855 pkgmgrinfo_instcertinfo_h handle;
4856 ret = pkgmgrinfo_create_certinfo_set_handle(&handle);
4857 if (ret != PMINFO_R_OK)
4859 ret = pkgmgrinfo_set_cert_value(handle, PMINFO_SET_AUTHOR_ROOT_CERT, "author root certificate");
4860 if (ret != PMINFO_R_OK) {
4861 pkgmgrinfo_destroy_certinfo_set_handle(handle);
4864 ret = pkgmgrinfo_save_pkgdbinfo(pkgid, handle);
4865 if (ret != PMINFO_R_OK) {
4866 pkgmgrinfo_destroy_certinfo_set_handle(handle);
4869 pkgmgrinfo_destroy_certinfo_set_handle(handle);
4874 int pkgmgrinfo_set_cert_value(pkgmgrinfo_instcertinfo_h handle, pkgmgrinfo_instcert_type cert_type, char *cert_value);
4877 * @fn int pkgmgrinfo_save_certinfo(const char *pkgid, pkgmgrinfo_instcertinfo_h handle)
4878 * @brief This API saves the package cert information in the DB.
4880 * @par This API is for package-manager client application
4881 * @par Sync (or) Async : Synchronous API
4883 * @param[in] pkgid pointer to the package ID.
4884 * @param[in] handle pointer to the package cert handle.
4885 * @return 0 if success, error code(<0) if fail
4886 * @retval PMINFO_R_OK success
4887 * @retval PMINFO_R_EINVAL invalid argument
4888 * @retval PMINFO_R_ERROR internal error
4889 * @pre pkgmgrinfo_create_certinfo_set_handle()
4890 * @post pkgmgrinfo_destroy_certinfo_set_handle()
4891 * @see pkgmgrinfo_save_certinfo()
4893 static int set_cert_in_db(const char *pkgid)
4896 pkgmgrinfo_instcertinfo_h handle;
4897 ret = pkgmgrinfo_create_certinfo_set_handle(&handle);
4898 if (ret != PMINFO_R_OK)
4900 ret = pkgmgrinfo_set_cert_value(handle, PMINFO_SET_AUTHOR_ROOT_CERT, "author root certificate");
4901 if (ret != PMINFO_R_OK) {
4902 pkgmgrinfo_destroy_certinfo_set_handle(handle);
4905 ret = pkgmgrinfo_save_pkgdbinfo(pkgid, handle);
4906 if (ret != PMINFO_R_OK) {
4907 pkgmgrinfo_destroy_certinfo_set_handle(handle);
4910 pkgmgrinfo_destroy_certinfo_set_handle(handle);
4915 int pkgmgrinfo_save_certinfo(const char *pkgid, pkgmgrinfo_instcertinfo_h handle);
4918 * @fn int pkgmgrinfo_destroy_certinfo_set_handle(pkgmgrinfo_instcertinfo_h handle)
4919 * @brief This API destroys the package cert information handle freeing up all the resources.
4921 * @par This API is for package-manager client application
4922 * @par Sync (or) Async : Synchronous API
4924 * @param[in] handle pointer to the package cert handle.
4925 * @return 0 if success, error code(<0) if fail
4926 * @retval PMINFO_R_OK success
4927 * @retval PMINFO_R_EINVAL invalid argument
4928 * @retval PMINFO_R_ERROR internal error
4929 * @pre pkgmgrinfo_create_certinfo_set_handle()
4931 * @see pkgmgrinfo_save_certinfo()
4933 static int set_cert_in_db(const char *pkgid)
4936 pkgmgrinfo_instcertinfo_h handle;
4937 ret = pkgmgrinfo_create_certinfo_set_handle(&handle);
4938 if (ret != PMINFO_R_OK)
4940 ret = pkgmgrinfo_set_cert_value(handle, PMINFO_SET_AUTHOR_ROOT_CERT, "author root certificate");
4941 if (ret != PMINFO_R_OK) {
4942 pkgmgrinfo_destroy_certinfo_set_handle(handle);
4945 ret = pkgmgrinfo_save_pkgdbinfo(pkgid, handle);
4946 if (ret != PMINFO_R_OK) {
4947 pkgmgrinfo_destroy_certinfo_set_handle(handle);
4950 pkgmgrinfo_destroy_certinfo_set_handle(handle);
4955 int pkgmgrinfo_destroy_certinfo_set_handle(pkgmgrinfo_instcertinfo_h handle);
4958 * @fn int pkgmgrinfo_datacontrol_get_info(const char *providerid, const char * type, char **appid, char **access)
4959 * @brief This API gets the datacontrol info
4961 * @par This API is for package-manager client application
4962 * @par Sync (or) Async : Synchronous API
4964 * @param[in] providerid pointer to the providerid of dataconltrol.
4965 * @param[in] type pointer to the type of dataconltrol.
4966 * @param[out] appid pointer to hold appid, need to free after using
4967 * @param[out] access pointer to hold access, need to free after using
4968 * @return 0 if success, error code(<0) if fail
4969 * @retval PMINFO_R_OK success
4970 * @retval PMINFO_R_EINVAL invalid argument
4971 * @retval PMINFO_R_ERROR internal error
4974 int pkgmgrinfo_datacontrol_get_info(const char *providerid, const char * type, char **appid, char **access);
4977 * @fn int pkgmgrinfo_appinfo_is_guestmode_appstatus(pkgmgrinfo_appinfo_h handle, bool *status)
4978 * @brief This API gets the application 'guest mode visibility' value from the DB
4980 * @par This API is for package-manager client application
4981 * @par Sync (or) Async : Synchronous API
4983 * @param[in] handle pointer to application info handle
4984 * @param[out] status pointer to hold app guest mode visibility value
4985 * @return 0 if success, error code(<0) if fail
4986 * @retval PMINFO_R_OK success
4987 * @retval PMINFO_R_EINVAL invalid argument
4988 * @retval PMINFO_R_ERROR internal error
4989 * @pre pkgmgrinfo_appinfo_get_appinfo()
4990 * @post pkgmgrinfo_appinfo_destroy_appinfo()
4991 * @see pkgmgrinfo_appinfo_get_appid()
4992 * @see pkgmgrinfo_appinfo_is_multiple()
4994 static int get_app_guestmode_visibility(const char *appid)
4998 pkgmgrinfo_appinfo_h handle;
4999 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
5000 if (ret != PMINFO_R_OK)
5002 ret = pkgmgrinfo_appinfo_is_guestmode_visibility(handle, &status);
5003 if (ret != PMINFO_R_OK) {
5004 pkgmgrinfo_appinfo_destroy_appinfo(handle);
5007 printf("app guest mode visibility: %d\n", status);
5008 pkgmgrinfo_appinfo_destroy_appinfo(handle);
5013 int pkgmgrinfo_appinfo_is_guestmode_visibility(pkgmgrinfo_appinfo_h handle, bool *status);
5016 * @fn int pkgmgrinfo_appinfo_set_guestmode_visibility(pkgmgrinfo_appinfo_h handle, bool status)
5017 * @brief This API sets the application 'guest mode visibility' value in the DB
5019 * @par This API is for package-manager client application
5020 * @par Sync (or) Async : Synchronous API
5022 * @param[in] handle pointer to application info handle
5023 * @param[out] status app guest mode visibility value
5024 * @return 0 if success, error code(<0) if fail
5025 * @retval PMINFO_R_OK success
5026 * @retval PMINFO_R_EINVAL invalid argument
5027 * @retval PMINFO_R_ERROR internal error
5028 * @pre pkgmgrinfo_appinfo_get_appinfo()
5029 * @post pkgmgrinfo_appinfo_destroy_appinfo()
5030 * @see pkgmgrinfo_appinfo_get_appid()
5031 * @see pkgmgrinfo_appinfo_is_multiple()
5033 static int set_app_guestmode_visibility(const char *appid, bool value)
5036 pkgmgrinfo_appinfo_h handle;
5037 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
5038 if (ret != PMINFO_R_OK)
5040 ret = pkgmgrinfo_appinfo_set_guestmode_visibility(handle, value);
5041 if (ret != PMINFO_R_OK) {
5042 pkgmgrinfo_appinfo_destroy_appinfo(handle);
5045 pkgmgrinfo_appinfo_destroy_appinfo(handle);
5050 int pkgmgrinfo_appinfo_set_guestmode_visibility(pkgmgrinfo_appinfo_h handle, bool status);
5057 #endif /* __PKG_INFO_H__ */