]>
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_MSG ( "Pass Progress in as a pointer" ) 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_MSG ( "Pass Progress in as a pointer" ) 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 ();