42 std::string *FileList;
43 DepIterator Loops[20];
46 unsigned short *Flags;
50 bool VisitNode(PkgIterator Pkg,
char const* from);
51 bool VisitDeps(DepFunc F,PkgIterator Pkg);
52 bool VisitRDeps(DepFunc F,PkgIterator Pkg);
53 bool VisitRProvides(DepFunc F,VerIterator Ver);
54 bool VisitProvides(DepIterator Pkg,
bool Critical);
57 bool DepUnPackCrit(DepIterator D);
58 bool DepUnPackPreD(DepIterator D);
59 bool DepUnPackPre(DepIterator D);
60 bool DepUnPackDep(DepIterator D);
61 bool DepConfigure(DepIterator D);
62 bool DepRemove(DepIterator D);
65 bool AddLoop(DepIterator D);
66 bool CheckDep(DepIterator D);
72 int FileCmp(PkgIterator A,PkgIterator B) APT_PURE;
84 enum Flags {Added = (1 << 0), AddPending = (1 << 1),
85 Immediate = (1 << 2), Loop = (1 << 3),
86 UnPacked = (1 << 4), Configured = (1 << 5),
90 States = (UnPacked | Configured | Removed)};
93 inline bool IsFlag(PkgIterator Pkg,
unsigned long F) {
return (Flags[Pkg->ID] & F) == F;};
94 inline bool IsFlag(
Package *Pkg,
unsigned long F) {
return (Flags[Pkg->ID] & F) == F;};
95 void Flag(PkgIterator Pkg,
unsigned long State,
unsigned long F) {Flags[Pkg->ID] = (Flags[Pkg->ID] & (~F)) | State;};
96 inline void Flag(PkgIterator Pkg,
unsigned long F) {Flags[Pkg->ID] |= F;};
97 inline void Flag(
Package *Pkg,
unsigned long F) {Flags[Pkg->ID] |= F;};
99 inline void RmFlag(
Package *Pkg,
unsigned long F) {Flags[Pkg->ID] &= ~F;};
101 inline bool IsNow(PkgIterator Pkg) {
return (Flags[Pkg->ID] & (States & (~Removed))) == 0;};
102 bool IsMissing(PkgIterator Pkg) APT_PURE;
103 void WipeFlags(
unsigned long F);
104 void SetFileList(std::string *FileList) {this->FileList = FileList;};
107 inline iterator begin() {
return List;};
108 inline iterator end() {
return End;};
109 inline void push_back(
Package *Pkg) {*(End++) = Pkg;};
110 inline void push_back(PkgIterator Pkg) {*(End++) = Pkg;};
111 inline void pop_back() {End--;};
112 inline bool empty() {
return End == List;};
113 inline unsigned int size() {
return End - List;};
116 bool OrderCritical();
117 bool OrderUnpack(std::string *FileList = 0);
118 bool OrderConfigure();
120 int Score(PkgIterator Pkg);