Add store client id in manifest.xml
authorSoyoung Kim <sy037.kim@samsung.com>
Fri, 19 Jul 2013 12:24:37 +0000 (21:24 +0900)
committerGerrit Code Review <gerrit@gerrit.vlan144.tizendev.org>
Tue, 23 Jul 2013 10:34:15 +0000 (10:34 +0000)
[Issue#] N/A
[Problem] N/A
[Cause] N/A
[Solution] add storeclient-id field in manifest.xml
storeclient-id is caller package id.
[SCMRequest] N/A

Change-Id: I4eac194ffe7289159de7fba25f9adc9405ebf236

src/jobs/widget_install/job_widget_install.cpp
src/jobs/widget_install/manifest.cpp
src/jobs/widget_install/manifest.h
src/jobs/widget_install/task_manifest_file.cpp
src/jobs/widget_install/widget_install_context.h
src/pkg-manager/pkgmgr_signal.cpp
src/pkg-manager/pkgmgr_signal.h
src/pkg-manager/pkgmgr_signal_dummy.h
src/pkg-manager/pkgmgr_signal_interface.h

index 39d3d3e..d830e06 100644 (file)
@@ -109,7 +109,7 @@ bool hasExtension(const std::string& filename, const std::string& extension)
     if (fileLen < extLen) {
         LogError("Filename " << filename << " is shorter than extension "
                              << extension);
-        return false;
+         false;
     }
     return (0 == filename.compare(fileLen - extLen, extLen, extension));
 }
@@ -302,6 +302,9 @@ ConfigureResult JobWidgetInstall::prepareInstallation(
         setApplicationType(configData);
         m_needEncryption = detectResourceEncryption(configData);
         setInstallLocationType(configData);
+        m_installerContext.callerPkgId =
+            DPL::FromUTF8String(getInstallerStruct().pkgmgrInterface->getCallerId());
+        LogDebug("Caller Package Id : " << m_installerContext.callerPkgId);
 
         // Configure installation
         result = ConfigureInstallation(widgetPath, configData, tempDir);
index 7a8bea6..80b37b0 100644 (file)
@@ -155,9 +155,10 @@ void Manifest::serialize(xmlTextWriterPtr writer)
         writeAttribute(writer, "type", this->type);
         writeAttribute(writer, "version", this->version);
         if (!this->installLocation.IsNull()) {
-            writeAttribute(writer, "install-location", (*this->installLocation),
-                           (*this->installLocation).empty());
+            writeAttribute(writer, "install-location", (*this->installLocation));
         }
+        writeAttribute(writer, "storeclient-id", this->storeClientId,
+                !this->storeClientId.empty());
 
         FOREACH(l, this->label)
         {
index 1729716..67ee3ce 100644 (file)
@@ -554,6 +554,10 @@ class Manifest
     {
         this->version = x;
     }
+    void setStoreClientId(const NcnameType &x)
+    {
+        this->storeClientId= x;
+    }
 
   private:
     std::list<LabelType> label;
@@ -573,6 +577,7 @@ class Manifest
     NmtokenType version;
     std::list<Account> account;
     PrivilegeType privileges;
+    NcnameType storeClientId;
 
 };
 } //namespace Jobs
index ccd79c7..6133536 100644 (file)
@@ -955,6 +955,10 @@ void TaskManifestFile::setWidgetManifest(Manifest & manifest)
     DPL::String name = (!!m_context.widgetConfig.configInfo.authorName ?
                         *m_context.widgetConfig.configInfo.authorName : L"");
     manifest.addAuthor(Author(email, href, L"", name));
+
+    if (!m_context.callerPkgId.empty()) {
+        manifest.setStoreClientId(m_context.callerPkgId);
+    }
 }
 
 void TaskManifestFile::setWidgetOtherInfo(UiApplication & uiApp)
index 649de9b..3d735b6 100644 (file)
@@ -96,6 +96,7 @@ struct InstallerContext
     InstallLocationType locationType;
     bool isUpdateMode;
     InstallMode mode;
+    DPL::String callerPkgId;
 };
 
 #endif // INSTALLER_CONTEXT_H
index dc66308..9082d23 100644 (file)
@@ -61,6 +61,9 @@ bool PkgmgrSignal::initialize(int argc, char* argv[])
             m_handle = NULL;
             return false;
         }
+        m_callerId = pkgmgr_installer_get_caller_pkgid(m_handle);
+        LogDebug("@@@@ Caller Id : " << m_callerId);
+
     } else {
         LogError("Fail to get information of pkgmgr's request");
         pkgmgr_installer_free(m_handle);
@@ -153,4 +156,13 @@ int PkgmgrSignal::getRequestedType() const
 
     return m_reqType;
 }
+
+std::string PkgmgrSignal::getCallerId() const
+{
+    if (!m_initialized) {
+        LogError("PkgmgrSingal not yet intialized");
+    }
+
+    return m_callerId;
+}
 } // PackageManager
index 2e7f7c9..3a75f82 100644 (file)
@@ -50,6 +50,7 @@ class PkgmgrSignal : public IPkgmgrSignal
     bool sendSignal(const std::string& key, const std::string& value) const;
     std::string getPkgname() const;
     int getRequestedType() const;
+    std::string getCallerId() const;
 
     PkgmgrSignal();
     virtual ~PkgmgrSignal();
@@ -60,6 +61,7 @@ class PkgmgrSignal : public IPkgmgrSignal
     std::string m_type;
     std::string m_pkgname;
     int m_reqType;
+    std::string m_callerId;
 };
 } // PackageManager
 
index 4c1b3e4..26668d1 100644 (file)
@@ -47,6 +47,11 @@ class PkgmgrSignalDummy : public IPkgmgrSignal
     {
         return "";
     }
+
+    std::string getCallerId() const
+    {
+        return "";
+    }
 };
 } // PkgmgrSignalDummy
 
index 1f3946d..b94917d 100644 (file)
@@ -31,6 +31,7 @@ class IPkgmgrSignal
     virtual bool sendSignal(const std::string& key,
                             const std::string& value) const = 0;
     virtual std::string getPkgname() const = 0;
+    virtual std::string getCallerId() const = 0;
     virtual ~IPkgmgrSignal(){}
 };
 } // IPkgmgrSignal