Imported Upstream version 14.45.0
[platform/upstream/libzypp.git] / zypp / Resolver.h
index f76a331..f2ef092 100644 (file)
@@ -113,12 +113,15 @@ namespace zypp
 
 
     /**
-     * Do an distribution upgrade
+     * Do an distribution upgrade (DUP)
      *
      * Perform a distribution upgrade. This performs an update of
      * all packages with a special resolver algorithm which takes
      * care of package splits, pattern  and  product  updates,
      * etc.
+     * This call also turns the solver into \ref upgradeMode, so
+     * consecutive calls to \ref resolvePool performed in this
+     * mode too. Call \ref setUpgradeMode to turn this mode off.
      *
      * \see \ref addUpgradeRepo
      **/
@@ -188,8 +191,11 @@ namespace zypp
     bool onlyRequires() const;
 
     /**
-     * Whether the \ref Resolver is in upgrade mode.
+     * Setting whether the solver should perform in 'upgrade' mode or
+     * not.
+     * \see \ref doUpgrade.
      */
+    void setUpgradeMode( bool yesno_r );
     bool upgradeMode() const;
 
     /**
@@ -234,6 +240,32 @@ namespace zypp
     void setDefaultCleandepsOnRemove(); // set back to default (in zypp.conf)
     bool cleandepsOnRemove() const;
 
+    /** \name  Solver flags for DUP mode.
+     * DUP mode default settings differ from 'ordinary' ones. Default for
+     * all DUP flags is \c true.
+     */
+    //@{
+    /** dup mode: allow to downgrade installed solvable */
+    void dupSetAllowDowngrade( bool yesno_r );
+    void dupSetDefaultAllowDowngrade();        // Set back to default
+    bool dupAllowDowngrade() const;
+
+    /** dup mode: allow to change name of installed solvable */
+    void dupSetAllowNameChange( bool yesno_r );
+    void dupSetDefaultAllowNameChange();       // Set back to default
+    bool dupAllowNameChange() const;
+
+    /** dup mode: allow to change architecture of installed solvables */
+    void dupSetAllowArchChange( bool yesno_r );
+    void dupSetDefaultAllowArchChange();       // Set back to default
+    bool dupAllowArchChange() const;
+
+    /**  dup mode: allow to change vendor of installed solvables*/
+    void dupSetAllowVendorChange( bool yesno_r );
+    void dupSetDefaultAllowVendorChange();     // Set back to default
+    bool dupAllowVendorChange() const;
+    //@}
+
     /** \name Upgrade to content of a specific repository.
      * \note This is an ordinary solver request. You should simply
      * \ref resolvePool to execute, and not \ref doUpgrade.
@@ -248,6 +280,11 @@ namespace zypp
     void addUpgradeRepo( Repository repo_r );
 
     /**
+     * Whether there is at least one \c UpgradeRepo request pending
+     */
+    bool upgradingRepos() const;
+
+    /**
      * Whether there is an \c UpgradeRepo request pending for this repo.
      */
     bool upgradingRepo( Repository repo_r ) const;