- initial import of revision 374 from cnc
[apt.git] / apt-pkg / rpm / rpmsystem.h
1 // -*- mode: cpp; mode: fold -*-
2 // Description                                                          /*{{{*/
3 // $Id: rpmsystem.h,v 1.2 2002/07/30 20:43:41 niemeyer Exp $
4 /* ######################################################################
5
6    System - RPM version of the  System Class
7
8    ##################################################################### 
9  */
10                                                                         /*}}}*/
11 #ifndef PKGLIB_RPMSYSTEM_H
12 #define PKGLIB_RPMSYSTEM_H
13
14 #ifdef __GNUG__
15 #pragma interface "apt-pkg/rpmsystem.h"
16 #endif
17
18 #include <apt-pkg/pkgsystem.h>
19 #include <apt-pkg/rpmindexfile.h>
20 #include <apt-pkg/algorithms.h>
21
22 #include <map>
23
24 class RPMDBHandler;
25 class pkgSourceList;
26 class rpmIndexFile;
27
28 class rpmSystem : public pkgSystem
29 {
30    int LockCount;
31    RPMDBHandler *RpmDB;
32    rpmDatabaseIndex *StatusFile;
33    
34 #ifdef OLD_FILEDEPS
35    map<string,int> FileDeps; // file dependencies
36 #endif
37 #ifdef OLD_BESTARCH
38    map<string,string> MultiArchPkgs; // packages with multi-archs
39 #endif
40
41    bool processIndexFile(rpmIndexFile *Handler,OpProgress &Progress);
42    
43    public:
44
45 #ifdef OLD_FILEDEPS
46    bool IsFileDep(string File);
47 #endif
48 #ifdef OLD_BESTARCH
49    string BestArchForPackage(string Pkg);
50    virtual bool PreProcess(pkgIndexFile **Start,pkgIndexFile **End,
51                            OpProgress &Progress);
52 #endif
53    RPMDBHandler *GetDBHandler();
54    
55    virtual bool LockRead();
56    virtual bool Lock();
57    virtual bool UnLock(bool NoErrors = false);
58    virtual pkgPackageManager *CreatePM(pkgDepCache *Cache) const;
59    virtual bool Initialize(Configuration &Cnf);
60    virtual bool ArchiveSupported(const char *Type);
61    virtual signed Score(Configuration const &Cnf);
62    virtual bool AddStatusFiles(vector<pkgIndexFile *> &List);
63    virtual bool AddSourceFiles(vector<pkgIndexFile *> &List);
64    virtual bool FindIndex(pkgCache::PkgFileIterator File,
65                           pkgIndexFile *&Found) const;
66    virtual bool ProcessCache(pkgDepCache &Cache,pkgProblemResolver &Fix);
67    virtual bool IgnoreDep(pkgVersioningSystem &VS,pkgCache::DepIterator &Dep);
68    virtual void CacheBuilt();
69
70    virtual unsigned long OptionsHash() const;
71
72    rpmSystem();
73    virtual ~rpmSystem();
74 };
75
76 extern rpmSystem rpmSys;
77
78 #endif