allows to add db information of manifest direct installed app 71/51871/4 accepted/tizen/mobile/20151130.094228 accepted/tizen/tv/20151130.094244 accepted/tizen/wearable/20151130.094304 submit/tizen/20151130.063415
authorJunghyun Yeon <jungh.yeon@samsung.com>
Tue, 17 Nov 2015 01:08:12 +0000 (10:08 +0900)
committerJunghyun Yeon <jungh.yeon@samsung.com>
Thu, 26 Nov 2015 11:24:56 +0000 (20:24 +0900)
[app-installers][slp-pkgmgr]

Change-Id: Ib462d97bcf5b494a5bf947db1a7b29fd72a1aee7
Signed-off-by: Junghyun Yeon <jungh.yeon@samsung.com>
comm/pkgmgr_installer.c
comm/pkgmgr_installer.h
comm/pkgmgr_installer_config.h

index 239862d..378c603 100644 (file)
@@ -60,7 +60,8 @@ struct pkgmgr_installer {
        char *tep_path;
        int tep_move;
        int is_tep_included;
-
+       char *directory_path;
+       char *xml_path;
        GDBusConnection *conn;
 };
 
@@ -162,6 +163,10 @@ API int pkgmgr_installer_free(pkgmgr_installer *pi)
                free(pi->caller_pkgid);
        if (pi->tep_path)
                free(pi->tep_path);
+       if (pi->xml_path)
+               free(pi->xml_path);
+       if (pi->directory_path)
+               free(pi->directory_path);
 
        if (pi->conn) {
                g_dbus_connection_flush_sync(pi->conn, NULL, NULL);
@@ -316,6 +321,15 @@ pkgmgr_installer_receive_request(pkgmgr_installer *pi,
                        pi->optional_data = strndup(optarg, MAX_STRLEN);
                        break;
 
+               case 'y': /* directory path*/
+                       pi->request_type = PKGMGR_REQ_MANIFEST_DIRECT_INSTALL;
+                       pi->directory_path = strndup(optarg, MAX_STRLEN);
+                       break;
+
+               case 'x': /* xml path*/
+                       pi->xml_path = strndup(optarg, MAX_STRLEN);
+                       break;
+
                        /* Otherwise */
                case '?':       /* Not an option */
                        break;
@@ -342,6 +356,18 @@ API const char *pkgmgr_installer_get_request_info(pkgmgr_installer *pi)
        return pi->pkgmgr_info;
 }
 
+API const char *pkgmgr_installer_get_directory_path(pkgmgr_installer *pi)
+{
+       CHK_PI_RET(PKGMGR_REQ_INVALID);
+       return pi->directory_path;
+}
+
+API const char *pkgmgr_installer_get_xml_path(pkgmgr_installer *pi)
+{
+       CHK_PI_RET(PKGMGR_REQ_INVALID);
+       return pi->xml_path;
+}
+
 API const char *pkgmgr_installer_get_tep_path(pkgmgr_installer *pi)
 {
        CHK_PI_RET(PKGMGR_REQ_INVALID);
index 86a3f13..725da61 100644 (file)
@@ -78,7 +78,8 @@ enum {
        PKGMGR_REQ_REINSTALL = 6,
        PKGMGR_REQ_GETSIZE = 7,
        PKGMGR_REQ_UPGRADE = 8,
-       PKGMGR_REQ_SMACK = 9
+       PKGMGR_REQ_SMACK = 9,
+       PKGMGR_REQ_MANIFEST_DIRECT_INSTALL = 10
 };
 
 enum {
@@ -253,6 +254,74 @@ int main(int argc, char **argv)
 const char *pkgmgr_installer_get_request_info(pkgmgr_installer *pi);
 
 /**
+       @brief          Get directory path
+       @pre            pkgmgr_installer_receive_request() must be called.
+       @post           None
+       @see            pkgmgr_installer_receive_request
+       @param[in]      pi      pkgmgr_installer object
+       @return         Directory path if passed
+       @retval         NULL    on function failure
+       @remark         Returned string must not be modified.
+       @code
+#include <pkgmgr_installer.h>
+int main(int argc, char **argv)
+{
+       pkgmgr_installer *pi;
+       int r = 0;
+       char *dir_path = NULL;
+
+       pi = pkgmgr_installer_new();
+       if(!pi) return -1;
+       if(pkgmgr_installer_receive_request(pi, argc, argv)) {
+               r = -1;
+               goto CLEANUP_RET;
+       }
+       dir_path = (char *) pkgmgr_installer_get_directory_path(pi);
+
+       // Do something...
+
+       pkgmgr_installer_free(pi);
+       return r;
+}
+       @endcode
+ */
+const char *pkgmgr_installer_get_directory_path(pkgmgr_installer *pi);
+
+/**
+       @brief          Get xml path
+       @pre            pkgmgr_installer_receive_request() must be called.
+       @post           None
+       @see            pkgmgr_installer_receive_request
+       @param[in]      pi      pkgmgr_installer object
+       @return         XML path if passed
+       @retval         NULL    on function failure
+       @remark         Returned string must not be modified.
+       @code
+#include <pkgmgr_installer.h>
+int main(int argc, char **argv)
+{
+       pkgmgr_installer *pi;
+       int r = 0;
+       char *xml_path = NULL;
+
+       pi = pkgmgr_installer_new();
+       if(!pi) return -1;
+       if(pkgmgr_installer_receive_request(pi, argc, argv)) {
+               r = -1;
+               goto CLEANUP_RET;
+       }
+       xml_path = (char *) pkgmgr_installer_get_xml_path(pi);
+
+       // Do something...
+
+       pkgmgr_installer_free(pi);
+       return r;
+}
+       @endcode
+ */
+const char *pkgmgr_installer_get_xml_path(pkgmgr_installer *pi);
+
+/**
        @brief          Get TEP path
        @pre            pkgmgr_installer_receive_request() must be called.
        @post           None
index fa0b198..27d3368 100644 (file)
@@ -32,7 +32,7 @@ extern "C" {
 #endif
 
 /* Supported options */
-const char *short_opts = "k:l:i:d:c:m:t:o:r:p:s:e:M:q";
+const char *short_opts = "k:l:i:d:c:m:t:o:r:p:s:e:M:y:x:q";
 const struct option long_opts[] = {
        { "session-id", 1, NULL, 'k' },
        { "license-path", 1, NULL, 'l' },
@@ -47,6 +47,8 @@ const struct option long_opts[] = {
        { "tep-path", 1, NULL, 'e' },
        { "tep-move", 1, NULL, 'M' },
        { "smack", 1, NULL, 's' },
+       { "directory", 1, NULL, 'y' },
+       { "xml-path", 1, NULL, 'x' },
        { 0, 0, 0, 0 }  /* sentinel */
 };