added new fuction zypp::ZYpp::provideSrcPackage
authorMatthias Grießmeier <mgriessmeier@suse.de>
Fri, 5 Apr 2013 08:26:49 +0000 (10:26 +0200)
committerMichael Andres <ma@suse.de>
Fri, 5 Apr 2013 12:26:00 +0000 (14:26 +0200)
zypp/ZYpp.cc
zypp/ZYpp.h
zypp/target/TargetImpl.cc
zypp/target/TargetImpl.h
zypp/zypp_detail/ZYppImpl.cc
zypp/zypp_detail/ZYppImpl.h

index 08900fb..6cb0a83 100644 (file)
@@ -15,6 +15,7 @@
 #include "zypp/ZYpp.h"
 #include "zypp/zypp_detail/ZYppImpl.h"
 #include "zypp/sat/Pool.h"
+#include "zypp/ManagedFile.h"
 
 using std::endl;
 
@@ -100,6 +101,8 @@ namespace zypp
   void ZYpp::installSrcPackage( const SrcPackage_constPtr & srcPackage_r )
   { _pimpl->installSrcPackage( srcPackage_r ); }
 
+  ManagedFile ZYpp::provideSrcPackage( const SrcPackage_constPtr & srcPackage_r )
+  {return _pimpl->provideSrcPackage( srcPackage_r ); }
   ///////////////////////////////////////////////////////////////////
 
   void ZYpp::setRequestedLocales( const LocaleSet & locales_r )
index a5f6e09..3fed0d0 100644 (file)
@@ -20,6 +20,7 @@
 #include "zypp/APIConfig.h"
 
 #include "zypp/ZConfig.h"
+#include "zypp/ManagedFile.h"
 
 #include "zypp/ZYppCommit.h"
 #include "zypp/ResTraits.h"
@@ -118,6 +119,11 @@ namespace zypp
      */
     void installSrcPackage( const SrcPackage_constPtr & srcPackage_r );
 
+    /** Provides a source package on the Target.
+     * \throws Exception
+     */
+    ManagedFile provideSrcPackage( const SrcPackage_constPtr & srcPackage_r );
+
   public:
     /** */
     Resolver_Ptr resolver() const;
index 2d087f1..0581417 100644 (file)
@@ -1812,14 +1812,19 @@ namespace zypp
     void TargetImpl::installSrcPackage( const SrcPackage_constPtr & srcPackage_r )
     {
       // provide on local disk
-      repo::RepoMediaAccess access_r;
-      repo::SrcPackageProvider prov( access_r );
-      ManagedFile localfile = prov.provideSrcPackage( srcPackage_r );
+      ManagedFile localfile = provideSrcPackage(srcPackage_r);
       // install it
       rpm().installPackage ( localfile );
     }
 
-    /////////////////////////////////////////////////////////////////
+    ManagedFile TargetImpl::provideSrcPackage( const SrcPackage_constPtr & srcPackage_r )
+    {
+      // provide on local disk
+      repo::RepoMediaAccess access_r;
+      repo::SrcPackageProvider prov( access_r );
+      return prov.provideSrcPackage( srcPackage_r );
+    }
+    ////////////////////////////////////////////////////////////////
   } // namespace target
   ///////////////////////////////////////////////////////////////////
   /////////////////////////////////////////////////////////////////
index 371b8a4..3390118 100644 (file)
@@ -29,6 +29,7 @@
 #include "zypp/target/RequestedLocalesFile.h"
 #include "zypp/target/SoftLocksFile.h"
 #include "zypp/target/HardLocksFile.h"
+#include "zypp/ManagedFile.h"
 
 ///////////////////////////////////////////////////////////////////
 namespace zypp
@@ -131,6 +132,9 @@ namespace zypp
       /** Install a source package on the Target. */
       void installSrcPackage( const SrcPackage_constPtr & srcPackage_r );
 
+      /** Provides a source package on the Target. */
+      ManagedFile provideSrcPackage( const SrcPackage_constPtr & srcPackage_r );
+
       /** Overload to realize stream output. */
       virtual std::ostream & dumpOn( std::ostream & str ) const
       {
index 7c6589f..79cd1a5 100644 (file)
@@ -162,6 +162,13 @@ namespace zypp
       _target->_pimpl->installSrcPackage( srcPackage_r );
     }
 
+    ManagedFile ZYppImpl::provideSrcPackage( const SrcPackage_constPtr & srcPackage_r )
+    {
+      if (! _target)
+        ZYPP_THROW( Exception("Target not initialized.") );
+      return _target->_pimpl->provideSrcPackage( srcPackage_r );
+    }
+
     //------------------------------------------------------------------------
     // target store path
 
index 2294d8c..fc70cfa 100644 (file)
@@ -21,6 +21,7 @@
 #include "zypp/ZYppCommit.h"
 #include "zypp/ResTraits.h"
 #include "zypp/DiskUsageCounter.h"
+#include "zypp/ManagedFile.h"
 
 using namespace zypp::filesystem;
 
@@ -92,6 +93,9 @@ namespace zypp
       /** Install a source package on the Target. */
       void installSrcPackage( const SrcPackage_constPtr & srcPackage_r );
 
+      /** Install a source package on the Target. */
+      ManagedFile provideSrcPackage( const SrcPackage_constPtr & srcPackage_r );
+
     public:
       /** Get the path where zypp related plugins store persistent data and caches   */
       Pathname homePath() const;