]> git.saurik.com Git - apt.git/blob - apt-pkg/cachefile.h
QT1 license exception
[apt.git] / apt-pkg / cachefile.h
1 // -*- mode: cpp; mode: fold -*-
2 // Description /*{{{*/
3 // $Id: cachefile.h,v 1.3 1999/06/27 03:18:28 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 ##################################################################### */
13 /*}}}*/
14 #ifndef PKGLIB_CACHEFILE_H
15 #define PKGLIB_CACHEFILE_H
16
17 #ifdef __GNUG__
18 #pragma interface "apt-pkg/cachefile.h"
19 #endif
20
21 #include <apt-pkg/depcache.h>
22 #include <apt-pkg/dpkginit.h>
23
24 class pkgCacheFile
25 {
26 protected:
27
28 MMap *Map;
29 pkgDepCache *Cache;
30 pkgDpkgLock *Lock;
31
32 public:
33
34 // We look pretty much exactly like a pointer to a dep cache
35 inline operator pkgDepCache &() {return *Cache;};
36 inline operator pkgDepCache *() {return Cache;};
37 inline pkgDepCache *operator ->() {return Cache;};
38 inline pkgDepCache &operator *() {return *Cache;};
39 inline pkgDepCache::StateCache &operator [](pkgCache::PkgIterator const &I) {return (*Cache)[I];};
40 inline unsigned char &operator [](pkgCache::DepIterator const &I) {return (*Cache)[I];};
41
42 // Release the dpkg status lock
43 inline void ReleaseLock() {Lock->Close();};
44
45 bool Open(OpProgress &Progress,bool WithLock = true);
46
47 pkgCacheFile();
48 ~pkgCacheFile();
49 };
50
51 #endif