libzypp  12.16.5
zypp::solver::detail::InstallOrder Class Reference

compute Installation order. More...

#include <InstallOrder.h>

Classes

struct  NodeInfo
 

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 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
 
void printAdj (std::ostream &os, bool reversed=false) const
 

Private Types

typedef std::map< PoolItem,
PoolItemList
Graph
 adjacency list type
 
typedef std::map< PoolItem,
NodeInfo
Nodes
 

Private Member Functions

void rdfsvisit (PoolItem item)
 
PoolItem findProviderInSet (const Capability requirement, const PoolItemSet &candidates) const
 
bool doesProvide (const Capability requirement, PoolItem 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
 
std::set< std::string > _logset
 

Detailed Description

compute Installation order.


There are two Interfaces:

  • getTopSorted: return flat list of packages in proper order
  • computeNextSet: return only packages without requirements, see comment below

Definition at line 62 of file InstallOrder.h.

Member Typedef Documentation

adjacency list type

Definition at line 70 of file InstallOrder.h.

Constructor & Destructor Documentation

zypp::solver::detail::InstallOrder::InstallOrder ( const ResPool pool,
const PoolItemSet toinstall,
const PoolItemSet installed 
)

Constructor.

Parameters
toinstallSet of ResItems that have to be installed
installedSet of ResItems that are already installed

Definition at line 58 of file InstallOrder.cc.

Member Function Documentation

void zypp::solver::detail::InstallOrder::rdfsvisit ( PoolItem  item)
private

Definition at line 184 of file InstallOrder.cc.

PoolItem zypp::solver::detail::InstallOrder::findProviderInSet ( const Capability  requirement,
const PoolItemSet candidates 
) const
private

Definition at line 169 of file InstallOrder.cc.

bool zypp::solver::detail::InstallOrder::doesProvide ( const Capability  requirement,
PoolItem  item 
) const
private

Definition at line 156 of file InstallOrder.cc.

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 96 of file InstallOrder.cc.

void zypp::solver::detail::InstallOrder::setInstalled ( PoolItem  item)

set a Solvable as installed, computeNextSet is able to compute a new set then

Definition at line 119 of file InstallOrder.cc.

void zypp::solver::detail::InstallOrder::setInstalled ( const PoolItemList list)

like above, for convenience

Definition at line 145 of file InstallOrder.cc.

void zypp::solver::detail::InstallOrder::startrdfs ( )

recoursive depth first search, build internal trees

Definition at line 322 of file InstallOrder.cc.

void zypp::solver::detail::InstallOrder::init ( )
inline

Initialize data structures.

Must be called before any other function.

Definition at line 147 of file InstallOrder.h.

const PoolItemList zypp::solver::detail::InstallOrder::getTopSorted ( ) const

compute topological sorted list

Returns
list of resolvables in an installable order

Definition at line 362 of file InstallOrder.cc.

void zypp::solver::detail::InstallOrder::printAdj ( std::ostream &  os,
bool  reversed = false 
) const

Definition at line 72 of file InstallOrder.cc.

Member Data Documentation

const ResPool& zypp::solver::detail::InstallOrder::_pool
private

Definition at line 65 of file InstallOrder.h.

PoolItemSet zypp::solver::detail::InstallOrder::_toinstall
private

Definition at line 66 of file InstallOrder.h.

PoolItemSet zypp::solver::detail::InstallOrder::_installed
private

Definition at line 67 of file InstallOrder.h.

Graph zypp::solver::detail::InstallOrder::_graph
private

adjacency list, package -> requirements

Definition at line 73 of file InstallOrder.h.

Graph zypp::solver::detail::InstallOrder::_rgraph
private

reversed graph, package -> referers

Definition at line 76 of file InstallOrder.h.

Nodes zypp::solver::detail::InstallOrder::_nodes
private

Definition at line 93 of file InstallOrder.h.

unsigned zypp::solver::detail::InstallOrder::_rdfstime
private

Definition at line 95 of file InstallOrder.h.

PoolItemList zypp::solver::detail::InstallOrder::_topsorted
private

Definition at line 97 of file InstallOrder.h.

bool zypp::solver::detail::InstallOrder::_dirty
private

Definition at line 99 of file InstallOrder.h.

unsigned zypp::solver::detail::InstallOrder::_numrun
private

Definition at line 101 of file InstallOrder.h.

std::set<std::string> zypp::solver::detail::InstallOrder::_logset
private

Definition at line 103 of file InstallOrder.h.


The documentation for this class was generated from the following files: