]> git.saurik.com Git - apt.git/blob - apt-inst/database.h
merged from donkult
[apt.git] / apt-inst / database.h
1 // -*- mode: cpp; mode: fold -*-
2 // Description /*{{{*/
3 // $Id: database.h,v 1.2 2001/02/20 07:03:16 jgg Exp $
4 /* ######################################################################
5
6 Data Base Abstraction
7
8 This class provides a simple interface to an abstract notion of a
9 database directory for storing state information about the system.
10
11 The 'Meta' information for a package is the control information and
12 setup scripts stored inside the archive. GetMetaTmp returns the name of
13 a directory that is used to store named files containing the control
14 information.
15
16 The File Listing is the database of installed files. It is loaded
17 into the memory/persistent cache structure by the ReadFileList method.
18
19 ##################################################################### */
20 /*}}}*/
21 #ifndef PKGLIB_DATABASE_H
22 #define PKGLIB_DATABASE_H
23
24 #include <apt-pkg/filelist.h>
25 #include <apt-pkg/pkgcachegen.h>
26
27 class pkgDataBase
28 {
29 protected:
30
31 pkgCacheGenerator *Cache;
32 pkgFLCache *FList;
33 string MetaDir;
34 virtual bool InitMetaTmp(string &Dir) = 0;
35
36 public:
37
38 // Some manipulators for the cache and generator
39 inline pkgCache &GetCache() {return Cache->GetCache();};
40 inline pkgFLCache &GetFLCache() {return *FList;};
41 inline pkgCacheGenerator &GetGenerator() {return *Cache;};
42
43 bool GetMetaTmp(string &Dir);
44 virtual bool ReadyFileList(OpProgress &Progress) = 0;
45 virtual bool ReadyPkgCache(OpProgress &Progress) = 0;
46 virtual bool LoadChanges() = 0;
47
48 pkgDataBase() : Cache(0), FList(0) {};
49 virtual ~pkgDataBase() {delete Cache; delete FList;};
50 };
51
52 #endif