From 6c139d6e362f04a1582e8a8f511f8aeab031fecf Mon Sep 17 00:00:00 2001 From: Arch Librarian Date: Mon, 20 Sep 2004 16:50:41 +0000 Subject: Sync Author: jgg Date: 1998-07-07 04:17:00 GMT Sync --- apt-pkg/packagemanager.h | 84 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 apt-pkg/packagemanager.h (limited to 'apt-pkg/packagemanager.h') diff --git a/apt-pkg/packagemanager.h b/apt-pkg/packagemanager.h new file mode 100644 index 000000000..6020cbefd --- /dev/null +++ b/apt-pkg/packagemanager.h @@ -0,0 +1,84 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: packagemanager.h,v 1.1 1998/07/07 04:17:01 jgg Exp $ +/* ###################################################################### + + Package Manager - Abstacts the package manager + + Three steps are + - Aquiration of archives (stores the list of final file names) + - Sorting of operations + - Inokation of package manager + + This is the final stage when the package cache entities get converted + into file names and the state stored in a DepCache is transformed + into a series of operations. + + In the final scheme of things this may serve as a director class to + access the actual install methods based on the file type being + installed. + + ##################################################################### */ + /*}}}*/ +// Header section: pkglib +#ifndef PKGLIB_PACKAGEMANAGER_H +#define PKGLIB_PACKAGEMANAGER_H + +#ifdef __GNUG__ +#pragma interface "pkglib/packagemanager.h" +#endif + +#include +#include + +class pkgAquire; +class pkgDepCache; +class pkgSourceList; +class pkgOrderList; +class pkgPackageManager +{ + protected: + string *FileNames; + pkgDepCache &Cache; + pkgOrderList *List; + + // Bring some usefull types into the local scope + typedef pkgCache::PkgIterator PkgIterator; + typedef pkgCache::VerIterator VerIterator; + typedef pkgCache::DepIterator DepIterator; + typedef pkgCache::PrvIterator PrvIterator; + typedef pkgCache::Version Version; + typedef pkgCache::Package Package; + + bool DepAdd(pkgOrderList &Order,PkgIterator P,int Depth = 0); + bool OrderInstall(); + bool CheckRConflicts(PkgIterator Pkg,DepIterator Dep,const char *Ver); + + // Analysis helpers + bool DepAlwaysTrue(DepIterator D); + + // Install helpers + bool ConfigureAll(); + bool SmartConfigure(PkgIterator Pkg); + bool SmartUnPack(PkgIterator Pkg); + bool SmartRemove(PkgIterator Pkg); + bool EarlyRemove(PkgIterator Pkg); + + // The Actuall installation implementation + virtual bool Install(PkgIterator /*Pkg*/,string /*File*/) {return false;}; + virtual bool Configure(PkgIterator /*Pkg*/) {return false;}; + virtual bool Remove(PkgIterator /*Pkg*/) {return false;}; + virtual bool Go() {return false;}; + + public: + + // The three stages + bool GetArchives(pkgSourceList &List,pkgAquire &Engine); + bool DoInstall(); + bool FixMissing(); + + pkgPackageManager(pkgDepCache &Cache); + virtual ~pkgPackageManager(); +}; + +#endif -- cgit v1.2.3