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

compute Installation order. More...

#include <InstallOrder.h>

List of all members.

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.

Definition at line 91 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

Definition at line 65 of file InstallOrder.h.

adjacency list, package -> requirements

Definition at line 73 of file InstallOrder.h.

reversed graph, package -> referers

Definition at line 76 of file InstallOrder.h.

Definition at line 93 of file InstallOrder.h.

Definition at line 95 of file InstallOrder.h.

Definition at line 99 of file InstallOrder.h.

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: