- initial import of revision 374 from cnc
[apt.git] / apt-pkg / deb / dpkgpm.h
1 // -*- mode: cpp; mode: fold -*-
2 // Description                                                          /*{{{*/
3 // $Id: dpkgpm.h,v 1.1 2002/07/23 17:54:51 niemeyer Exp $
4 /* ######################################################################
5
6    DPKG Package Manager - Provide an interface to dpkg
7    
8    ##################################################################### */
9                                                                         /*}}}*/
10 #ifndef PKGLIB_DPKGPM_H
11 #define PKGLIB_DPKGPM_H
12
13 #ifdef __GNUG__
14 #pragma interface "apt-pkg/dpkgpm.h"
15 #endif
16
17 #include <apt-pkg/packagemanager.h>
18 #include <vector>
19 #include <stdio.h>
20
21 using std::vector;
22
23 class pkgDPkgPM : public pkgPackageManager
24 {
25    protected:
26    
27    struct Item
28    {
29       enum Ops {Install, Configure, Remove, Purge} Op;
30       string File;
31       PkgIterator Pkg;
32       Item(Ops Op,PkgIterator Pkg,string File = "") : Op(Op),
33             File(File), Pkg(Pkg) {};
34       Item() {};
35       
36    };
37    vector<Item> List;
38
39    // Helpers
40    bool RunScripts(const char *Cnf);
41    bool RunScriptsWithPkgs(const char *Cnf);
42    bool SendV2Pkgs(FILE *F);
43    
44    // The Actuall installation implementation
45    virtual bool Install(PkgIterator Pkg,string File);
46    virtual bool Configure(PkgIterator Pkg);
47    virtual bool Remove(PkgIterator Pkg,bool Purge = false);
48    virtual bool Go();
49    virtual void Reset();
50    
51    public:
52
53    pkgDPkgPM(pkgDepCache *Cache);
54    virtual ~pkgDPkgPM();
55 };
56
57 #endif