4 /** \ingroup rpmdep rpmtrans
6 * Structures used for managing added/available package lists.
10 * A package from an availableList.
12 typedef /*@abstract@*/ struct availablePackage_s * availablePackage;
15 * Return number of packages in list.
16 * @param al available list
17 * @return no. of packages in list
19 int alGetSize(const availableList al)
24 * Return available package multiLib flag.
25 * @param al available list
26 * @param pkgKey available package key
27 * @return available package multiLib flag
29 int alGetMultiLib(/*@null@*/ const availableList al, /*@null@*/ alKey pkgKey)
35 * Return available package files count.
36 * @param al available list
37 * @param pkgKey available package key
38 * @return available package files count
40 int alGetFilesCount(/*@null@*/ const availableList al, /*@null@*/ alKey pkgKey)
45 * Return available package provides.
46 * @param al available list
47 * @param pkgKey available package key
48 * @return available package provides
51 rpmDepSet alGetProvides(/*@null@*/ const availableList al, /*@null@*/ alKey pkgKey)
55 * Return available package requires.
56 * @param al available list
57 * @param pkgKey available package key
58 * @return available package requires
61 rpmDepSet alGetRequires(/*@null@*/ const availableList al, /*@null@*/ alKey pkgKey)
65 * Return available package header.
66 * @param al available list
67 * @param pkgKey available package key
68 * @param unlink Should alp->h be unlinked?
69 * @return available package header
71 Header alGetHeader(/*@null@*/ availableList al, /*@null@*/ alKey pkgKey,
76 * Return available package.
77 * @param al available list
78 * @param pkgKey available package key
79 * @return available package pointer
82 /*@dependent@*/ /*@null@*/
83 availablePackage alGetPkg(/*@null@*/ availableList al, /*@null@*/ alKey pkgKey)
88 * Return (malloc'd) available package name-version-release string.
89 * @param al available list
90 * @param pkgKey available package key
91 * @return name-version-release string
94 char * alGetNVR(/*@null@*/const availableList al, /*@null@*/ alKey pkgKey)
98 * Initialize available packckages, items, and directory list.
99 * @param delta no. of entries to add on each realloc
100 * @return al new available list
103 availableList alCreate(int delta)
107 * Free available packages, items, and directory members.
108 * @param al available list
109 * @return NULL always
112 availableList alFree(/*@only@*/ /*@null@*/ availableList al)
116 * Delete package from available list.
117 * @param al available list
118 * @param pkgKey package key
121 void alDelPackage(availableList al, /*@null@*/ alKey pkgKey)
126 * Add package to available list.
127 * @param al available list
128 * @param pkgKey package key, RPMAL_NOMATCH to force an append
129 * @param h package header
130 * @return available package index
132 alKey alAddPackage(availableList al, /*@null@*/ alKey pkgKey, Header h)
133 /*@modifies al, h @*/;
136 * Add package provides to available list index.
137 * @param al available list
138 * @param pkgKey package key
139 * @param provides added package provides
142 void alAddProvides(availableList al, /*@null@*/ alKey pkgKey,
143 /*@null@*/ rpmDepSet provides)
144 /*@modifies al, provides @*/;
148 * Generate index for available list.
149 * @param al available list
151 void alMakeIndex(availableList al)
155 * Check added package file lists for package(s) that provide a file.
156 * @param al available list
157 * @param ds dependency set
158 * @return available package pointer
161 /*@only@*/ /*@null@*/
162 alKey * alAllFileSatisfiesDepend(const availableList al, const rpmDepSet ds)
163 /*@globals fileSystem @*/
164 /*@modifies al, fileSystem @*/;
168 * Check added package file lists for package(s) that have a provide.
169 * @param al available list
170 * @param ds dependency set
171 * @return available package keys
173 /*@only@*/ /*@null@*/
174 alKey * alAllSatisfiesDepend(const availableList al, const rpmDepSet ds)
175 /*@globals fileSystem @*/
176 /*@modifies al, fileSystem @*/;
179 * Check added package file lists for first package that has a provide.
181 * @param al available list
182 * @param ds dependency set
183 * @return available package index, -1 on not found
185 alKey alSatisfiesDepend(const availableList al, const rpmDepSet ds)
186 /*@globals fileSystem @*/
187 /*@modifies al, fileSystem @*/;