Imported Upstream version 17.23.0
[platform/upstream/libzypp.git] / zypp / pool / PoolImpl.cc
index f41e147..c10c8f0 100644 (file)
 #include "zypp/base/LogTools.h"
 
 #include "zypp/pool/PoolImpl.h"
-#include "zypp/pool/PoolStats.h"
-#include "zypp/Package.h"
-#include "zypp/VendorAttr.h"
-
-#include "zypp/sat/Pool.h"
-#include "zypp/sat/Repo.h"
 
 using std::endl;
 
@@ -26,166 +20,16 @@ using std::endl;
 namespace zypp
 { /////////////////////////////////////////////////////////////////
 
-  std::ostream & operator<<( std::ostream & str, const CapAndItem & obj )
-  {
-    return str << "{" << obj.cap << ", " << obj.item << "}";
-  }
+  ResPool::EstablishedStates::~EstablishedStates()
+  {}
+
+  ResPool::EstablishedStates::ChangedPseudoInstalled ResPool::EstablishedStates::changedPseudoInstalled() const
+  { return _pimpl->changedPseudoInstalled(); }
 
   ///////////////////////////////////////////////////////////////////
   namespace pool
   { /////////////////////////////////////////////////////////////////
 
-    void pi2sat( const PoolItem & pi_r, sat::Solvable & slv_r );
-
-    ///////////////////////////////////////////////////////////////////
-    //
-    // METHOD NAME : NameHash::NameHash
-    // METHOD TYPE : Ctor
-    //
-    NameHash::NameHash()
-    {}
-
-    ///////////////////////////////////////////////////////////////////
-    //
-    // METHOD NAME : NameHash::~NameHash
-    // METHOD TYPE : Dtor
-    //
-    NameHash::~NameHash()
-    {}
-
-    void
-    NameHash::insert( const PoolItem & item_r )
-    {
-      _store[item_r->name()].insert( item_r );
-    }
-
-    void
-    NameHash::erase( const PoolItem & item_r )
-    {
-      PoolTraits::ItemContainerT & items = _store[item_r->name()];
-      for ( PoolTraits::iterator nit = items.begin(); nit != items.end(); /**/ )
-      {
-       if ( *nit == item_r )
-          items.erase( nit++ ); // postfix! Incrementing before erase
-        else
-          ++nit;
-      }
-    }
-
-    NameHash::ItemContainerT & NameHash::getItemContainer( const std::string & tag_r )
-       { ContainerT::iterator it = _store.find( tag_r );
-         if (it == _store.end()) {
-//XXX << "item container for " << tag_r << " not found" << endl;
-           return _empty;
-         }
-//XXX << "item container for " << tag_r << " contains " << it->second.size() << " items" << endl;
-         return it->second;
-       }
-
-    const NameHash::ItemContainerT & NameHash::getConstItemContainer( const std::string & tag_r ) const
-       { ContainerT::const_iterator it = _store.find( tag_r );
-         if (it == _store.end()) {
-//XXX << "const item container for " << tag_r << " not found" << endl;
-           return _empty;
-         }
-//XXX << "const item container for " << tag_r << " contains " << it->second.size() << " items" << endl;
-         return it->second;
-       }
-
-    ///////////////////////////////////////////////////////////////////
-    //
-    // METHOD NAME : CapHash::CapHash
-    // METHOD TYPE : Ctor
-    //
-    CapHash::CapHash()
-    {}
-
-    ///////////////////////////////////////////////////////////////////
-    //
-    // METHOD NAME : CapHash::~CapHash
-    // METHOD TYPE : Dtor
-    //
-    CapHash::~CapHash()
-    {}
-
-    static void
-    storeInsert( CapHash::ContainerT & store_r, const PoolItem & item_r, Dep cap_r )
-    {
-      Capabilities caps = item_r->dep( cap_r );
-      for (Capabilities::const_iterator ic = caps.begin(); ic != caps.end(); ++ic) {
-       store_r[cap_r][ic->index()].push_back( CapAndItem( *ic, item_r ) );
-      }
-    }
-
-    void CapHash::insert( const PoolItem & item_r )
-    {
-      storeInsert( _store, item_r, Dep::PROVIDES );
-      storeInsert( _store, item_r, Dep::REQUIRES );
-      storeInsert( _store, item_r, Dep::CONFLICTS );
-      storeInsert( _store, item_r, Dep::OBSOLETES );
-      storeInsert( _store, item_r, Dep::RECOMMENDS );
-      storeInsert( _store, item_r, Dep::SUGGESTS );
-      storeInsert( _store, item_r, Dep::FRESHENS );
-      storeInsert( _store, item_r, Dep::ENHANCES );
-      storeInsert( _store, item_r, Dep::SUPPLEMENTS );
-    }
-
-    static void
-    storeDelete( PoolTraits::DepCapItemContainerT & store_r, const PoolItem & item_r, Dep cap_r )
-    {
-      Capabilities caps = item_r->dep( cap_r );
-//XXX << "storeDelete(" << item_r << ")" << endl;
-      for ( Capabilities::const_iterator ic = caps.begin(); ic != caps.end(); ++ic )
-        {
-          PoolTraits::CapItemContainerT & capitems = store_r[cap_r][ic->index()];
-          for ( PoolTraits::CapItemContainerT::iterator pos = capitems.begin(); pos != capitems.end(); /**/ )
-            {
-              if ( pos->item == item_r )
-                capitems.erase( pos++ ); // postfix! Incrementing before erase
-              else
-                ++pos;
-            }
-        }
-    }
-
-    void CapHash::erase( const PoolItem & item_r )
-    {
-//XXX << "CapHash::erase(" << item_r << ")" << endl;
-      storeDelete( _store, item_r, Dep::PROVIDES );
-      storeDelete( _store, item_r, Dep::REQUIRES );
-      storeDelete( _store, item_r, Dep::CONFLICTS );
-      storeDelete( _store, item_r, Dep::OBSOLETES );
-      storeDelete( _store, item_r, Dep::RECOMMENDS );
-      storeDelete( _store, item_r, Dep::SUGGESTS );
-      storeDelete( _store, item_r, Dep::FRESHENS );
-      storeDelete( _store, item_r, Dep::ENHANCES );
-      storeDelete( _store, item_r, Dep::SUPPLEMENTS );
-    }
-
-      const CapHash::CapItemStoreT & CapHash::capItemStore ( Dep cap_r ) const
-      { static CapItemStoreT capitemstore;
-       ContainerT::const_iterator it = store().find( cap_r );
-       if (it == store().end()) {
-//XXX << "CapItemStoreT for " << cap_r << " not found" << endl;
-           return capitemstore;
-       }
-//XXX << "CapItemStoreT for " << cap_r << " contains " << it->second.size() << " items" << endl;
-       return it->second;
-      }
-
-      // CapItemStoreT, index -> CapItemContainerT
-      const CapHash::CapItemContainerT & CapHash::capItemContainer( const CapItemStoreT & cis, const std::string & tag_r ) const
-      { static CapItemContainerT captemcontainer;
-       CapItemStoreT::const_iterator it = cis.find( tag_r );
-       if (it == cis.end()) {
-//XXX << "CapItemContainerT for " << tag_r << " not found" << endl;
-           return captemcontainer;
-       }
-//XXX << "CapItemContainerT for " << tag_r << " contains " << it->second.size() << " items" << endl;
-//for (CapItemContainerT::const_iterator cai = it->second.begin(); cai != it->second.end(); ++cai) XXX << *cai << endl;
-       return it->second;
-      }
-
     ///////////////////////////////////////////////////////////////////
     //
     // Class PoolImpl::PoolImpl
@@ -208,103 +52,6 @@ namespace zypp
     PoolImpl::~PoolImpl()
     {}
 
-    ///////////////////////////////////////////////////////////////////
-    //
-    // METHOD NAME : PoolImpl::find
-    // METHOD TYPE : PoolItem
-    //
-    PoolItem PoolImpl::find( const sat::Solvable & slv_r ) const
-    {
-      if ( slv_r )
-      {
-        for_( it, begin(), end() )
-        {
-          if ( (*it)->satSolvable() == slv_r )
-            return *it;
-        }
-      }
-      return PoolItem();
-    }
-
-    /******************************************************************
-    **
-    ** FUNCTION NAME : operator<<
-    ** FUNCTION TYPE : std::ostream &
-    */
-    std::ostream & operator<<( std::ostream & str, const PoolImpl & obj )
-    {
-      return dumpPoolStats( str << "ResPool ",
-                            obj.begin(), obj.end() );
-    }
-
-    /******************************************************************
-    **
-    ** FUNCTION NAME : PoolImplInserter::operator()
-    ** FUNCTION TYPE : void
-    */
-    /** Bottleneck inserting ResObjects in to the pool.
-     * Filters arch incomatible available(!) objects.
-    */
-    void PoolImplInserter::operator()( ResObject::constPtr ptr_r )
-    {
-      /* -------------------------------------------------------------------------------
-       * 1.) Filter unwanted items
-       * ------------------------------------------------------------------------------- */
-       if ( ! ptr_r )
-        return;
-
-      if ( isKind<SrcPackage>( ptr_r ) )
-        return;
-
-      if ( ! _installed )
-        {
-          // filter arch incomatible available(!) non-atoms
-         // atoms are allowed since patches are multi-arch and require atoms of all archs
-         // the atoms themselves will 'filter' the arch via their frehen dependencies
-         if ( ptr_r->kind() != ResTraits<Atom>::kind ) {
-            if ( ! ptr_r->arch().compatibleWith( _poolImpl.targetArch() ) )
-              return;
-         }
-        }
-
-      /* -------------------------------------------------------------------------------
-       * 2.) Create ResStatus object
-       * ------------------------------------------------------------------------------- */
-      PoolImpl::Item item( ptr_r, ResStatus (_installed) );
-
-      /* -------------------------------------------------------------------------------
-       * 3.) Status adjustments
-       * ------------------------------------------------------------------------------- */
-      // Foreign vendor protection handled in PoolItem ctor.
-
-      /* -------------------------------------------------------------------------------
-       * 3.) Feed
-       * ------------------------------------------------------------------------------- */
-      if ( _poolImpl._store.insert( item ).second )
-      {
-         _poolImpl._namehash.insert( item );
-         _poolImpl._caphash.insert( item );
-         // don't miss to invalidate ResPoolProxy
-         _poolImpl.invalidateProxy();
-      }
-    }
-
-    /******************************************************************
-    **
-    ** FUNCTION NAME : PoolImplDeleter::operator()
-    ** FUNCTION TYPE : void
-    */
-    void PoolImplDeleter::operator()( ResObject::constPtr ptr_r )
-    {
-      PoolImpl::Item item( ptr_r );
-      _poolImpl._store.erase( item );
-      _poolImpl._namehash.erase( item );
-      _poolImpl._caphash.erase( item );
-
-      // don't miss to invalidate ResPoolProxy
-      _poolImpl.invalidateProxy();
-    }
-
     /////////////////////////////////////////////////////////////////
   } // namespace pool
   ///////////////////////////////////////////////////////////////////