#include <InstallOrder.h>
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 SolvableList & | getTopSorted () 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 |
There are two Interfaces:
|
adjacency list type |
|
|
|
|
|
Constructor
|
|
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 |
|
compute topological sorted list
|
|
Initialize data structures. Must be called before any other function. |
|
|
|
|
|
like above, for convenience |
|
set a Solvable as installed, computeNextSet is able to compute a new set then |
|
recoursive depth first search, build internal trees |
|
|
|
adjacency list, package -> requirements |
|
|
|
|
|
|
|
|
|
reversed graph, package -> referers |
|
|
|
|