backup - creating package resolvable
authorJiri Srain <jsrain@suse.cz>
Fri, 25 Nov 2005 14:33:32 +0000 (14:33 +0000)
committerJiri Srain <jsrain@suse.cz>
Fri, 25 Nov 2005 14:33:32 +0000 (14:33 +0000)
zypp/detail/PackageImplIf.h
zypp/source/yum/YUMPackageImpl.cc
zypp/source/yum/YUMPackageImpl.h

index 7ff1d66..b1aefe1 100644 (file)
@@ -13,6 +13,8 @@
 #define ZYPP_DETAIL_PACKAGEIMPLIF_H
 
 #include "zypp/detail/ResObjectImplIf.h"
+#include "zypp/Edition.h"
+#include "zypp/Arch.h"
 
 ///////////////////////////////////////////////////////////////////
 namespace zypp
@@ -34,21 +36,99 @@ namespace zypp
     {
     public:
       typedef Package ResType;
-#if 0
       class CheckSum
       {
       public:
-        CheckSum(std::string type, bool pkgid, std::string checksum) {
-          _type = type; _pkgid = pkgid; _checksum = checksum;
-        }
+        CheckSum(const std::string & type, const std::string & checksum)
+       : _type(type)
+       , _checksum(checksum)
+       {}
         std::string type() { return _type; }
-        bool pkgid() { return _pkgid; }
         std::string checksum() { return _checksum; }
       private:
         std::string _type;
-        bool _pkgid;
         std::string _checksum;
       };
+      class BaseVersion
+      {
+      public:
+       BaseVersion(const Edition & edition,
+                   const CheckSum & checksum,
+                   const Date & buildtime)
+       : _edition(edition)
+       , _checksum(checksum)
+       , _buildtime(buildtime)
+        {}
+       Edition edition() const { return _edition; }
+       CheckSum checksum() const { return _checksum; }
+       Date buildtime() const { return _buildtime; }
+      private:
+       Edition _edition;
+        PackageImplIf::CheckSum _checksum;
+        Date _buildtime;
+      };
+      class DeltaRpm
+      {
+      public:
+       DeltaRpm(const Arch & arch,
+                const std::string & filename, 
+                const FSize & downloadsize,
+                const CheckSum & checksum,
+                const Date & buildtime,
+                const BaseVersion & base_version)
+       : _arch(arch)
+       , _filename(filename)
+       , _downloadsize(downloadsize)
+       , _checksum(checksum)
+       , _buildtime(buildtime)
+       , _base_version(base_version)
+       {}
+       Arch arch() { return _arch; }
+       std::string filename() { return _filename; }
+       FSize downloadsize() { return _downloadsize; }
+       CheckSum checksum() { return _checksum; }
+       Date buildtime() { return _buildtime; }
+       BaseVersion baseVersion() { return _base_version; }
+      private:
+       Arch _arch;
+       std::string _filename;
+       FSize _downloadsize;
+       CheckSum _checksum;
+       Date _buildtime;
+       BaseVersion _base_version;
+      };
+      class PatchRpm
+      {
+      public:
+       PatchRpm(const Arch & arch,
+                const std::string & filename, 
+                const FSize & downloadsize,
+                const CheckSum & checksum,
+                const Date & buildtime,
+                const std::list<BaseVersion> & base_versions)
+       : _arch(arch)
+       , _filename(filename)
+       , _downloadsize(downloadsize)
+       , _checksum(checksum)
+       , _buildtime(buildtime)
+       , _base_versions(base_versions)
+       {}
+       Arch arch() { return _arch; }
+       std::string filename() { return _filename; }
+       FSize downloadsize() { return _downloadsize; }
+       CheckSum checksum() { return _checksum; }
+       Date buildtime() { return _buildtime; }
+       std::list<BaseVersion> baseVersions() { return _base_versions; }
+      private:
+       Arch _arch;
+       std::string _filename;
+       FSize _downloadsize;
+       CheckSum _checksum;
+       Date _buildtime;
+       std::list<BaseVersion> _base_versions;
+      };
+
+#if 0
       /**
       * @short Holds data about how much space will be needed per directory
       **/
index b19ba5f..66d46ea 100644 (file)
@@ -15,6 +15,7 @@
 
 using namespace std;
 using namespace zypp::detail;
+using namespace zypp::parser::yum;
 
 ///////////////////////////////////////////////////////////////////
 namespace zypp
@@ -35,68 +36,80 @@ namespace zypp
       YUMPackageImpl::YUMPackageImpl(
        const zypp::parser::yum::YUMPrimaryData & parsed
       )
-#if 0
-      : _size_package(strtol(parsed.sizePackage.c_str(), 0, 10)),
-       _size_archive(strtol(parsed.sizeArchive.c_str(), 0, 10)),
-       _size_installed(strtol(parsed.sizeInstalled.c_str(), 0, 10)),
-       _authors(parsed.authors),
-       _keywords(parsed.keywords),
-       _packager(parsed.packager),
-       _url(parsed.url),
+      : _summary(parsed.summary),
+       _description(),
+       _buildtime(strtol(parsed.timeBuild.c_str(), 0, 10)),
        _buildhost(parsed.buildhost),
-       _vendor(parsed.vendor),
+       _url(parsed.url),
+       _vendor( parsed.vendor),
+       _license( parsed.license),
+       _packager(parsed.packager),
        _group(parsed.group),
-       _license(parsed.license),
+       _changelog(), // TODO
        _type(parsed.type),
-       _sourcepkg(parsed.sourcerpm),
+       _license_to_confirm(), // TODO add to metadata
+       _authors(parsed.authors),
+       _keywords( parsed.keywords),
+       _mediaid(strtol(parsed.media.c_str(), 0, 10)),
        _checksum(parsed.checksumType,
-                 string::toLower(parsed.checksumPkgid) == "yes",
                  parsed.checksum),
-       _media(parsed.media),
-       _time_file(strtol(parsed.timeFile.c_str(), 0, 10)),
-       _time_build(strtol(parsed.timeBuild.c_str(), 0, 10)),
+       _filenames(),
        _location(parsed.location),
-       _files(parsed.files),
-       _dir_sizes(parsed.dirSizes),
+
        _install_only(parsed.installOnly)
+#if 0
+      : _size_package(strtol(parsed.sizePackage.c_str(), 0, 10)),
+       _size_archive(strtol(parsed.sizeArchive.c_str(), 0, 10)),
+       _size_installed(strtol(parsed.sizeInstalled.c_str(), 0, 10)),
+       _sourcepkg(parsed.sourcerpm),
+       _dir_sizes(parsed.dirSizes),
 #endif
       {
+       _description.push_back(parsed.description);
+// TODO files
       }
+
       YUMPackageImpl::YUMPackageImpl(
        const zypp::parser::yum::YUMPatchPackage & parsed
       )
-#if 0
-      : _size_package( strtol(parsed.sizePackage.c_str(), 0, 10)),
-       _size_archive( strtol(parsed.sizeArchive.c_str(), 0, 10)),
-       _size_installed( strtol(parsed.sizeInstalled.c_str(), 0, 10)),
-       _authors( parsed.authors),
-       _keywords( parsed.keywords),
-       _packager( parsed.packager),
-       _url( parsed.url),
-       _buildhost( parsed.buildhost),
+      : _summary(parsed.summary),
+       _description(),
+       _buildtime(strtol(parsed.timeBuild.c_str(), 0, 10)),
+       _buildhost(parsed.buildhost),
+       _url(parsed.url),
        _vendor( parsed.vendor),
-       _group( parsed.group),
        _license( parsed.license),
-       _type( parsed.type),
-       _sourcepkg( parsed.sourcerpm),
+       _packager( parsed.packager),
+       _group(parsed.group),
+       _changelog(), // TODO
+       _type(parsed.type),
+       _license_to_confirm(), // TODO add to metadata
+       _authors(parsed.authors),
+       _keywords( parsed.keywords),
+       _mediaid(strtol(parsed.media.c_str(), 0, 10)),
        _checksum(parsed.checksumType,
-                 string::toLower(parsed.checksumPkgid) == "yes",
                  parsed.checksum),
-       _media(parsed.media),
-       _time_file(strtol(parsed.timeFile.c_str(), 0, 10)),
-       _time_build(strtol(parsed.timeBuild.c_str(), 0, 10)),
+       _filenames(),
        _location(parsed.location),
-       _files(parsed.files),
-       _dir_sizes(parsed.dirSizes),
+
        _install_only(parsed.installOnly)
+#if 0
+      : _size_package( strtol(parsed.sizePackage.c_str(), 0, 10)),
+       _size_archive( strtol(parsed.sizeArchive.c_str(), 0, 10)),
+       _size_installed( strtol(parsed.sizeInstalled.c_str(), 0, 10)),
+       _sourcepkg( parsed.sourcerpm),
+       _dir_sizes(parsed.dirSizes),
 #endif
       {
+       _description.push_back(parsed.description);
+       for (std::list<FileData>::const_iterator it = parsed.files.begin();
+            it != parsed.files.end();
+            it++)
+       {
+         _filenames.push_back(it->name);
+       }
        
 /*
-    std::string summary;
-    std::string description;
-    // SuSE specific data
-    // Change Log
     std::list<ChangelogEntry> changelog;
     // Package Files
     struct {
@@ -128,84 +141,133 @@ namespace zypp
 
       /** Package summary */
       Label YUMPackageImpl::summary() const
-      { }
+      { return _summary; }
+
       /** Package description */
       Text YUMPackageImpl::description() const
-      { }
+      { return _description; }
+
       Text YUMPackageImpl::insnotify() const
-      { }
+      // metadata doesn't priovide this attribute
+      { return ResObjectImplIf::insnotify(); }
+
       Text YUMPackageImpl::delnotify() const
-      { }
+      // metadata doesn't priovide this attribute
+      { return ResObjectImplIf::delnotify(); }
+
       FSize YUMPackageImpl::size() const
       { }
+
       bool YUMPackageImpl::providesSources() const
-      { }
+      { return ResObjectImplIf::providesSources(); }
+
       Label YUMPackageImpl::instSrcLabel() const
-      { }
+      { return ResObjectImplIf::instSrcLabel(); }
+      
       Vendor YUMPackageImpl::instSrcVendor() const
-      { }
+      { return ResObjectImplIf::instSrcVendor(); }
+      
       /** */
       Date YUMPackageImpl::buildtime() const
-      { }
+      { return _buildtime; }
+
       /** */
       std::string YUMPackageImpl::buildhost() const
-      { }
+      { return _buildhost; }
+
       /** */
       Date YUMPackageImpl::installtime() const
-      { }
+      { return PackageImplIf::installtime(); }
+
       /** */
       std::string YUMPackageImpl::distribution() const
       { }
+
       /** */
       Vendor YUMPackageImpl::vendor() const
-      { }
+      { return _vendor; }
+
       /** */
       Label YUMPackageImpl::license() const
-      { }
+      { return _license; }
+
       /** */
       std::string YUMPackageImpl::packager() const
-      { }
+      { return _packager; }
+
       /** */
       PackageGroup YUMPackageImpl::group() const
-      { }
+      { return _group; }
+
       /** */
       Text YUMPackageImpl::changelog() const
-      { }
+      { return _changelog; }
+
       /** Don't ship it as class Url, because it might be
        * in fact anything but a legal Url. */
       std::string YUMPackageImpl::url() const
-      { }
+      { return _url; }
+
       /** */
       std::string YUMPackageImpl::os() const
-      { }
+      // metadata doesn't priovide this attribute
+      { return PackageImplIf::os(); }
+
       /** */
       Text YUMPackageImpl::prein() const
-      { }
+      // metadata doesn't priovide this attribute
+      { return PackageImplIf::prein(); }
+
       /** */
       Text YUMPackageImpl::postin() const
-      { }
+      // metadata doesn't priovide this attribute
+      { return PackageImplIf::postin(); }
+
       /** */
       Text YUMPackageImpl::preun() const
-      { }
+      // metadata doesn't priovide this attribute
+      { return PackageImplIf::preun(); }
+
       /** */
       Text YUMPackageImpl::postun() const
-      { }
+      // metadata doesn't priovide this attribute
+      { return PackageImplIf::postun(); }
+
       /** */
       FSize YUMPackageImpl::sourcesize() const
       { }
+
       /** */
       FSize YUMPackageImpl::archivesize() const
       { }
+
       /** */
       Text YUMPackageImpl::authors() const
-      { }
+      { return _authors; }
+
       /** */
       Text YUMPackageImpl::filenames() const
-      { }
+      { return _filenames; }
+
       License YUMPackageImpl::licenseToConfirm() const
-      { }
+      { return _license_to_confirm; }
+
+      /** */
+      std::string YUMPackageImpl::type() const
+      { return _type; }
 
+      /** */
+      std::list<std::string> YUMPackageImpl::keywords() const
+      { return _keywords; }
 
+      bool YUMPackageImpl::installOnly() const
+      { return _install_only; }
+
+      unsigned YUMPackageImpl::mediaId() const
+      { return _mediaid; }
+
+      PackageImplIf::CheckSum YUMPackageImpl::checksum() const
+      { return _checksum; }
 
 
 #if 0
@@ -307,9 +369,6 @@ namespace zypp
       std::string YUMPackageImpl::sourcepkg() const
       { return _sourcepkg; }
       /** */
-      std::string YUMPackageImpl::type() const
-      { return _type; }
-      /** */
       std::list<std::string> YUMPackageImpl::authors() const
       { return _authors; }
       /** */
@@ -325,12 +384,6 @@ namespace zypp
       std::string YUMPackageImpl::location() const
       {}
       /** */
-      unsigned int YUMPackageImpl::medianr() const
-      {}
-      /** */
-      std::list<std::string> YUMPackageImpl::keywords() const
-      { return _keywords; }
-      /** */
       std::string YUMPackageImpl::md5sum() const
       {}
       /** */
index dbe5328..34a9d1d 100644 (file)
@@ -91,7 +91,18 @@ namespace zypp
        virtual Text authors() const;
        /** */
        virtual Text filenames() const;
+        /** */
         virtual License licenseToConfirm() const;
+        /** */
+        virtual std::string type() const;
+        /** */
+        virtual std::list<std::string> keywords() const;
+        /** */
+       virtual bool installOnly() const;
+        /** */
+       virtual unsigned mediaId() const;
+        /** */
+       virtual PackageImplIf::CheckSum checksum() const;
 
 #if 0
         /** */
@@ -143,8 +154,6 @@ namespace zypp
         /** */
         virtual std::string sourcepkg() const;
         /** */
-        virtual std::string type() const;
-        /** */
         virtual std::list<std::string> authors() const;
         /** */
         virtual std::list<std::string> filenames() const;
@@ -157,8 +166,6 @@ namespace zypp
         /** */
         virtual unsigned int medianr() const;
         /** */
-        virtual std::list<std::string> keywords() const;
-        /** */
         virtual std::string md5sum() const;
         /** */
         virtual std::string externalUrl() const;
@@ -174,33 +181,36 @@ namespace zypp
         virtual bool isRemote() const;
         /** */
         virtual bool prefererCandidate() const;
+#endif
       protected:
+       Label _summary;
+       Text _description;
+       Date _buildtime;
+       std::string _buildhost;
+       std::string _url;
+       Vendor _vendor;
+       Label _license;
+       std::string _packager;
+       PackageGroup _group;
+       Text _changelog;
+       std::string _type;
+       License _license_to_confirm;
+       Text _authors;
+       std::list<std::string>_keywords;
+       unsigned _mediaid;
+       PackageImplIf::CheckSum _checksum;
+       Text _filenames;
+       std::string _location;
+
+       bool _install_only;
+/*
        unsigned _size_package;
        unsigned _size_installed;
        unsigned _size_archive;
-       std::list<std::string> _authors;
-       std::list<std::string>_keywords;
-       std::string _packager;
-       std::string _url;
-       std::string _buildhost;
-       std::string _vendor;
-       std::string _group;
-       std::string _license;
        std::string _sourcepkg;
-       std::string _type;
-       CheckSum _checksum;
-       std::string _media;
-       unsigned _time_file;
-       unsigned _time_build;
-       std::string _location;
-       std::list<FileData> _files;
        std::list<DirSize> _dir_sizes;
-       bool _install_only;
+*/
 /*
-       std::string summary;
-       std::list<std::string> description;
-       // SuSE specific data
-       // Change Log
        std::list<ChangelogEntry> changelog;
        // Package Files
        struct {
@@ -225,7 +235,7 @@ namespace zypp
 
 
 */
-#endif
+
 
        };
       ///////////////////////////////////////////////////////////////////