]>
git.saurik.com Git - apt.git/blob - apt-pkg/cachefile.h
1 // -*- mode: cpp; mode: fold -*-
3 /* ######################################################################
5 CacheFile - Simple wrapper class for opening, generating and whatnot
7 This class implements a simple 2 line mechanism to open various sorts
8 of caches. It can operate as root, as not root, show progress and so on,
9 it transparently handles everything necessary.
11 This means it can rebuild caches from the source list and instantiates
12 and prepares the standard policy mechanism.
14 ##################################################################### */
16 #ifndef PKGLIB_CACHEFILE_H
17 #define PKGLIB_CACHEFILE_H
21 #include <apt-pkg/depcache.h>
22 #include <apt-pkg/macros.h>
23 #include <apt-pkg/pkgcache.h>
24 #include <apt-pkg/cacheiterators.h>
26 #ifndef APT_8_CLEANER_HEADERS
27 #include <apt-pkg/acquire.h>
28 #include <apt-pkg/policy.h>
29 #include <apt-pkg/sourcelist.h>
39 /** \brief dpointer placeholder (for later in case we need it) */
47 pkgSourceList
*SrcList
;
52 // We look pretty much exactly like a pointer to a dep cache
53 inline operator pkgCache
&() const {return *Cache
;};
54 inline operator pkgCache
*() const {return Cache
;};
55 inline operator pkgDepCache
&() const {return *DCache
;};
56 inline operator pkgDepCache
*() const {return DCache
;};
57 inline operator pkgPolicy
&() const {return *Policy
;};
58 inline operator pkgPolicy
*() const {return Policy
;};
59 inline operator pkgSourceList
&() const {return *SrcList
;};
60 inline operator pkgSourceList
*() const {return SrcList
;};
61 inline pkgDepCache
*operator ->() const {return DCache
;};
62 inline pkgDepCache
&operator *() const {return *DCache
;};
63 inline pkgDepCache::StateCache
&operator [](pkgCache::PkgIterator
const &I
) const {return (*DCache
)[I
];};
64 inline unsigned char &operator [](pkgCache::DepIterator
const &I
) const {return (*DCache
)[I
];};
66 bool BuildCaches(OpProgress
*Progress
= NULL
,bool WithLock
= true);
67 APT_DEPRECATED
bool BuildCaches(OpProgress
&Progress
,bool const &WithLock
= true) { return BuildCaches(&Progress
, WithLock
); };
68 bool BuildSourceList(OpProgress
*Progress
= NULL
);
69 bool BuildPolicy(OpProgress
*Progress
= NULL
);
70 bool BuildDepCache(OpProgress
*Progress
= NULL
);
71 bool Open(OpProgress
*Progress
= NULL
, bool WithLock
= true);
72 inline bool ReadOnlyOpen(OpProgress
*Progress
= NULL
) { return Open(Progress
, false); };
73 APT_DEPRECATED
bool Open(OpProgress
&Progress
,bool const &WithLock
= true) { return Open(&Progress
, WithLock
); };
74 static void RemoveCaches();
77 inline pkgCache
* GetPkgCache() { BuildCaches(NULL
, false); return Cache
; };
78 inline pkgDepCache
* GetDepCache() { BuildDepCache(); return DCache
; };
79 inline pkgPolicy
* GetPolicy() { BuildPolicy(); return Policy
; };
80 inline pkgSourceList
* GetSourceList() { BuildSourceList(); return SrcList
; };
82 inline bool IsPkgCacheBuilt() const { return (Cache
!= NULL
); };
83 inline bool IsDepCacheBuilt() const { return (DCache
!= NULL
); };
84 inline bool IsPolicyBuilt() const { return (Policy
!= NULL
); };
85 inline bool IsSrcListBuilt() const { return (SrcList
!= NULL
); };
88 explicit pkgCacheFile(pkgDepCache
* const Owner
);
89 virtual ~pkgCacheFile();