- Remove obsolete AdditionalCapabilities interface from ResPool.
authorMichael Andres <ma@suse.de>
Wed, 23 Apr 2008 20:30:38 +0000 (20:30 +0000)
committerMichael Andres <ma@suse.de>
Wed, 23 Apr 2008 20:30:38 +0000 (20:30 +0000)
  Forward sat::Pool::RepositoryIterator. There's no more need to
  maintain an extra Repository list in ResPool.

package/libzypp.changes
zypp/ResPool.cc
zypp/ResPool.h
zypp/pool/PoolImpl.h
zypp/pool/PoolTraits.h

index 909dc8d..9c6c3d2 100644 (file)
@@ -1,4 +1,12 @@
 -------------------------------------------------------------------
+Wed Apr 23 22:24:00 CEST 2008 - ma@suse.de
+
+- Remove obsolete AdditionalCapabilities interface from ResPool.
+  Forward sat::Pool::RepositoryIterator. There's no more need to
+  maintain an extra Repository list in ResPool.
+- revision 9806
+
+-------------------------------------------------------------------
 Wed Apr 23 21:12:56 CEST 2008 - ma@suse.de
 
 - Support dependencies requiring a specific architecture: 
index 145f75d..090f6e6 100644 (file)
@@ -67,29 +67,13 @@ namespace zypp
   { return _pimpl->find( slv_r ); }
 
   ResPool::size_type ResPool::knownRepositoriesSize() const
-  { return _pimpl->knownRepositories().size(); }
+  { return _pimpl->knownRepositoriesSize(); }
 
   ResPool::repository_iterator ResPool::knownRepositoriesBegin() const
-  { return _pimpl->knownRepositories().begin(); }
+  { return _pimpl->knownRepositoriesBegin(); }
 
   ResPool::repository_iterator ResPool::knownRepositoriesEnd() const
-  { return _pimpl->knownRepositories().end(); }
-
-
-  void ResPool::setAdditionalRequire( const AdditionalCapabilities & capset ) const
-  { _pimpl->setAdditionalRequire( capset ); }
-  ResPool::AdditionalCapabilities & ResPool::additionalRequire() const
-  { return _pimpl->additionalRequire(); }
-
-  void ResPool::setAdditionalConflict( const AdditionalCapabilities & capset ) const
-  { _pimpl->setAdditionalConflict( capset ); }
-  ResPool::AdditionalCapabilities & ResPool::additionaConflict() const
-  { return _pimpl->additionaConflict(); }
-
-  void ResPool::setAdditionalProvide( const AdditionalCapabilities & capset ) const
-  { _pimpl->setAdditionalProvide( capset ); }
-  ResPool::AdditionalCapabilities & ResPool::additionaProvide() const
-  { return _pimpl->additionaProvide(); }
+  { return _pimpl->knownRepositoriesEnd(); }
 
   const pool::PoolTraits::ItemContainerT & ResPool::store() const
   { return _pimpl->store(); }
index 85fd854..ccc4885 100644 (file)
@@ -53,8 +53,6 @@ namespace zypp
       typedef PoolItem                                  value_type;
       typedef pool::PoolTraits::size_type               size_type;
       typedef pool::PoolTraits::const_iterator          const_iterator;
-
-      typedef pool::PoolTraits::AdditionalCapabilities  AdditionalCapabilities;
       typedef pool::PoolTraits::repository_iterator      repository_iterator;
 
     public:
@@ -301,69 +299,6 @@ namespace zypp
       bool isAvailableLocale( const Locale & locale_r ) const;
       //@}
 
-   public:
-      /** \name Handling addition capabilities in the pool in order for solving it in
-       *  a solver run. This is used for tasks like needing a package with the name "foo".
-       *  The solver has to evaluate a proper package by his own.
-       *
-       *  CAUTION: This has another semantic in the solver. The required resolvable has
-       *  been set for installation (in the pool) only AFTER a solver run.
-       */
-
-      /**
-       *  Handling additional requirement. E.G. need package "foo" and package
-       *  "foo1" which has a greater version than 1.0:
-       *
-       *  \code
-       *  Capabilities capset;
-       *  capset.insert (CapFactory().parse( ResTraits<Package>::kind, "foo"));
-       *  capset.insert (CapFactory().parse( ResTraits<Package>::kind, "foo1 > 1.0"));
-       *
-       *  // The user is setting this capablility
-       *  ResPool::AdditionalCapabilities aCapabilities;
-       *  aCapabilities[ResStatus::USER] = capset;
-       *
-       *  setAdditionalRequire( aCapabilities );
-       *  \endcode
-       */
-      void setAdditionalRequire( const AdditionalCapabilities & capset ) const;
-      AdditionalCapabilities & additionalRequire() const;
-
-     /**
-       *  Handling additional conflicts. E.G. do not install anything which provides "foo":
-       *
-       *  \code75
-       *  Capabilities capset;
-       *  capset.insert (CapFactory().parse( ResTraits<Package>::kind, "foo"));
-       *
-       *  // The user is setting this capablility
-       *  ResPool::AdditionalCapabilities aCapabilities;
-       *  aCapabilities[ResStatus::USER] = capset;
-       *
-       *  setAdditionalConflict( aCapabilities );
-       *  \endcode
-       */
-      void setAdditionalConflict( const AdditionalCapabilities & capset ) const;
-      AdditionalCapabilities & additionaConflict() const;
-
-     /**
-       *  Handling additional provides. This is used for ignoring a requirement.
-       *  e.G. Do ignore the requirement "foo":
-       *
-       *  \code
-       *  Capabilities capset;
-       *  capset.insert (CapFactory().parse( ResTraits<Package>::kind, "foo"));
-       *
-       *  // The user is setting this capablility
-       *  ResPool::AdditionalCapabilities aCapabilities;
-       *  aCapabilities[ResStatus::USER] = capset;
-       *
-       *  setAdditionalProvide( aCapabilities );
-       *  \endcode
-       */
-      void setAdditionalProvide( const AdditionalCapabilities & capset ) const;
-      AdditionalCapabilities & additionaProvide() const;
-
     private:
       const pool::PoolTraits::ItemContainerT & store() const;
       const pool::PoolTraits::Id2ItemT & id2item() const;
index bcf5149..a0d7976 100644 (file)
@@ -49,10 +49,9 @@ namespace zypp
         typedef PoolTraits::const_iterator             const_iterator;
        typedef PoolTraits::Id2ItemT                    Id2ItemT;
 
-        typedef sat::detail::SolvableIdType            SolvableIdType;
+        typedef PoolTraits::repository_iterator                repository_iterator;
 
-        typedef PoolTraits::AdditionalCapabilities     AdditionalCapabilities;
-        typedef PoolTraits::RepoContainerT             KnownRepositories;
+        typedef sat::detail::SolvableIdType            SolvableIdType;
 
       public:
         /** Default ctor */
@@ -114,79 +113,26 @@ namespace zypp
         //
         ///////////////////////////////////////////////////////////////////
       public:
-        /**
-         *  Handling additional requirement. E.G. need package "foo" and package
-         *  "foo1" which has a greater version than 1.0:
-         *
-         *  Capset capset;
-         *  capset.insert (CapFactory().parse( ResTraits<Package>::kind, "foo"));
-         *  capset.insert (CapFactory().parse( ResTraits<Package>::kind, "foo1 > 1.0"));
-         *
-         *  setAdditionalRequire( capset );
-         */
-        void setAdditionalRequire( const AdditionalCapabilities & capset ) const
-        { _additionalRequire = capset; }
-        AdditionalCapabilities & additionalRequire() const
-        { return _additionalRequire; }
-
-        /**
-         *  Handling additional conflicts. E.G. do not install anything which provides "foo":
-         *
-         *  Capset capset;
-         *  capset.insert (CapFactory().parse( ResTraits<Package>::kind, "foo"));
-         *
-         *  setAdditionalConflict( capset );
-         */
-        void setAdditionalConflict( const AdditionalCapabilities & capset ) const
-        { _additionaConflict = capset; }
-        AdditionalCapabilities & additionaConflict() const
-        { return _additionaConflict; }
-
-       /**
-         *  Handling additional provides. This is used for ignoring a requirement.
-        *  e.G. Do ignore the requirement "foo":
-         *
-         *  Capset capset;
-         *  capset.insert (CapFactory().parse( ResTraits<Package>::kind, "foo"));
-         *
-         *  setAdditionalProvide( cap );
-         */
-        void setAdditionalProvide( const AdditionalCapabilities & capset ) const
-        { _additionaProvide = capset; }
-        AdditionalCapabilities & additionaProvide() const
-        { return _additionaProvide; }
-
-        ///////////////////////////////////////////////////////////////////
-        //
-        ///////////////////////////////////////////////////////////////////
-      public:
         ResPoolProxy proxy( ResPool self ) const
         {
           checkSerial();
           if ( !_poolProxy )
+          {
             _poolProxy.reset( new ResPoolProxy( self, *this ) );
+          }
           return *_poolProxy;
         }
 
       public:
-        /** Access list of Repositories that contribute ResObjects.
-         * Built on demand.
-         */
-        const KnownRepositories & knownRepositories() const
-        {
-          checkSerial();
-          if ( ! _knownRepositoriesPtr )
-          {
-            _knownRepositoriesPtr.reset( new KnownRepositories );
+        /** Forward list of Repositories that contribute ResObjects from \ref sat::Pool */
+        size_type knownRepositoriesSize() const
+        { checkSerial(); return satpool().reposSize(); }
 
-            sat::Pool pool( satpool() );
-            for_( it, pool.reposBegin(), pool.reposEnd() )
-            {
-              _knownRepositoriesPtr->push_back( *it );
-            }
-          }
-          return *_knownRepositoriesPtr;
-        }
+        repository_iterator knownRepositoriesBegin() const
+        { checkSerial(); return satpool().reposBegin(); }
+
+        repository_iterator knownRepositoriesEnd() const
+        { checkSerial(); return satpool().reposEnd(); }
 
         ///////////////////////////////////////////////////////////////////
         //
@@ -211,9 +157,15 @@ namespace zypp
                 sat::Solvable s( i );
                 PoolItem & pi( _store[i] );
                 if ( ! s &&  pi )
+                {
+                  // the PoolItem got invalidated (e.g unloaded repo)
                   pi = PoolItem();
+                }
                 else if ( s && ! pi )
+                {
+                  // new PoolItem to add
                   pi = PoolItem::makePoolItem( s ); // the only way to create a new one!
+                }
               }
             }
             _storeDirty = false;
@@ -260,7 +212,6 @@ namespace zypp
          _id2itemDirty = true;
          _id2item.clear();
           _poolProxy.reset();
-          _knownRepositoriesPtr.reset();
         }
 
       private:
@@ -272,12 +223,7 @@ namespace zypp
         mutable DefaultIntegral<bool,true>    _id2itemDirty;
 
       private:
-        mutable AdditionalCapabilities        _additionalRequire;
-        mutable AdditionalCapabilities        _additionaConflict;
-        mutable AdditionalCapabilities        _additionaProvide;
-
         mutable shared_ptr<ResPoolProxy>      _poolProxy;
-        mutable scoped_ptr<KnownRepositories> _knownRepositoriesPtr;
     };
     ///////////////////////////////////////////////////////////////////
 
index a6c7441..0858b47 100644 (file)
@@ -139,16 +139,11 @@ namespace zypp
                                                         byIdent_iterator;
 
       /* list of known Repositories */
-      typedef std::list<Repository>                    RepoContainerT;
-      typedef RepoContainerT::const_iterator           repository_iterator;
+      typedef sat::Pool::RepositoryIterator            repository_iterator;
 
       typedef PoolImpl                   Impl;
       typedef shared_ptr<PoolImpl>       Impl_Ptr;
       typedef shared_ptr<const PoolImpl> Impl_constPtr;
-
-      /** Map of Capabilities and "who" has set it*/
-      typedef std::map<ResStatus::TransactByValue,Capabilities>                AdditionalCapabilities;
-
     };
     ///////////////////////////////////////////////////////////////////