Join with aliencode
[ntk/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 #ifdef __GNUG__
25 #pragma interface "apt-pkg/database.h"
26 #endif
27
28 #include <apt-pkg/filelist.h>
29 #include <apt-pkg/pkgcachegen.h>
30
31 class pkgDataBase
32 {
33 protected:
34
35 pkgCacheGenerator *Cache;
36 pkgFLCache *FList;
37 string MetaDir;
38 virtual bool InitMetaTmp(string &Dir) = 0;
39
40 public:
41
42 // Some manipulators for the cache and generator
43 inline pkgCache &GetCache() {return Cache->GetCache();};
44 inline pkgFLCache &GetFLCache() {return *FList;};
45 inline pkgCacheGenerator &GetGenerator() {return *Cache;};
46
47 bool GetMetaTmp(string &Dir);
48 virtual bool ReadyFileList(OpProgress &Progress) = 0;
49 virtual bool ReadyPkgCache(OpProgress &Progress) = 0;
50 virtual bool LoadChanges() = 0;
51
52 pkgDataBase() : Cache(0), FList(0) {};
53 virtual ~pkgDataBase() {delete Cache; delete FList;};
54 };
55
56 #endif