Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members

InstallOrder Class Reference

#include <InstallOrder.h>

List of all members.

Public Types

typedef std::list< constPMSolvablePtr > SolvableList

Public Member Functions

 InstallOrder (const PkgSet &toinstall, const PkgSet &installed)
SolvableList computeNextSet ()
void setInstalled (constPMSolvablePtr ptr)
void setInstalled (const SolvableList &list)
void startrdfs ()
void init ()
const SolvableListgetTopSorted () const
const void printAdj (std::ostream &os, bool reversed=false) const

Private Types

typedef std::map< constPMSolvablePtr,
SolvableList
Graph
typedef std::map< constPMSolvablePtr,
NodeInfo
Nodes

Private Member Functions

void rdfsvisit (constPMSolvablePtr node)

Private Attributes

PkgSet _toinstall
PkgSet _installed
Graph _graph
Graph _rgraph
Nodes _nodes
unsigned _rdfstime
SolvableList _topsorted
bool _dirty
unsigned _numrun


Detailed Description

compute Installation order.

There are two Interfaces:


Member Typedef Documentation

typedef std::map<constPMSolvablePtr,SolvableList> InstallOrder::Graph [private]
 

adjacency list type

typedef std::map<constPMSolvablePtr,NodeInfo> InstallOrder::Nodes [private]
 

typedef std::list<constPMSolvablePtr> InstallOrder::SolvableList
 


Constructor & Destructor Documentation

InstallOrder::InstallOrder const PkgSet toinstall,
const PkgSet installed
 

Constructor

Parameters:
toinstall Set of Solvables that have to be installed
installed Set of Solvables that are already installed


Member Function Documentation

InstallOrder::SolvableList InstallOrder::computeNextSet  ) 
 

Compute a list of Solvables which have no requirements and can be installed in parallel without conflicts. Use setInstalled to make computation of a different set possible

const InstallOrder::SolvableList & InstallOrder::getTopSorted  )  const
 

compute topological sorted list

Returns:
list of solvables in an installable order

void InstallOrder::init  )  [inline]
 

Initialize data structures. Must be called before any other function.

const void InstallOrder::printAdj std::ostream &  os,
bool  reversed = false
const
 

void InstallOrder::rdfsvisit constPMSolvablePtr  node  )  [private]
 

void InstallOrder::setInstalled const SolvableList list  ) 
 

like above, for convenience

void InstallOrder::setInstalled constPMSolvablePtr  ptr  ) 
 

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

void InstallOrder::startrdfs  ) 
 

recoursive depth first search, build internal trees


Member Data Documentation

bool InstallOrder::_dirty [private]
 

Graph InstallOrder::_graph [private]
 

adjacency list, package -> requirements

PkgSet InstallOrder::_installed [private]
 

Nodes InstallOrder::_nodes [private]
 

unsigned InstallOrder::_numrun [private]
 

unsigned InstallOrder::_rdfstime [private]
 

Graph InstallOrder::_rgraph [private]
 

reversed graph, package -> referers

PkgSet InstallOrder::_toinstall [private]
 

SolvableList InstallOrder::_topsorted [private]
 


The documentation for this class was generated from the following files:
Generated on Fri Nov 9 14:30:32 2007 for yast2-packagemanager by doxygen 1.3.6