Author: mlandres
Date: Tue Feb 12 12:29:42 2008
New Revision: 8622
URL: http://svn.opensuse.org/viewcvs/zypp?rev=8622&view=rev
Log:
drop ResPool byName iterator and use byIdent
Modified:
branches/tmp/ma/jump_sat/libzypp/zypp/NameKindProxy.cc
branches/tmp/ma/jump_sat/libzypp/zypp/NameKindProxy.h
branches/tmp/ma/jump_sat/libzypp/zypp/ResPool.cc
branches/tmp/ma/jump_sat/libzypp/zypp/ResPool.h
branches/tmp/ma/jump_sat/libzypp/zypp/base/Easy.h
branches/tmp/ma/jump_sat/libzypp/zypp/pool/PoolTraits.h
branches/tmp/ma/jump_sat/libzypp/zypp/solver/detail/Helper.cc
Modified: branches/tmp/ma/jump_sat/libzypp/zypp/NameKindProxy.cc
URL: http://svn.opensuse.org/viewcvs/zypp/branches/tmp/ma/jump_sat/libzypp/zypp/NameKindProxy.cc?rev=8622&r1=8621&r2=8622&view=diff
==============================================================================
--- branches/tmp/ma/jump_sat/libzypp/zypp/NameKindProxy.cc (original)
+++ branches/tmp/ma/jump_sat/libzypp/zypp/NameKindProxy.cc Tue Feb 12 12:29:42 2008
@@ -10,8 +10,8 @@
*
*/
#include <iostream>
-//#include "zypp/base/Logger.h"
+#include "zypp/base/Easy.h"
#include "zypp/NameKindProxy.h"
using std::endl;
@@ -52,21 +52,30 @@
// METHOD NAME : NameKindProxy::NameKindProxy
// METHOD TYPE : Ctor
//
- NameKindProxy::NameKindProxy( ResPool pool_r, const std::string & name_r, Resolvable::Kind kind_r )
+ NameKindProxy::NameKindProxy( ResPool pool_r, const C_Str & name_r, Resolvable::Kind kind_r )
: _kind( kind_r )
, _name( name_r )
{
- for ( ResPool::byName_iterator it = pool_r.byNameBegin( _name );
- it != pool_r.byNameEnd( _name ); ++it )
- {
- if ( (*it)->kind() == _kind )
- {
- if ( it->status().isInstalled() )
- _installed.insert( *it ) ;
- else
- _available.insert( *it );
- }
- }
+ for_( it, pool_r.byIdentBegin( kind_r, _name ), pool_r.byIdentEnd( kind_r, _name ) )
+ {
+ if ( it->status().isInstalled() )
+ _installed.insert( *it ) ;
+ else
+ _available.insert( *it );
+ }
+ }
+
+ NameKindProxy::NameKindProxy( ResPool pool_r, IdString name_r, Resolvable::Kind kind_r )
+ : _kind( kind_r )
+ , _name( name_r )
+ {
+ for_( it, pool_r.byIdentBegin( kind_r, _name ), pool_r.byIdentEnd( kind_r, _name ) )
+ {
+ if ( it->status().isInstalled() )
+ _installed.insert( *it ) ;
+ else
+ _available.insert( *it );
+ }
}
/******************************************************************
Modified: branches/tmp/ma/jump_sat/libzypp/zypp/NameKindProxy.h
URL: http://svn.opensuse.org/viewcvs/zypp/branches/tmp/ma/jump_sat/libzypp/zypp/NameKindProxy.h?rev=8622&r1=8621&r2=8622&view=diff
==============================================================================
--- branches/tmp/ma/jump_sat/libzypp/zypp/NameKindProxy.h (original)
+++ branches/tmp/ma/jump_sat/libzypp/zypp/NameKindProxy.h Tue Feb 12 12:29:42 2008
@@ -100,14 +100,14 @@
typedef AvailableSet::size_type Available_size_type;
public:
- NameKindProxy( ResPool pool_r,
- const std::string & name_r, Resolvable::Kind kind_r );
+ NameKindProxy( ResPool pool_r, IdString name_r, ResKind kind_r );
+ NameKindProxy( ResPool pool_r, const C_Str & name_r, ResKind kind_r );
public:
- ResObject::Kind kind() const
+ ResKind kind() const
{ return _kind; }
- const std::string & name() const
+ IdString name() const
{ return _name; }
public:
@@ -141,10 +141,10 @@
// status query and manip stuff...
private:
- ResObject::Kind _kind;
- std::string _name;
- InstalledSet _installed;
- AvailableSet _available;
+ ResKind _kind;
+ IdString _name;
+ InstalledSet _installed;
+ AvailableSet _available;
};
///////////////////////////////////////////////////////////////////
@@ -153,7 +153,10 @@
/** \relates NameKindProxy Convenience construction. */
template<class _Res>
- inline NameKindProxy nameKindProxy( ResPool pool_r, const std::string & name_r )
+ inline NameKindProxy nameKindProxy( ResPool pool_r, IdString name_r )
+ { return NameKindProxy( pool_r, name_r, ResTraits<_Res>::kind ); }
+ template<class _Res>
+ inline NameKindProxy nameKindProxy( ResPool pool_r, const C_Str & name_r )
{ return NameKindProxy( pool_r, name_r, ResTraits<_Res>::kind ); }
/////////////////////////////////////////////////////////////////
Modified: branches/tmp/ma/jump_sat/libzypp/zypp/ResPool.cc
URL: http://svn.opensuse.org/viewcvs/zypp/branches/tmp/ma/jump_sat/libzypp/zypp/ResPool.cc?rev=8622&r1=8621&r2=8622&view=diff
==============================================================================
--- branches/tmp/ma/jump_sat/libzypp/zypp/ResPool.cc (original)
+++ branches/tmp/ma/jump_sat/libzypp/zypp/ResPool.cc Tue Feb 12 12:29:42 2008
@@ -108,8 +108,8 @@
*/
std::ostream & operator<<( std::ostream & str, const ResPool & obj )
{
- dumpPoolStats( str << "ResPool " << sat::Pool::instance() << endl << " ",
- obj.begin(), obj.end() );
+ return dumpPoolStats( str << "ResPool " << sat::Pool::instance() << endl << " ",
+ obj.begin(), obj.end() );
}
/////////////////////////////////////////////////////////////////
Modified: branches/tmp/ma/jump_sat/libzypp/zypp/ResPool.h
URL: http://svn.opensuse.org/viewcvs/zypp/branches/tmp/ma/jump_sat/libzypp/zypp/ResPool.h?rev=8622&r1=8621&r2=8622&view=diff
==============================================================================
--- branches/tmp/ma/jump_sat/libzypp/zypp/ResPool.h (original)
+++ branches/tmp/ma/jump_sat/libzypp/zypp/ResPool.h Tue Feb 12 12:29:42 2008
@@ -128,6 +128,13 @@
byIdent_iterator byIdentBegin( const C_Str & name_r ) const
{ return make_filter_begin( ByIdent(ResTraits<_Res>::kind,name_r), *this ); }
+ /** Derive name and kind from \ref PoolItem. */
+ byIdent_iterator byIdentBegin( const PoolItem & pi_r ) const
+ { return make_filter_begin( ByIdent(pi_r.satSolvable()), *this ); }
+ /** Derive name and kind from \ref sat::Solvable. */
+ byIdent_iterator byIdentBegin( sat::Solvable slv_r ) const
+ { return make_filter_begin( ByIdent(slv_r), *this ); }
+
byIdent_iterator byIdentEnd( ResKind kind_r, IdString name_r ) const
{ return make_filter_end( ByIdent(kind_r,name_r), *this ); }
@@ -142,7 +149,14 @@
template<class _Res>
byIdent_iterator byIdentEnd( const C_Str & name_r ) const
{ return make_filter_end( ByIdent(ResTraits<_Res>::kind,name_r), *this ); }
- //@}
+
+ /** Derive name and kind from \ref PoolItem. */
+ byIdent_iterator byIdentEnd( const PoolItem & pi_r ) const
+ { return make_filter_begin( ByIdent(pi_r.satSolvable()), *this ); }
+ /** Derive name and kind from \ref sat::Solvable. */
+ byIdent_iterator byIdentEnd( sat::Solvable slv_r ) const
+ { return make_filter_begin( ByIdent(slv_r), *this ); }
+ //@}
public:
/** \name Iterate through all ResObjects of a certain kind. */
@@ -166,15 +180,17 @@
//@}
public:
- /** \name Iterate through all ResObjects with a certain name (all kinds). */
+ /** \name Iterate through all ResObjects with a certain name (all kinds).
+ * \deprecated Instead of iterating byName and filter byKind use ByIdent iterator.
+ */
//@{
typedef zypp::resfilter::ByName ByName;
typedef filter_iterator