Author: lslezak Date: Tue Dec 18 12:21:06 2007 New Revision: 43152 URL: http://svn.opensuse.org/viewcvs/yast?rev=43152&view=rev Log: - use ResPool::repository_iterator for searching resolvables from a repository (much faster than iterating over all resolvables) Modified: trunk/pkg-bindings/package/yast2-pkg-bindings.changes trunk/pkg-bindings/src/Source_Resolvables.cc Modified: trunk/pkg-bindings/package/yast2-pkg-bindings.changes URL: http://svn.opensuse.org/viewcvs/yast/trunk/pkg-bindings/package/yast2-pkg-bindings.changes?rev=43152&r1=43151&r2=43152&view=diff ============================================================================== --- trunk/pkg-bindings/package/yast2-pkg-bindings.changes (original) +++ trunk/pkg-bindings/package/yast2-pkg-bindings.changes Tue Dec 18 12:21:06 2007 @@ -1,4 +1,10 @@ ------------------------------------------------------------------- +Tue Dec 18 11:03:33 CET 2007 - lslezak@suse.cz + +- use ResPool::repository_iterator for searching resolvables from + a repository (much faster than iterating over all resolvables) + +------------------------------------------------------------------- Wed Dec 12 09:21:54 CET 2007 - lslezak@suse.cz - added total progress to Pkg::SourceRefreshNow() Modified: trunk/pkg-bindings/src/Source_Resolvables.cc URL: http://svn.opensuse.org/viewcvs/yast/trunk/pkg-bindings/src/Source_Resolvables.cc?rev=43152&r1=43151&r2=43152&view=diff ============================================================================== --- trunk/pkg-bindings/src/Source_Resolvables.cc (original) +++ trunk/pkg-bindings/src/Source_Resolvables.cc Tue Dec 18 12:21:06 2007 @@ -42,18 +42,15 @@ void PkgModuleFunctions::RemoveResolvablesFrom(const std::string &alias) { // remove the resolvables if they have been loaded - // FIXME: can be implemented better? we need a ResStore object for removing, - // which means search for a resolvable in the pool and get the Repository - // object which can be asked for all resolvables in it - for (zypp::ResPool::const_iterator it = zypp_ptr()->pool().begin() - ; it != zypp_ptr()->pool().end() + for (zypp::ResPool::repository_iterator it = zypp_ptr()->pool().knownRepositoriesBegin() + ; it != zypp_ptr()->pool().knownRepositoriesEnd() ; ++it) { - if (it->resolvable()->repository().info().alias() == alias) + if (it->info().alias() == alias) { - y2milestone("Removing all resolvables from '%s' from the pool...", alias.c_str()); - zypp_ptr()->removeResolvables(it->resolvable()->repository().resolvables()); - break; + y2internal("Removing resolvables from '%s'", alias.c_str()); + zypp_ptr()->removeResolvables(it->resolvables()); + return; } } } @@ -63,11 +60,12 @@ */ bool PkgModuleFunctions::AnyResolvableFrom(const std::string &alias) { - for (zypp::ResPool::const_iterator it = zypp_ptr()->pool().begin() - ; it != zypp_ptr()->pool().end() + // check whether there is a known repository with the requested alias + for (zypp::ResPool::repository_iterator it = zypp_ptr()->pool().knownRepositoriesBegin() + ; it != zypp_ptr()->pool().knownRepositoriesEnd() ; ++it) { - if (it->resolvable()->repository().info().alias() == alias) + if (it->info().alias() == alias) { return true; } -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org