74 #ifndef PKGLIB_PKGCACHE_H
75 #define PKGLIB_PKGCACHE_H
79 #include <apt-pkg/mmap.h>
81 #ifndef APT_8_CLEANER_HEADERS
103 template<
typename Str,
typename Itr>
class Iterator;
123 enum DepType {Depends=1,PreDepends=2,Suggests=3,Recommends=4,
124 Conflicts=5,Replaces=6,Obsoletes=7,DpkgBreaks=8,Enhances=9};
131 Greater=0x4,Equals=0x5,NotEquals=0x6};
139 enum VerPriority {Important=1,Required=2,Standard=3,Optional=4,Extra=5};
140 enum PkgSelectedState {Unknown=0,Install=1,Hold=2,DeInstall=3,Purge=4};
141 enum PkgInstState {Ok=0,ReInstReq=1,HoldInst=2,HoldReInstReq=3};
142 enum PkgCurrentState {NotInstalled=0,UnPacked=1,HalfConfigured=2,
143 HalfInstalled=4,ConfigFiles=5,Installed=6,
144 TriggersAwaited=7,TriggersPending=8};
149 enum PkgFlags {Auto=(1<<0),Essential=(1<<3),Important=(1<<4)};
150 enum PkgFFlags {NotSource=(1<<0),NotAutomatic=(1<<1),ButAutomaticUpgrades=(1<<2)};
156 std::string CacheFile;
159 unsigned long sHash(
const std::string &S)
const;
160 unsigned long sHash(
const char *S)
const;
178 virtual bool ReMap(
bool const &Errorchecks =
true);
179 inline bool Sync() {
return Map.Sync();};
180 inline MMap &GetMap() {
return Map;};
181 inline void *DataEnd() {
return ((
unsigned char *)Map.Data()) + Map.Size();};
184 inline unsigned long Hash(
const std::string &S)
const {
return sHash(S);};
185 inline unsigned long Hash(
const char *S)
const {
return sHash(S);};
188 const char *Priority(
unsigned char Priority);
193 PkgIterator FindPkg(
const std::string &Name,
const std::string &Arch);
195 Header &Head() {
return *HeaderP;};
203 inline bool MultiArchCache()
const {
return MultiArchEnabled; };
204 inline char const *
const NativeArch()
const;
210 static const char *CompTypeDeb(
unsigned char Comp);
211 static const char *CompType(
unsigned char Comp);
212 static const char *DepType(
unsigned char Dep);
218 bool MultiArchEnabled;
219 PkgIterator SingleArchFindPkg(
const std::string &Name);
249 unsigned short GroupSz;
250 unsigned short PackageSz;
251 unsigned short PackageFileSz;
252 unsigned short VersionSz;
253 unsigned short DescriptionSz;
254 unsigned short DependencySz;
255 unsigned short ProvidesSz;
256 unsigned short VerFileSz;
257 unsigned short DescFileSz;
265 unsigned long PackageCount;
266 unsigned long VersionCount;
267 unsigned long DescriptionCount;
268 unsigned long DependsCount;
269 unsigned long PackageFileCount;
270 unsigned long VerFileCount;
271 unsigned long DescFileCount;
272 unsigned long ProvidesCount;
315 map_ptrloc PkgHashTable[2*1048];
316 map_ptrloc GrpHashTable[2*1048];
321 bool CheckSizes(
Header &Against)
const;
434 map_ptrloc Component;
438 map_ptrloc Architecture;
514 AllForeign = All | Foreign,
515 AllAllowed = All | Allowed };
664 inline char const *
const pkgCache::NativeArch()
const
665 {
return StrP + HeaderP->Architecture; };
667 #include <apt-pkg/cacheiterators.h>
670 {
return GrpIterator(*
this);};
672 {
return GrpIterator(*
this,GrpP);};
674 {
return PkgIterator(*
this);};
676 {
return PkgIterator(*
this,PkgP);};
678 {
return PkgFileIterator(*
this,PkgFileP + HeaderP->FileList);};
680 {
return PkgFileIterator(*
this,PkgFileP);};