blob: e2414446e17bd61064d14898d9288b50c59802bd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
// $Id: cachefile.h,v 1.3 1999/06/27 03:18:28 jgg Exp $
/* ######################################################################
CacheFile - Simple wrapper class for opening, generating and whatnot
This class implements a simple 2 line mechanism to open various sorts
of caches. It can operate as root, as not root, show progress and so on,
it transparently handles everything necessary.
##################################################################### */
/*}}}*/
#ifndef PKGLIB_CACHEFILE_H
#define PKGLIB_CACHEFILE_H
#ifdef __GNUG__
#pragma interface "apt-pkg/cachefile.h"
#endif
#include <apt-pkg/depcache.h>
#include <apt-pkg/dpkginit.h>
class pkgCacheFile
{
protected:
MMap *Map;
pkgDepCache *Cache;
pkgDpkgLock *Lock;
public:
// We look pretty much exactly like a pointer to a dep cache
inline operator pkgDepCache &() {return *Cache;};
inline operator pkgDepCache *() {return Cache;};
inline pkgDepCache *operator ->() {return Cache;};
inline pkgDepCache &operator *() {return *Cache;};
inline pkgDepCache::StateCache &operator [](pkgCache::PkgIterator const &I) {return (*Cache)[I];};
inline unsigned char &operator [](pkgCache::DepIterator const &I) {return (*Cache)[I];};
// Release the dpkg status lock
inline void ReleaseLock() {Lock->Close();};
bool Open(OpProgress &Progress,bool WithLock = true);
pkgCacheFile();
~pkgCacheFile();
};
#endif
|