]>
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 
  27 #pragma interface "apt-pkg/packagemanager.h" 
  32 #include <apt-pkg/pkgcache.h> 
  33 #include <apt-pkg/depcache.h> 
  42 class pkgPackageManager 
: protected pkgCache::Namespace
 
  46    enum OrderResult 
{Completed
,Failed
,Incomplete
}; 
  54    bool DepAdd(pkgOrderList 
&Order
,PkgIterator P
,int Depth 
= 0); 
  55    virtual OrderResult 
OrderInstall(); 
  56    bool CheckRConflicts(PkgIterator Pkg
,DepIterator Dep
,const char *Ver
); 
  57    bool CreateOrderList(); 
  60    bool DepAlwaysTrue(DepIterator D
); 
  64    bool SmartConfigure(PkgIterator Pkg
); 
  65    bool SmartUnPack(PkgIterator Pkg
); 
  66    bool SmartRemove(PkgIterator Pkg
); 
  67    bool EarlyRemove(PkgIterator Pkg
);    
  69    // The Actual installation implementation 
  70    virtual bool Install(PkgIterator 
/*Pkg*/,string 
/*File*/) {return false;}; 
  71    virtual bool Configure(PkgIterator 
/*Pkg*/) {return false;}; 
  72    virtual bool Remove(PkgIterator 
/*Pkg*/,bool /*Purge*/=false) {return false;}; 
  73    virtual bool Go(int statusFd
=-1) {return true;}; 
  74    virtual void Reset() {}; 
  76    // the result of the operation 
  81    // Main action members 
  82    bool GetArchives(pkgAcquire 
*Owner
,pkgSourceList 
*Sources
, 
  85    // Do the installation  
  86    OrderResult 
DoInstall(int statusFd
=-1); 
  88    // stuff that needs to be done before the fork() of a library that 
  90    OrderResult 
DoInstallPreFork() { 
  95    // stuff that needs to be done after the fork 
  96    OrderResult 
DoInstallPostFork(int statusFd
=-1) { 
  97       bool goResult 
= Go(statusFd
); 
 101       // if all was fine update the state file 
 102       if(Res 
== Completed
) { 
 103          Cache
.writeStateFile(NULL
); 
 110    pkgPackageManager(pkgDepCache 
*Cache
); 
 111    virtual ~pkgPackageManager();