]> git.saurik.com Git - apt.git/blame - apt-pkg/cachefile.h
Cache operator
[apt.git] / apt-pkg / cachefile.h
CommitLineData
2d11135a
AL
1// -*- mode: cpp; mode: fold -*-
2// Description /*{{{*/
099a4759 3// $Id: cachefile.h,v 1.3 1999/06/27 03:18:28 jgg Exp $
2d11135a
AL
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
24class 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;};
099a4759 36 inline operator pkgDepCache *() {return Cache;};
2d11135a
AL
37 inline pkgDepCache *operator ->() {return Cache;};
38 inline pkgDepCache &operator *() {return *Cache;};
b826eb9e
AL
39 inline pkgDepCache::StateCache &operator [](pkgCache::PkgIterator const &I) {return (*Cache)[I];};
40 inline unsigned char &operator [](pkgCache::DepIterator const &I) {return (*Cache)[I];};
099a4759 41
2d11135a
AL
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