]>
git.saurik.com Git - apt.git/blob - apt-pkg/packagemanager.h
   1 // -*- mode: cpp; mode: fold -*- 
   3 // $Id: packagemanager.h,v 1.14 2001/05/07 04:24:08 jgg Exp $ 
   4 /* ###################################################################### 
   6    Package Manager - Abstacts the package manager 
   9      - Aquiration of archives (stores the list of final file names) 
  10      - Sorting of operations 
  11      - Invokation of package manager 
  13    This is the final stage when the package cache entities get converted 
  14    into file names and the state stored in a DepCache is transformed 
  15    into a series of operations. 
  17    In the final scheme of things this may serve as a director class to 
  18    access the actual install methods based on the file type being 
  21    ##################################################################### */ 
  23 #ifndef PKGLIB_PACKAGEMANAGER_H 
  24 #define PKGLIB_PACKAGEMANAGER_H 
  29 #include <apt-pkg/pkgcache.h> 
  30 #include <apt-pkg/depcache.h> 
  39 class pkgPackageManager 
: protected pkgCache::Namespace
 
  43    enum OrderResult 
{Completed
,Failed
,Incomplete
}; 
  51    bool DepAdd(pkgOrderList 
&Order
,PkgIterator P
,int Depth 
= 0); 
  52    virtual OrderResult 
OrderInstall(); 
  53    bool CheckRConflicts(PkgIterator Pkg
,DepIterator Dep
,const char *Ver
); 
  54    bool CreateOrderList(); 
  57    bool DepAlwaysTrue(DepIterator D
); 
  61    bool SmartConfigure(PkgIterator Pkg
); 
  62    bool SmartUnPack(PkgIterator Pkg
); 
  63    bool SmartRemove(PkgIterator Pkg
); 
  64    bool EarlyRemove(PkgIterator Pkg
);    
  66    // The Actual installation implementation 
  67    virtual bool Install(PkgIterator 
/*Pkg*/,string 
/*File*/) {return false;}; 
  68    virtual bool Configure(PkgIterator 
/*Pkg*/) {return false;}; 
  69    virtual bool Remove(PkgIterator 
/*Pkg*/,bool /*Purge*/=false) {return false;}; 
  70    virtual bool Go(int statusFd
=-1) {return true;}; 
  71    virtual void Reset() {}; 
  73    // the result of the operation 
  78    // Main action members 
  79    bool GetArchives(pkgAcquire 
*Owner
,pkgSourceList 
*Sources
, 
  82    // Do the installation  
  83    OrderResult 
DoInstall(int statusFd
=-1); 
  85    // stuff that needs to be done before the fork() of a library that 
  87    OrderResult 
DoInstallPreFork() { 
  92    // stuff that needs to be done after the fork 
  93    OrderResult 
DoInstallPostFork(int statusFd
=-1) { 
  94       bool goResult 
= Go(statusFd
); 
  98       // if all was fine update the state file 
  99       if(Res 
== Completed
) { 
 100          Cache
.writeStateFile(NULL
); 
 107    pkgPackageManager(pkgDepCache 
*Cache
); 
 108    virtual ~pkgPackageManager();