#include <InstallOrder.h>
Public Member Functions | |
| InstallOrder (const ResPool &pool, const PoolItemSet &toinstall, const PoolItemSet &installed) | |
| Constructor. | |
| PoolItemList | computeNextSet () |
| Compute a list of ResItems which have no requirements and can be installed in parallel without conflicts. | |
| void | setInstalled (PoolItem_Ref item) |
| set a Solvable as installed, computeNextSet is able to compute a new set then | |
| void | setInstalled (const PoolItemList &list) |
| like above, for convenience | |
| void | startrdfs () |
| recoursive depth first search, build internal trees | |
| void | init () |
| Initialize data structures. | |
| const PoolItemList | getTopSorted () const |
| compute topological sorted list | |
| const void | printAdj (std::ostream &os, bool reversed=false) const |
Private Types | |
| typedef std::map< PoolItem_Ref, PoolItemList > | Graph |
| adjacency list type | |
| typedef std::map< PoolItem_Ref, NodeInfo > | Nodes |
Private Member Functions | |
| void | rdfsvisit (PoolItem_Ref item) |
| PoolItem_Ref | findProviderInSet (const Capability requirement, const PoolItemSet &candidates) const |
| bool | doesProvide (const Capability requirement, PoolItem_Ref item) const |
Private Attributes | |
| const ResPool & | _pool |
| PoolItemSet | _toinstall |
| PoolItemSet | _installed |
| Graph | _graph |
| adjacency list, package -> requirements | |
| Graph | _rgraph |
| reversed graph, package -> referers | |
| Nodes | _nodes |
| unsigned | _rdfstime |
| PoolItemList | _topsorted |
| bool | _dirty |
| unsigned | _numrun |
Classes | |
| struct | NodeInfo |
There are two Interfaces:
Definition at line 60 of file InstallOrder.h.
typedef std::map<PoolItem_Ref, PoolItemList> zypp::solver::detail::InstallOrder::Graph [private] |
typedef std::map<PoolItem_Ref, NodeInfo> zypp::solver::detail::InstallOrder::Nodes [private] |
Definition at line 89 of file InstallOrder.h.
| zypp::solver::detail::InstallOrder::InstallOrder | ( | const ResPool & | pool, | |
| const PoolItemSet & | toinstall, | |||
| const PoolItemSet & | installed | |||
| ) |
Constructor.
| toinstall | Set of ResItems that have to be installed | |
| installed | Set of ResItems that are already installed |
Definition at line 55 of file InstallOrder.cc.
References _DEBUG, _installed, and _toinstall.
| void zypp::solver::detail::InstallOrder::rdfsvisit | ( | PoolItem_Ref | item | ) | [private] |
Definition at line 215 of file InstallOrder.cc.
References _graph, _installed, _nodes, _pool, _rdfstime, _rgraph, _toinstall, _topsorted, zypp::solver::detail::InstallOrder::NodeInfo::begintime, zypp::ResPool::byCapabilityIndexBegin(), zypp::ResPool::byCapabilityIndexEnd(), zypp::invokeOnEach(), ITEMNAME, zypp::solver::detail::InstallOrder::NodeInfo::order, zypp::Dep::PREREQUIRES, zypp::Dep::PROVIDES, zypp::Dep::REQUIRES, zypp::PoolItem_Ref::resolvable(), zypp::solver::detail::CollectProviders::result, zypp::solver::detail::InstallOrder::NodeInfo::visited, WAR, and XXX.
Referenced by startrdfs().
| PoolItem_Ref zypp::solver::detail::InstallOrder::findProviderInSet | ( | const Capability | requirement, | |
| const PoolItemSet & | candidates | |||
| ) | const [private] |
| bool zypp::solver::detail::InstallOrder::doesProvide | ( | const Capability | requirement, | |
| PoolItem_Ref | item | |||
| ) | const [private] |
Definition at line 156 of file InstallOrder.cc.
References zypp::Dep::PROVIDES, and zypp::CapMatch::yes.
Referenced by findProviderInSet().
| PoolItemList zypp::solver::detail::InstallOrder::computeNextSet | ( | ) |
Compute a list of ResItems which have no requirements and can be installed in parallel without conflicts.
Use setInstalled to make computation of a different set possible
Definition at line 93 of file InstallOrder.cc.
References _dirty, _nodes, ITEMNAME, startrdfs(), and XXX.
Referenced by zypp::pool::GetResolvablesToInsDel::GetResolvablesToInsDel().
| void zypp::solver::detail::InstallOrder::setInstalled | ( | PoolItem_Ref | item | ) |
set a Solvable as installed, computeNextSet is able to compute a new set then
Definition at line 119 of file InstallOrder.cc.
References _dirty, _installed, _nodes, _rgraph, _toinstall, ITEMNAME, WAR, and XXX.
Referenced by zypp::pool::GetResolvablesToInsDel::GetResolvablesToInsDel(), and setInstalled().
| void zypp::solver::detail::InstallOrder::setInstalled | ( | const PoolItemList & | list | ) |
like above, for convenience
Definition at line 145 of file InstallOrder.cc.
References setInstalled().
| void zypp::solver::detail::InstallOrder::startrdfs | ( | ) |
recoursive depth first search, build internal trees
Definition at line 317 of file InstallOrder.cc.
References _dirty, _graph, _nodes, _numrun, _rdfstime, _rgraph, _toinstall, _topsorted, ITEMNAME, rdfsvisit(), and XXX.
Referenced by computeNextSet(), and init().
| void zypp::solver::detail::InstallOrder::init | ( | ) | [inline] |
Initialize data structures.
Must be called before any other function.
Definition at line 143 of file InstallOrder.h.
References startrdfs().
Referenced by zypp::pool::GetResolvablesToInsDel::GetResolvablesToInsDel().
| const PoolItemList zypp::solver::detail::InstallOrder::getTopSorted | ( | ) | const |
compute topological sorted list
Definition at line 357 of file InstallOrder.cc.
References _topsorted.
Referenced by zypp::pool::GetResolvablesToInsDel::GetResolvablesToInsDel().
| const void zypp::solver::detail::InstallOrder::printAdj | ( | std::ostream & | os, | |
| bool | reversed = false | |||
| ) | const |
Definition at line 69 of file InstallOrder.cc.
References _graph, _nodes, _rgraph, and name.
Referenced by zypp::pool::GetResolvablesToInsDel::GetResolvablesToInsDel().
const ResPool& zypp::solver::detail::InstallOrder::_pool [private] |
Definition at line 64 of file InstallOrder.h.
Referenced by InstallOrder(), rdfsvisit(), setInstalled(), and startrdfs().
Definition at line 65 of file InstallOrder.h.
Referenced by InstallOrder(), rdfsvisit(), and setInstalled().
adjacency list, package -> requirements
Definition at line 71 of file InstallOrder.h.
Referenced by printAdj(), rdfsvisit(), and startrdfs().
reversed graph, package -> referers
Definition at line 74 of file InstallOrder.h.
Referenced by printAdj(), rdfsvisit(), setInstalled(), and startrdfs().
Definition at line 91 of file InstallOrder.h.
Referenced by computeNextSet(), printAdj(), rdfsvisit(), setInstalled(), and startrdfs().
unsigned zypp::solver::detail::InstallOrder::_rdfstime [private] |
Definition at line 95 of file InstallOrder.h.
Referenced by getTopSorted(), rdfsvisit(), and startrdfs().
bool zypp::solver::detail::InstallOrder::_dirty [private] |
Definition at line 97 of file InstallOrder.h.
Referenced by computeNextSet(), setInstalled(), and startrdfs().
unsigned zypp::solver::detail::InstallOrder::_numrun [private] |
1.5.0