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.
24 #ifndef __PKGMGR_INSTALLER_H__
25 #define __PKGMGR_INSTALLER_H__
27 #include <sys/types.h>
29 #include "package-manager.h"
30 #include "pkgmgr_installer_type.h"
33 * @file pkgmgr_installer.h
34 * @author Youmin Ha <youmin.ha@samsung.com>
36 * @brief This file declares API of pkgmgr_installer
44 * pkgmgr_installer is an opaque type for an object
46 typedef void pkgmgr_installer;
47 typedef void *pkgmgr_instcertinfo_h;
50 * @brief Create a pkgmgr_installer object.
52 * @post pkgmgr_installer object must be freed.
53 * @see pkgmgr_installer_free
54 * @return pkgmgr_installer object
55 * @retval NULL on failure creating an object
58 #include <pkgmgr_installer.h>
59 pkgmgr_installer *pi = pkgmgr_installer_new();
60 pkgmgr_installer_free(pi);
63 pkgmgr_installer *pkgmgr_installer_new(void);
66 * @brief Create a pkgmgr_installer object in offline mode
68 * @post pkgmgr_installer object must be freed.
69 * @see pkgmgr_installer_free
70 * @return pkgmgr_installer object
71 * @retval NULL on failure creating an object
74 #include <pkgmgr_installer.h>
75 pkgmgr_installer *pi = pkgmgr_installer_offline_new();
76 pkgmgr_installer_free(pi);
79 pkgmgr_installer *pkgmgr_installer_offline_new(void);
82 @brief Free a pkgmgr_installer object
83 @pre pi must be a valid object.
85 @see pkgmgr_installer_new
86 @param[in] pi A pkgmgr_installer object
87 @return Operation result
89 @retval -errno on error
92 #include <pkgmgr_installer.h>
93 pkgmgr_installer *pi = pkgmgr_installer_new();
94 pkgmgr_installer_free(pi);
97 int pkgmgr_installer_free(pkgmgr_installer *pi);
100 @brief Receive a request from argv
102 @post pkgmgr_installer_get_*(), pkgmgr_installer_is_quiet() can be called.
103 @see pkgmgr_installer_get_request_type, pkgmgr_installer_get_request_info, pkgmgr_installer_get_session_id, pkgmgr_installer_is_quiet
104 @param[in] pi a pkgmgr_installer object
105 @param[in] argc argc from system
106 @param[in] argv argv from system
107 @return Operation result
109 @retval -errno on failure
112 #include <pkgmgr_installer.h>
113 int main(int argc, char **argv)
115 pkgmgr_installer *pi;
118 pi = pkgmgr_installer_new();
119 int r = pkgmgr_installer_receive_request(pi, argc, argv);
120 pkgmgr_installer_free(pi);
126 int pkgmgr_installer_receive_request(pkgmgr_installer *pi,
127 const int argc, char **argv);
130 @brief Get request type
131 @pre pkgmgr_installer_receive_request() must be called.
133 @see pkgmgr_installer_receive_request
134 @param[in] pi pkgmgr_installer object
135 @return Request type (One of PKGMGR_REQ_* enum values)
138 int main(int argc, char **argv)
140 pkgmgr_installer *pi;
143 pi = pkgmgr_installer_new();
145 if(pkgmgr_installer_receive_request(pi, argc, argv)) {
150 switch(pkgmgr_installer_get_request_type(pi)) {
151 case PKGMGR_REQ_PERM:
152 // Do error processing
154 case PKGMGR_REQ_INVALID:
155 // Do error processing
158 case PKGMGR_REQ_INSTALL:
159 // Do install processing
161 case PKGMGR_REQ_UNINSTALL:
162 // Do uninstall processing
164 case PKGMGR_REQ_RECOVER:
165 // Do recovere processing
167 case PKGMGR_REQ_REINSTALL:
168 // Do reinstall processing
174 pkgmgr_installer_free(pi);
180 int pkgmgr_installer_get_request_type(pkgmgr_installer *pi);
184 @pre pkgmgr_installer_receive_request() must be called.
186 @see pkgmgr_installer_receive_request
187 @param[in] pi pkgmgr_installer object
189 @retval NULL on function failure
190 @remark Returned uid must not be modified.
192 #include <pkgmgr_installer.h>
193 int main(int argc, char **argv)
195 pkgmgr_installer *pi;
199 pi = pkgmgr_installer_new();
201 if(pkgmgr_installer_receive_request(pi, argc, argv)) {
205 uid = pkgmgr_installer_get_uid(pi);
209 pkgmgr_installer_free(pi);
214 uid_t pkgmgr_installer_get_uid(pkgmgr_installer *pi);
217 @brief Get request info
218 @pre pkgmgr_installer_receive_request() must be called.
220 @see pkgmgr_installer_receive_request
221 @param[in] pi pkgmgr_installer object
222 @return Request info. When PKGMGR_REQ_INSTALL, this is a package file path to be installed. When PKGMGR_REQ_UNINSTALL, this is a package name to be uninstalled.
223 @retval NULL on function failure
224 @remark Returned string must not be modified.
226 #include <pkgmgr_installer.h>
227 int main(int argc, char **argv)
229 pkgmgr_installer *pi;
231 char *req_info = NULL;
233 pi = pkgmgr_installer_new();
235 if(pkgmgr_installer_receive_request(pi, argc, argv)) {
239 req_info = (char *) pkgmgr_installer_get_request_info(pi);
243 pkgmgr_installer_free(pi);
248 const char *pkgmgr_installer_get_request_info(pkgmgr_installer *pi);
251 @brief Get request info at specific position
252 @pre pkgmgr_installer_receive_request() must be called.
254 @see pkgmgr_installer_receive_request
255 @see pkgmgr_installer_get_request_info_count
256 @param[in] pi pkgmgr_installer object
257 @return Request info. When PKGMGR_REQ_INSTALL, this is a package file path to be installed. When PKGMGR_REQ_UNINSTALL, this is a package name to be uninstalled.
258 @retval NULL on function failure
259 @remark Returned string must not be modified.
261 #include <pkgmgr_installer.h>
262 int main(int argc, char **argv)
264 pkgmgr_installer *pi;
266 char *req_info = NULL;
268 pi = pkgmgr_installer_new();
270 if(pkgmgr_installer_receive_request(pi, argc, argv)) {
274 req_info = (char *) pkgmgr_installer_get_request_info_at(pi, 1);
278 pkgmgr_installer_free(pi);
283 const char *pkgmgr_installer_get_request_info_at(pkgmgr_installer *pi,
287 @brief Get the number of request info
288 @pre pkgmgr_installer_receive_request() must be called.
290 @see pkgmgr_installer_receive_request
291 @param[in] pi pkgmgr_installer object
292 @return The number of request info.
294 #include <pkgmgr_installer.h>
295 int main(int argc, char **argv)
297 pkgmgr_installer *pi;
301 pi = pkgmgr_installer_new();
303 if(pkgmgr_installer_receive_request(pi, argc, argv)) {
307 n = pkgmgr_installer_get_request_info_count(pi);
311 pkgmgr_installer_free(pi);
316 int pkgmgr_installer_get_request_info_count(pkgmgr_installer *pi);
320 @pre pkgmgr_installer_receive_request() must be called.
322 @see pkgmgr_installer_receive_request
323 @param[in] pi pkgmgr_installer object
324 @return TEP path if exists
325 @retval NULL on function failure
326 @remark Returned string must not be modified.
328 #include <pkgmgr_installer.h>
329 int main(int argc, char **argv)
331 pkgmgr_installer *pi;
333 char *tep_path = NULL;
335 pi = pkgmgr_installer_new();
337 if(pkgmgr_installer_receive_request(pi, argc, argv)) {
341 tep_path = (char *) pkgmgr_installer_get_tep_path(pi);
345 pkgmgr_installer_free(pi);
350 const char *pkgmgr_installer_get_tep_path(pkgmgr_installer *pi);
353 @brief Get TEP move type
354 @pre pkgmgr_installer_receive_request() must be called.
356 @see pkgmgr_installer_receive_request
357 @param[in] pi pkgmgr_installer object
358 @return integer value indicates tep move type(0: copy TEP file / 1: move TEP file)
359 @retval 0 on function failure
360 @remark Returned string must not be modified.
362 #include <pkgmgr_installer.h>
363 int main(int argc, char **argv)
365 pkgmgr_installer *pi;
367 int tep_move_type = -1;
369 pi = pkgmgr_installer_new();
371 if(pkgmgr_installer_receive_request(pi, argc, argv)) {
375 tep_move_type = pkgmgr_installer_get_tep_move_type(pi);
379 pkgmgr_installer_free(pi);
384 int pkgmgr_installer_get_tep_move_type(pkgmgr_installer *pi);
387 @brief Get session ID for a certain session
388 @pre pkgmgr_installer_receive_request() must be called.
390 @see pkgmgr_installer_receive_request
391 @param[in] pi pkgmgr_installer object
393 @retval NULL on function failure
394 @remark Returned string must not be modified.
396 #include <pkgmgr_installer.h>
397 int main(int argc, char **argv)
399 pkgmgr_installer *pi;
401 char *session_id = NULL;
403 pi = pkgmgr_installer_new();
405 if(pkgmgr_installer_receive_request(pi, argc, argv)) {
409 session_id = (char *) pkgmgr_installer_get_session_id(pi);
413 pkgmgr_installer_free(pi);
418 const char *pkgmgr_installer_get_session_id(pkgmgr_installer *pi);
421 @brief Get a license path
422 @pre pkgmgr_installer_receive_request() must be called.
424 @see pkgmgr_installer_receive_request
425 @param[in] pi pkgmgr_installer object
427 @retval NULL on function failure
428 @remark Returned string must not be modified.
430 #include <pkgmgr_installer.h>
431 int main(int argc, char **argv)
433 pkgmgr_installer *pi;
435 char *license_path = NULL;
437 pi = pkgmgr_installer_new();
439 if(pkgmgr_installer_receive_request(pi, argc, argv)) {
443 session_id = (char *) pkgmgr_installer_get_license_path(pi);
447 pkgmgr_installer_free(pi);
452 const char *pkgmgr_installer_get_license_path(pkgmgr_installer *pi);
455 @brief Get a optional data
456 @pre pkgmgr_installer_receive_request() must be called.
458 @see pkgmgr_installer_receive_request
459 @param[in] pi pkgmgr_installer object
460 @return optional data
461 @retval NULL on function failure
462 @remark Returned string must not be modified.
464 #include <pkgmgr_installer.h>
465 int main(int argc, char **argv)
467 pkgmgr_installer *pi;
469 char *optional_data = NULL;
471 pi = pkgmgr_installer_new();
473 if(pkgmgr_installer_receive_request(pi, argc, argv)) {
477 optional_data = (char *) pkgmgr_installer_get_optional_data(pi);
481 pkgmgr_installer_free(pi);
486 const char *pkgmgr_installer_get_optional_data(pkgmgr_installer *pi);
489 @brief Get if a request is with quite mode or not
490 @pre pkgmgr_installer_receive_request() must be called.
492 @see pkgmgr_installer_receive_request
493 @param[in] pi pkgmgr_installer object
494 @return Operation result
495 @retval 0 if a request is not quiet mode
496 @retval 1 if a request is quiet mode
499 #include <pkgmgr_installer.h>
500 int main(int argc, char **argv)
502 pkgmgr_installer *pi;
505 pi = pkgmgr_installer_new();
507 if(pkgmgr_installer_receive_request(pi, argc, argv)) {
511 if(pkgmgr_installer_is_quiet(pi)) {
512 // Do quiet mode work...
514 // Do normal mode work...
517 pkgmgr_installer_free(pi);
522 int pkgmgr_installer_is_quiet(pkgmgr_installer *pi);
526 @pre pkgmgr_installer_receive_request() must be called.
528 @see pkgmgr_installer_receive_request
529 @param[in] pi pkgmgr_installer object
530 @return Operation result
531 @retval enum value of move type
534 #include <pkgmgr_installer.h>
535 int main(int argc, char **argv)
537 pkgmgr_installer *pi;
540 pi = pkgmgr_installer_new();
542 if(pkgmgr_installer_receive_request(pi, argc, argv)) {
546 move_type = pkgmgr_installer_get_move_type(pi);
550 pkgmgr_installer_free(pi);
555 int pkgmgr_installer_get_move_type(pkgmgr_installer *pi);
558 @brief Get caller package id
559 @pre pkgmgr_installer_receive_request() must be called.
561 @see pkgmgr_installer_receive_request
562 @param[in] pi pkgmgr_installer object
563 @return Operation result
564 @retval enum value of move type
567 #include <pkgmgr_installer.h>
568 int main(int argc, char **argv)
570 pkgmgr_installer *pi;
574 pi = pkgmgr_installer_new();
576 if(pkgmgr_installer_receive_request(pi, argc, argv)) {
580 pkgid = (char *) pkgmgr_installer_get_caller_pkgid(pi);
584 pkgmgr_installer_free(pi);
589 const char *pkgmgr_installer_get_caller_pkgid(pkgmgr_installer *pi);
592 @brief Get if the request is for preload app or not
593 @pre pkgmgr_installer_receive_request() must be called.
595 @see pkgmgr_installer_receive_request
596 @param[in] pi pkgmgr_installer object
597 @return Operation result
598 @retval 0 if a request is not for preload
599 @retval 1 if a request is for preload
602 #include <pkgmgr_installer.h>
603 int main(int argc, char **argv)
605 pkgmgr_installer *pi;
609 pi = pkgmgr_installer_new();
611 if(pkgmgr_installer_receive_request(pi, argc, argv)) {
615 is_preload = pkgmgr_installer_get_is_preload(pi);
619 pkgmgr_installer_free(pi);
624 int pkgmgr_installer_get_is_preload(pkgmgr_installer *pi);
625 int pkgmgr_installer_get_is_preload_rw(pkgmgr_installer *pi);
628 @brief Get if the request is for force-removal
629 @pre pkgmgr_installer_receive_request() must be called.
631 @see pkgmgr_installer_receive_request
632 @param[in] pi pkgmgr_installer object
633 @return Operation result
634 @retval 0 if a request is not for force-removal
635 @retval 1 if a request is for force-removal
638 #include <pkgmgr_installer.h>
639 int main(int argc, char **argv)
641 pkgmgr_installer *pi;
643 int force_remove = 0;
645 pi = pkgmgr_installer_new();
647 if(pkgmgr_installer_receive_request(pi, argc, argv)) {
651 force_remove = pkgmgr_installer_get_force_removal(pi);
655 pkgmgr_installer_free(pi);
660 int pkgmgr_installer_get_force_removal(pkgmgr_installer *pi);
661 int pkgmgr_installer_get_no_removal(pkgmgr_installer *pi);
664 @brief Get if the request is for keep-rwdata
665 @pre pkgmgr_installer_receive_request() must be called.
667 @see pkgmgr_installer_receive_request
668 @param[in] pi pkgmgr_installer object
669 @return Operation result
670 @retval 0 if a request is not for keep-rwdata
671 @retval 1 if a request is for keep-rwdata
672 @remark Keep RW-data of updated RO pkg.
674 #include <pkgmgr_installer.h>
675 int main(int argc, char **argv)
677 pkgmgr_installer *pi;
679 int force_remove = 0;
681 pi = pkgmgr_installer_new();
683 if(pkgmgr_installer_receive_request(pi, argc, argv)) {
687 force_remove = pkgmgr_installer_get_keep_rwdata(pi);
691 pkgmgr_installer_free(pi);
696 int pkgmgr_installer_get_keep_rwdata(pkgmgr_installer *pi);
699 @brief Get if the request is for partial-rw
700 @pre pkgmgr_installer_receive_request() must be called.
702 @see pkgmgr_installer_receive_request
703 @param[in] pi pkgmgr_installer object
704 @return Operation result
705 @retval 0 if a request is not for partial-rw
706 @retval 1 if a request is for partial-rw
707 @remark For install/update/uninstall of stubs of RO pkg
710 #include <pkgmgr_installer.h>
711 int main(int argc, char **argv)
713 pkgmgr_installer *pi;
715 int force_remove = 0;
717 pi = pkgmgr_installer_new();
719 if(pkgmgr_installer_receive_request(pi, argc, argv)) {
723 force_remove = pkgmgr_installer_get_partial_rw(pi);
727 pkgmgr_installer_free(pi);
732 int pkgmgr_installer_get_partial_rw(pkgmgr_installer *pi);
735 @brief Get debug mode value
736 @pre pkgmgr_installer_receive_request() must be called.
738 @see pkgmgr_installer_receive_request
739 @param[in] pi pkgmgr_installer object
740 @return Operation result
741 @retval 0 if a request is not debug mode
742 @retval 1 if a request is debug mode
745 #include <pkgmgr_installer.h>
746 int main(int argc, char **argv)
748 pkgmgr_installer *pi;
750 int force_remove = 0;
752 pi = pkgmgr_installer_new();
754 if(pkgmgr_installer_receive_request(pi, argc, argv)) {
758 force_remove = pkgmgr_installer_get_debug_mode(pi);
762 pkgmgr_installer_free(pi);
767 int pkgmgr_installer_get_debug_mode(pkgmgr_installer *pi);
770 @brief Get skip_check_reference value
771 @pre pkgmgr_installer_receive_request() must be called.
773 @see pkgmgr_installer_receive_request
774 @param[in] pi pkgmgr_installer object
775 @return Operation result
776 @retval 0 if a request does not skip checking reference
777 @retval 1 if a request skip checking reference
780 #include <pkgmgr_installer.h>
781 int main(int argc, char **argv)
783 pkgmgr_installer *pi;
785 int check_reference = 0;
787 pi = pkgmgr_installer_new();
789 if(pkgmgr_installer_receive_request(pi, argc, argv)) {
793 check_reference = pkgmgr_installer_get_skip_check_reference(pi);
797 pkgmgr_installer_free(pi);
802 int pkgmgr_installer_get_skip_check_reference(pkgmgr_installer *pi);
805 @brief Get skip optimization value
806 @pre pkgmgr_installer_receive_request() must be called.
808 @see pkgmgr_installer_receive_request
809 @param[in] pi pkgmgr_installer object
810 @return Operation result
811 @retval 0 if a request is not debug mode
812 @retval 1 if a request is debug mode
815 #include <pkgmgr_installer.h>
816 int main(int argc, char **argv)
818 pkgmgr_installer *pi;
820 int skip_optimization = 0;
822 pi = pkgmgr_installer_new();
824 if(pkgmgr_installer_receive_request(pi, argc, argv)) {
828 skip_optimization = pkgmgr_installer_get_skip_optimization(pi);
832 pkgmgr_installer_free(pi);
837 int pkgmgr_installer_get_skip_optimization(pkgmgr_installer *pi);
840 @brief Get recovery cleanup mode
841 @pre pkgmgr_installer_receive_request() must be called.
843 @see pkgmgr_installer_receive_request
844 @param[in] pi pkgmgr_installer object
845 @return Operation result
846 @retval 0 if a recovery cleanup flag has not set
847 @retval 1 if a recovery cleanup flag has set
850 #include <pkgmgr_installer.h>
851 int main(int argc, char **argv)
853 pkgmgr_installer *pi;
855 int recovery_cleanup = 0;
857 pi = pkgmgr_installer_new();
859 if(pkgmgr_installer_receive_request(pi, argc, argv)) {
863 recovery_cleanup = pkgmgr_installer_get_recovery_cleanup(pi);
867 pkgmgr_installer_free(pi);
872 int pkgmgr_installer_get_recovery_cleanup(pkgmgr_installer *pi);
875 @brief Send a app status signal
879 @param[in] pi pkgmgr_installer object
880 @param[in] pkg_type package type: "deb", "jar", "wgt", ...
881 @param[in] pkgid package id
882 @param[in] appid application id
883 @param[in] key Signal key
884 @param[in] val Signal value
885 @return Operation result
887 @retval -errno on failure
889 #include <pkgmgr_installer.h>
890 void send_app_singal(uid_t uid, int request_type, int req_id,
891 const char *pkg_type, const char *pkgid, const char *appid,
892 const char *key, const char *val)
894 pkgmgr_installer *pi;
897 pi = pkgmgr_installer_new();
900 if (pkgmgr_installer_set_uid(pi, uid))
902 if (pkgmgr_installer_set_request_type(pi, request_type))
904 if ((pkgmgr_installer_set_session_id(pi, req_id))
906 pkgmgr_installer_send_app_signal(pi, pkg_type, pkgid, appid, key, val);
911 int pkgmgr_installer_send_app_signal(pkgmgr_installer *pi,
912 const char *pkg_type,
915 const char *key, const char *val);
918 @brief Send a process status signal
922 @param[in] pi pkgmgr_installer object
923 @param[in] pkg_type package type: "deb", "jar", "wgt", ...
924 @param[in] pkgid package id
925 @param[in] key Signal key
926 @param[in] val Signal value
927 @return Operation result
929 @retval -errno on failure
930 @remark If pkgmgr_installer_receive_request() is not called, the session ID will be null string (=="/0").
932 #include <pkgmgr_installer.h>
933 int main(int argc, char **argv)
935 pkgmgr_installer *pi;
937 char *session_id = NULL;
939 pi = pkgmgr_installer_new();
941 if(pkgmgr_installer_receive_request(pi, argc, argv)) {
947 pkgmgr_installer_send_signal(pi,
948 "deb", "org.tizen.foo", "install_percent", "100");
951 pkgmgr_installer_free(pi);
956 int pkgmgr_installer_send_signal(pkgmgr_installer *pi,
957 const char *pkg_type,
958 const char *pkgid, const char *key,
962 @brief Send a app status signal
966 @param[in] pi pkgmgr_installer object
967 @param[in] uid user id
968 @param[in] pkg_type package type: "deb", "jar", "wgt", ...
969 @param[in] pkgid package id
970 @param[in] appid application id
971 @param[in] key Signal key
972 @param[in] val Signal value
973 @return Operation result
974 @retval 0 on success, otherwise -1
975 @remark If pkgmgr_installer_receive_request() is not called, the session ID will be null string (=="/0").
977 int pkgmgr_installer_send_app_signal_for_uid(pkgmgr_installer *pi,
979 const char *pkg_type,
982 const char *key, const char *val);
985 @brief Send a process status signal
989 @param[in] pi pkgmgr_installer object
990 @param[in] uid user id
991 @param[in] pkg_type package type: "deb", "jar", "wgt", ...
992 @param[in] pkgid package id
993 @param[in] key Signal key
994 @param[in] val Signal value
995 @return Operation result
996 @retval 0 on success, otherwise -1
997 @remark If pkgmgr_installer_receive_request() is not called, the session ID will be null string (=="/0").
999 int pkgmgr_installer_send_signal_for_uid(pkgmgr_installer *pi,
1001 const char *pkg_type,
1002 const char *pkgid, const char *key,
1006 @brief Send a signal which indicates application is being uninstalled
1010 @param[in] pi pkgmgr_installer object
1011 @param[in] pkg_type package type: "deb", "jar", "wgt", ...
1012 @param[in] pkgid package id
1013 @param[in] key Signal key
1014 @param[in] val Signal value
1015 @return Operation result
1016 @retval 0 on success
1017 @retval -errno on failure
1019 #include <pkgmgr_installer.h>
1020 int main(int argc, char **argv)
1022 pkgmgr_installer *pi;
1024 char *session_id = NULL;
1026 pi = pkgmgr_installer_new();
1028 if(pkgmgr_installer_receive_request(pi, argc, argv)) {
1034 pkgmgr_installer_send_app_uninstall_signal(pi,
1035 "tpk", "org.tizen.foo");
1038 pkgmgr_installer_free(pi);
1043 int pkgmgr_installer_send_app_uninstall_signal(pkgmgr_installer *pi,
1044 const char *pkg_type,
1049 @brief Send a signal which indicates application is being uninstalled
1053 @param[in] pi pkgmgr_installer object
1054 @param[in] uid user id
1055 @param[in] pkg_type package type: "deb", "jar", "wgt", ...
1056 @param[in] pkgid package id
1057 @param[in] key Signal key
1058 @param[in] val Signal value
1059 @return Operation result
1060 @retval 0 on success
1061 @retval -errno on failure
1063 int pkgmgr_installer_send_app_uninstall_signal_for_uid(
1064 pkgmgr_installer *pi, uid_t uid, const char *pkg_type,
1065 const char *pkgid, const char *val);
1068 * @brief This API sets the uid of given pkgmgr_installer.
1070 * This API is for package-manager client application.\n
1072 * @param[in]pi pointer to pkgmgr_installer
1074 * @return 0 if success, error code(<0) if fail\n
1076 int pkgmgr_installer_set_uid(pkgmgr_installer *pi, uid_t uid);
1079 * @brief This API sets the requst info of given pkgmgr_installer.
1081 * This API is for package-manager client application.\n
1083 * @param[in]pi pointer to pkgmgr_installer
1084 * @param[in] request_type request type
1085 * @return 0 if success, error code(<0) if fail\n
1087 int pkgmgr_installer_set_request_type(pkgmgr_installer *pi, int request_type);
1090 * @brief This API sets the session ID.
1092 * This API is for package-manager client application.\n
1094 * @param[in] pi pointer to pkgmgr_installer
1095 * @param[in] session_id session ID to be set
1096 * @return 0 if success, error code(<0) if fail\n
1098 int pkgmgr_installer_set_session_id(pkgmgr_installer *pi, const char *session_id);
1101 * @brief This API creates the certinfo handle.
1103 * This API is for package-manager client application.\n
1105 * @param[out] handle pointer to cert info handle
1106 * @return 0 if success, error code(<0) if fail\n
1108 int pkgmgr_installer_create_certinfo_set_handle(pkgmgr_instcertinfo_h *handle);
1111 * @brief This API sets cert value for corresponding cert type.
1113 * This API is for package-manager client application.\n
1115 * @param[in] handle pointer to cert info handle
1116 * @param[in] cert_type enum value for certificate type
1117 * @param[in] cert_value certificate value
1118 * @return 0 if success, error code(<0) if fail\n
1120 int pkgmgr_installer_set_cert_value(pkgmgr_instcertinfo_h handle, pkgmgr_instcert_type cert_type, char *cert_value);
1123 * @brief This API saves cert info in DB.
1125 * This API is for package-manager client application.\n
1127 * @param[in] pkgid package ID
1128 * @param[in] handle pointer to cert info handle
1129 * @return 0 if success, error code(<0) if fail\n
1131 int pkgmgr_installer_save_certinfo(const char *pkgid, pkgmgr_instcertinfo_h handle, uid_t uid);
1134 * @brief This API destroys cert info handle freeing all resources.
1136 * This API is for package-manager client application.\n
1138 * @param[in] handle pointer to cert info handle
1139 * @return 0 if success, error code(<0) if fail\n
1141 int pkgmgr_installer_destroy_certinfo_set_handle(pkgmgr_instcertinfo_h handle);
1144 * @brief This API deletes cert info from DB. To be used to cleanup info upon pkg uninstallation
1146 * This API is for package-manager client application.\n
1148 * @param[in] pkgid package ID
1149 * @return 0 if success, error code(<0) if fail\n
1151 int pkgmgr_installer_delete_certinfo(const char *pkgid);
1154 * @brief This API sets privilege level for pkgmgr_installer_info
1156 * This API is for installer backend.\n
1158 * @param[in] level pkgmgr_privilege_level
1159 * @return 0 if success, error code(<0) if fail\n
1161 int pkgmgr_installer_set_privilege_level(pkgmgr_privilege_level level);
1164 * @brief This API converts error code to string
1166 * This API is for installer backend.\n
1168 * @param[in] error_code pkgmgr installer error code
1169 * @return error string\n
1171 const char *pkgmgr_installer_error_to_string(int error_code);
1174 * @brief This API adds pkg to be send at once
1176 * This API is for installer backend.\n
1178 * @param[in] pi pointer to pkgmgr_installer
1179 * @param[in] pkgid package ID
1180 * @param[in] pkg_type type of package
1181 * @return 0 if success, error code(<0) if fail\n
1183 int pkgmgr_installer_add_pkg(pkgmgr_installer *pi,
1184 const char *pkgid, const char *pkg_type);
1187 * @brief This API sends signals with packages already added
1189 * This API is for installer backend.\n
1191 * @param[in] pi pointer to pkgmgr_installer
1192 * @param[in] key Signal key
1193 * @param[in] val Signal value
1194 * @return 0 if success, error code(<0) if fail\n
1196 int pkgmgr_installer_send_signals(pkgmgr_installer *pi,
1197 const char *key, const char *val);
1200 * @brief This API sends signals to certain uid with packages already added
1202 * This API is for installer backend.\n
1204 * @param[in] pi pointer to pkgmgr_installer
1205 * @param[in] uid user id
1206 * @param[in] key Signal key
1207 * @param[in] val Signal value
1208 * @return 0 if success, error code(<0) if fail\n
1210 int pkgmgr_installer_send_signals_for_uid(pkgmgr_installer *pi, uid_t uid,
1211 const char *key, const char *val);
1214 * @brief This API sets is_upgrade_flag of given pkgmgr_installer.
1216 * This API is for package-manager client application.\n
1218 * @param[in]pi pointer to pkgmgr_installer
1219 * @param[in]is_upgrade is_upgrade flag
1220 * @return 0 if success, error code(<0) if fail\n
1222 int pkgmgr_installer_set_is_upgrade(pkgmgr_installer *pi, int is_upgrade);
1225 @brief Send a signal of the resource copy event status
1229 @param[in] pi pkgmgr_installer object
1230 @param[in] pkgid package id
1231 @param[in] status event status
1232 @param[in] event_info event info handle
1233 @return Operation result
1234 @retval 0 on success, otherwise -1
1236 #include <pkgmgr_installer.h>
1237 void send_res_singal(uid_t uid, int request_type, const char *session_id,
1238 const char *pkgid, const char *status,
1239 pkgmgr_res_event_info *event_info)
1241 pkgmgr_installer *pi;
1244 pi = pkgmgr_installer_new();
1247 if (pkgmgr_installer_set_uid(pi, uid))
1249 if (pkgmgr_installer_set_request_type(pi, request_type))
1251 if ((pkgmgr_installer_set_session_id(pi, session_id))
1253 pkgmgr_installer_send_res_signal(pi, pkgid, status, event_info);
1258 int pkgmgr_installer_send_res_signal(pkgmgr_installer *pi,
1259 const char *pkgid, const char *status,
1260 pkgmgr_res_event_info *event_info);
1263 @brief Send a signal of the resource copy event status
1267 @param[in] pi pkgmgr_installer object
1268 @param[in] uid user id
1269 @param[in] pkgid package id
1270 @param[in] status event status
1271 @param[in] event_info event info handle
1272 @return Operation result
1273 @retval 0 on success, otherwise -1
1275 int pkgmgr_installer_send_res_signal_for_uid(pkgmgr_installer *pi,
1276 uid_t uid, const char *pkgid, const char *status,
1277 pkgmgr_res_event_info *event_info);
1280 @brief Send a signal of the upgrade event status
1284 @param[in] pi pkgmgr_installer object
1285 @param[in] progress progress of upgrade
1286 @return Operation result
1287 @retval 0 on success, otherwise -1
1289 #include <pkgmgr_installer.h>
1290 void send_upgrade_singal(int progress)
1292 pkgmgr_installer *pi;
1295 pi = pkgmgr_installer_new();
1298 pkgmgr_installer_send_pkg_upgrade_signal(pi, progress);
1302 int pkgmgr_installer_send_pkg_upgrade_signal(pkgmgr_installer *pi,
1303 unsigned int progress);
1309 #endif /* __PKGMGR_INSTALLER_H__ */