1 : // -*- mode: cpp; mode: fold -*-
2 : // Description /*{{{*/
3 : // $Id: cachefile.h,v 1.5 2002/04/27 04:28:04 jgg Exp $
4 : /* ######################################################################
5 :
6 : CacheFile - Simple wrapper class for opening, generating and whatnot
7 :
8 : This class implements a simple 2 line mechanism to open various sorts
9 : of caches. It can operate as root, as not root, show progress and so on,
10 : it transparently handles everything necessary.
11 :
12 : This means it can rebuild caches from the source list and instantiates
13 : and prepares the standard policy mechanism.
14 :
15 : ##################################################################### */
16 : /*}}}*/
17 : #ifndef PKGLIB_CACHEFILE_H
18 : #define PKGLIB_CACHEFILE_H
19 :
20 :
21 : #include <apt-pkg/depcache.h>
22 : #include <apt-pkg/acquire.h>
23 : #include <apt-pkg/sourcelist.h>
24 :
25 : class pkgPolicy;
26 : class pkgCacheFile
27 : {
28 : protected:
29 :
30 : MMap *Map;
31 : pkgCache *Cache;
32 : pkgDepCache *DCache;
33 :
34 : public:
35 :
36 : pkgPolicy *Policy;
37 :
38 : // We look pretty much exactly like a pointer to a dep cache
39 : inline operator pkgCache &() {return *Cache;};
40 : inline operator pkgCache *() {return Cache;};
41 : inline operator pkgDepCache &() {return *DCache;};
42 : inline operator pkgDepCache *() {return DCache;};
43 : inline pkgDepCache *operator ->() {return DCache;};
44 : inline pkgDepCache &operator *() {return *DCache;};
45 1 : inline pkgDepCache::StateCache &operator [](pkgCache::PkgIterator const &I) {return (*DCache)[I];};
46 : inline unsigned char &operator [](pkgCache::DepIterator const &I) {return (*DCache)[I];};
47 :
48 : bool BuildCaches(OpProgress &Progress,bool WithLock = true);
49 : bool Open(OpProgress &Progress,bool WithLock = true);
50 : void Close();
51 :
52 : pkgCacheFile();
53 : ~pkgCacheFile();
54 : };
55 :
56 : #endif
|