- Speed up retrieving MediaNr attribute, as it slows down install
authorMichael Andres <ma@suse.de>
Fri, 3 Aug 2007 12:59:51 +0000 (12:59 +0000)
committerMichael Andres <ma@suse.de>
Fri, 3 Aug 2007 12:59:51 +0000 (12:59 +0000)
  order calculation. (#297173)

devel/devel.ma/Test.cc
zypp/cache/CacheAttributes.h
zypp/repo/cached/PackageImpl.cc
zypp/repo/cached/PackageImpl.h
zypp/repo/cached/SrcPackageImpl.cc
zypp/repo/cached/SrcPackageImpl.h

index 4368eb7..9cc9af3 100644 (file)
@@ -188,10 +188,7 @@ int main( int argc, char * argv[] )
 {
   INT << "===[START]==========================================" << endl;
 
-  DummyConsumer dummy;
-  RepoParser parser( data::RecordId(), dummy );
 
-  parser.parse( "REPO" );
 
   INT << "===[END]============================================" << endl << endl;
   return 0;
index dc98f3d..2472c67 100644 (file)
@@ -75,7 +75,6 @@ namespace zypp
     inline const Attribute & attrPatternUserVisible()          { static Attribute a("Pattern","userVisible");          return a; }
     inline const Attribute & attrPatternUiIncludes()           { static Attribute a("Pattern","uiIncludes");           return a; }
     inline const Attribute & attrPatternUiExtends()            { static Attribute a("Pattern","uiExtends");            return a; }
-
     ///////////////////////////////////////////////////////////////////
     inline const Attribute & attrProductDistributionEdition()  { static Attribute a("Product","distributionEdition");  return a; }
     inline const Attribute & attrProductDistributionName()     { static Attribute a("Product","distributionName");     return a; }
index f19fe45..b47c9f2 100644 (file)
@@ -134,6 +134,16 @@ Changelog PackageImpl::changelog() const
   return Changelog();
 }
 
+unsigned PackageImpl::mediaNr() const
+{
+  return _repository->resolvableQuery().queryNumericAttribute( _id, cache::attrPackageLocationMediaNr() );
+}
+
+ByteCount PackageImpl::downloadSize() const
+{
+  return _repository->resolvableQuery().queryNumericAttribute( _id, cache::attrPackageLocationDownloadSize() );
+}
+
 OnMediaLocation PackageImpl::location() const
 {
   OnMediaLocation loc;
index e51614f..a8f47f1 100644 (file)
@@ -31,6 +31,18 @@ namespace cached
 
     PackageImpl( const data::RecordId &id, repo::cached::RepoImpl::Ptr repository_r );
 
+  public:
+      /** Overloaded ResObjectImpl attribute.
+       * \return The \ref location media number.
+       */
+      virtual unsigned mediaNr() const;
+
+      /** Overloaded ResObjectImpl attribute.
+       * \return The \ref location downloadSize.
+       */
+      virtual ByteCount downloadSize() const;
+
+  public:
     virtual TranslatedText summary() const;
     virtual TranslatedText description() const;
     virtual TranslatedText insnotify() const;
index fb49f61..1436a65 100644 (file)
@@ -97,16 +97,20 @@ Date SrcPackageImpl::installtime() const
 // SRC PACKAGE
 ////////////////////////////////////////////////////////
 
+unsigned SrcPackageImpl::mediaNr() const
+{
+  return _repository->resolvableQuery().queryNumericAttribute( _id, cache::attrSrcPackageLocationMediaNr() );
+}
+
+ByteCount SrcPackageImpl::downloadSize() const
+{
+  return _repository->resolvableQuery().queryNumericAttribute( _id, cache::attrSrcPackageLocationDownloadSize() );
+}
+
 OnMediaLocation SrcPackageImpl::location() const
 {
-  OnMediaLocation loc( _repository->resolvableQuery().queryStringAttribute( _id, cache::attrSrcPackageLocationFilename() ),
-                       _repository->resolvableQuery().queryNumericAttribute( _id, cache::attrSrcPackageLocationMediaNr() ) );
-
-  string chktype = _repository->resolvableQuery().queryStringAttribute( _id, cache::attrSrcPackageLocationChecksumType() );
-  string chkvalue = _repository->resolvableQuery().queryStringAttribute( _id, cache::attrSrcPackageLocationChecksum() );
-  loc.setChecksum(CheckSum(chktype, chkvalue));
-  loc.setDownloadSize( _repository->resolvableQuery().queryNumericAttribute( _id, cache::attrSrcPackageLocationDownloadSize() ) );
-#warning FIX REMAINING LOCATION ATTRS
+  OnMediaLocation loc;
+  queryOnMediaLocation( _repository->resolvableQuery(), _id, cache::attrSrcPackageLocation, loc );
   return loc;
 }
 
index efa8139..bab1152 100644 (file)
@@ -30,8 +30,20 @@ namespace cached
 
     SrcPackageImpl( const data::RecordId &id, repo::cached::RepoImpl::Ptr repository_r );
 
+   public:
+     /** Overloaded ResObjectImpl attribute.
+      * \return The \ref location media number.
+      */
+     virtual unsigned mediaNr() const;
+
+     /** Overloaded ResObjectImpl attribute.
+      * \return The \ref location downloadSize.
+      */
+     virtual ByteCount downloadSize() const;
+
+   public:
     virtual Repository repository() const;
-    
+
     virtual TranslatedText summary() const;
     virtual TranslatedText description() const;
     virtual TranslatedText insnotify() const;
@@ -42,7 +54,7 @@ namespace cached
     virtual bool installOnly() const;
     virtual Date buildtime() const;
     virtual Date installtime() const;
-    
+
     virtual OnMediaLocation location() const;
   private:
     repo::cached::RepoImpl::Ptr _repository;