added parsing more package attributes
authorJiri Srain <jsrain@suse.cz>
Tue, 29 Nov 2005 11:36:23 +0000 (11:36 +0000)
committerJiri Srain <jsrain@suse.cz>
Tue, 29 Nov 2005 11:36:23 +0000 (11:36 +0000)
zypp/source/yum/YUMPackageImpl.cc
zypp/source/yum/YUMPackageImpl.h
zypp/source/yum/YUMPatchImpl.cc
zypp/source/yum/YUMSource.cc

index 66d46ea..ab931f9 100644 (file)
@@ -55,6 +55,8 @@ namespace zypp
                  parsed.checksum),
        _filenames(),
        _location(parsed.location),
+       _delta_rpms(),
+       _patch_rpms(),
 
        _install_only(parsed.installOnly)
 #if 0
@@ -67,6 +69,7 @@ namespace zypp
       {
        _description.push_back(parsed.description);
 // TODO files
+// TODO changelog
       }
 
       YUMPackageImpl::YUMPackageImpl(
@@ -90,7 +93,9 @@ namespace zypp
        _checksum(parsed.checksumType,
                  parsed.checksum),
        _filenames(),
-       _location(parsed.location),
+       _location(parsed.plainRpms.begin()->filename)
+       _delta_rpms(),
+       _patch_rpms(),
 
        _install_only(parsed.installOnly)
 #if 0
@@ -108,34 +113,55 @@ namespace zypp
        {
          _filenames.push_back(it->name);
        }
-       
-/*
-    std::list<ChangelogEntry> changelog;
-    // Package Files
-    struct {
-      std::string arch;
-      std::string filename;
-      std::string downloadsize;
-      std::string md5sum;
-      std::string buildtime;
-    } plainRpm;
-    struct {
-      std::string arch;
-      std::string filename;
-      std::string downloadsize;
-      std::string md5sum;
-      std::string buildtime;
-      std::list<YUMBaseVersion> baseVersions;
-    } patchRpm;
-    struct {
-      std::string arch;
-      std::string filename;
-      std::string downloadsize;
-      std::string md5sum;
-      std::string buildtime;
-      YUMBaseVersion baseVersion;
-    } deltaRpm;
-*/
+       for (std::list<zypp::parser::yum::PatchRpm>::const_iterator it
+               = parsed.patchRpms.begin();
+            it != parsed.patchRpms.end();
+            it++)
+       {
+         std::list<BaseVersion> base_versions;
+         for (std::list<YUMBaseVersion>::const_iterator bit
+                       = it->baseVersions.begin();
+              bit != it->baseVersions.end();
+              bit++)
+         {
+           Edition base_edition(bit->ver, bit->rel, bit->epoch);
+           BaseVersion base_version(base_edition,
+                                    CheckSum("md5", bit->md5sum),
+                                    strtol(bit->buildtime.c_str(), 0, 10));
+           base_versions.push_back(base_version);
+         }
+         PatchRpm patch(Arch(it->arch),
+                        it->filename,
+                        strtol(it->downloadsize.c_str(), 0, 10),
+                        CheckSum("md5", it->md5sum),
+                        strtol(it->buildtime.c_str(), 0, 10),
+                        base_versions
+         );
+         _patch_rpms.push_back(patch);
+         
+       }
+       for (std::list<zypp::parser::yum::DeltaRpm>::const_iterator it
+               = parsed.deltaRpms.begin();
+            it != parsed.deltaRpms.end();
+            it++)
+       {
+         Edition base_edition(it->baseVersion.ver,
+                              it->baseVersion.rel,
+                              it->baseVersion.epoch);
+         BaseVersion base_version(base_edition,
+                                  CheckSum("md5", it->baseVersion.md5sum),
+                                  strtol(it->baseVersion.buildtime.c_str(),
+                                       0, 10));
+         DeltaRpm delta(Arch(it->arch),
+                        it->filename,
+                        strtol(it->downloadsize.c_str(), 0, 10),
+                        CheckSum("md5", it->md5sum),
+                        strtol(it->buildtime.c_str(), 0, 10),
+                        base_version
+         );
+         _delta_rpms.push_back(delta);
+       }
+// TODO changelog
       }
 
 
@@ -269,6 +295,11 @@ namespace zypp
       PackageImplIf::CheckSum YUMPackageImpl::checksum() const
       { return _checksum; }
 
+      std::list<PackageImplIf::DeltaRpm> YUMPackageImpl::deltaRpms() const
+      { return _delta_rpms; }
+
+      std::list<PackageImplIf::PatchRpm> YUMPackageImpl::patchRpms() const
+      { return _patch_rpms; }
 
 #if 0
       /** */
index 34a9d1d..a8d1d0d 100644 (file)
@@ -103,6 +103,10 @@ namespace zypp
        virtual unsigned mediaId() const;
         /** */
        virtual PackageImplIf::CheckSum checksum() const;
+        /** */
+       virtual std::list<PackageImplIf::DeltaRpm> deltaRpms() const;
+        /** */
+       virtual std::list<PackageImplIf::PatchRpm> patchRpms() const;
 
 #if 0
         /** */
@@ -201,6 +205,8 @@ namespace zypp
        PackageImplIf::CheckSum _checksum;
        Text _filenames;
        std::string _location;
+       std::list<DeltaRpm> _delta_rpms;
+       std::list<PatchRpm> _patch_rpms;
 
        bool _install_only;
 /*
@@ -212,28 +218,6 @@ namespace zypp
 */
 /*
        std::list<ChangelogEntry> changelog;
-       // Package Files
-       struct {
-         std::string arch;
-         std::string filename;
-         std::string downloadsize;
-         std::string md5sum;
-         std::string buildtime;
-       } plainRpm;
-       struct {
-         std::string arch;
-         std::string filename;
-         std::string downloadsize;
-         std::string md5sum;
-         std::string buildtime;
-         std::list<YUMBaseVersion> baseVersions;
-       } patchRpm;
-       struct {
-         std::string arch;
-         std::string filename;
-         std::string downloadsize;
-
-
 */
 
 
index 86421fd..0a0873b 100644 (file)
@@ -75,7 +75,7 @@ namespace zypp
          Resolvable::Kind("Patch"),
          parsed.name,
          Rel(Rel::EQ),
-         Edition(parsed.ver, parsed.rel, strtol(parsed.epoch.c_str(), 0, 10))
+         Edition(parsed.ver, parsed.rel, parsed.epoch)
          ));
        for (std::list<shared_ptr<YUMPatchAtom> >::const_iterator it
                                        = parsed.atoms.begin();
index 59aa10c..1d61b4c 100644 (file)
@@ -53,7 +53,7 @@ namespace zypp
                                                  Resolvable::Kind("Package"));
          Package::Ptr package = detail::makeResolvableFromImpl(
            parsed.name,
-           Edition( parsed.ver, parsed.rel ),
+           Edition( parsed.ver, parsed.rel, parsed.epoch ),
            Arch( parsed.arch ),
            impl
          );
@@ -69,7 +69,7 @@ namespace zypp
                                                  Resolvable::Kind("Message"));
          Message::Ptr message = detail::makeResolvableFromImpl(
            parsed.name,
-           Edition( parsed.ver, parsed.rel ),
+           Edition( parsed.ver, parsed.rel, parsed.epoch ),
            Arch( "noarch" ),
            impl
          );
@@ -86,7 +86,7 @@ namespace zypp
                                                  Resolvable::Kind("Script"));
          Script::Ptr script = detail::makeResolvableFromImpl(
            parsed.name,
-           Edition( parsed.ver, parsed.rel ),
+           Edition( parsed.ver, parsed.rel, parsed.epoch ),
            Arch( "noarch" ),
            impl
          );
@@ -103,7 +103,7 @@ namespace zypp
                                                  Resolvable::Kind("Product"));
          Product::Ptr product = detail::makeResolvableFromImpl(
            parsed.name,
-           Edition( parsed.ver, parsed.rel ),
+           Edition( parsed.ver, parsed.rel, parsed.epoch ),
            Arch( "noarch" ),
            impl
          );
@@ -120,7 +120,7 @@ namespace zypp
                                                  Resolvable::Kind("Patch"));
          Patch::Ptr patch = detail::makeResolvableFromImpl(
            parsed.name,
-           Edition( parsed.ver, parsed.rel ),
+           Edition( parsed.ver, parsed.rel, parsed.epoch ),
            Arch( "noarch" ),
            impl
          );
@@ -198,9 +198,7 @@ namespace zypp
            _kind,
            dep.name,
            Rel(dep.flags),
-           Edition(dep.ver,
-                   dep.rel,
-                   strtol(dep.epoch.c_str(), 0, 10))
+           Edition(dep.ver, dep.rel, dep.epoch)
          );
          return cap;
        }