if (name_only)
flags |= PAKFIRE_NAME_ONLY;
- PakfirePackageList list = pakfire_whatprovides(self->pakfire, provides, flags);
+ struct pakfire_packagelist* list = pakfire_whatprovides(self->pakfire, provides, flags);
PyObject* obj = PyList_FromPackageList(list);
pakfire_packagelist_unref(list);
if (!PyArg_ParseTuple(args, "s", &what))
return NULL;
- PakfirePackageList list = pakfire_search(self->pakfire, what, 0);
+ struct pakfire_packagelist* list = pakfire_search(self->pakfire, what, 0);
PyObject* obj = PyList_FromPackageList(list);
pakfire_packagelist_unref(list);
return PyLong_FromUnsignedLong(iterations);
}
-PyObject* PyList_FromPackageList(PakfirePackageList packagelist) {
+PyObject* PyList_FromPackageList(struct pakfire_packagelist* packagelist) {
PyObject* list = PyList_New(0);
int count = pakfire_packagelist_count(packagelist);
#include <Python.h>
-#include <pakfire/types.h>
-#include <solv/evr.h>
-
-#include "pakfire.h"
+#include <pakfire/packagelist.h>
extern PyObject* performance_index(PyObject* self, PyObject* args);
-PyObject* PyList_FromPackageList(PakfirePackageList packagelist);
+PyObject* PyList_FromPackageList(struct pakfire_packagelist* packagelist);
#endif /* PYTHON_PAKFIRE_UTIL_H */
#ifndef PAKFIRE_PACKAGELIST_H
#define PAKFIRE_PACKAGELIST_H
-#include <solv/queue.h>
-
#include <pakfire/types.h>
-PakfirePackageList pakfire_packagelist_create(Pakfire pakfire);
-PakfirePackageList pakfire_packagelist_ref(PakfirePackageList list);
-PakfirePackageList pakfire_packagelist_unref(PakfirePackageList list);
+struct pakfire_packagelist;
+
+struct pakfire_packagelist* pakfire_packagelist_create(Pakfire pakfire);
+struct pakfire_packagelist* pakfire_packagelist_ref(struct pakfire_packagelist* list);
+struct pakfire_packagelist* pakfire_packagelist_unref(struct pakfire_packagelist* list);
-size_t pakfire_packagelist_count(PakfirePackageList list);
-void pakfire_packagelist_sort(PakfirePackageList list);
-int pakfire_packagelist_has(PakfirePackageList list, PakfirePackage pkg);
-PakfirePackage pakfire_packagelist_get(PakfirePackageList list, unsigned int index);
+size_t pakfire_packagelist_count(struct pakfire_packagelist* list);
+void pakfire_packagelist_sort(struct pakfire_packagelist* list);
+int pakfire_packagelist_has(struct pakfire_packagelist* list, PakfirePackage pkg);
+PakfirePackage pakfire_packagelist_get(struct pakfire_packagelist* list, unsigned int index);
-void pakfire_packagelist_push(PakfirePackageList list, PakfirePackage pkg);
-void pakfire_packagelist_push_if_not_exists(PakfirePackageList list, PakfirePackage pkg);
+void pakfire_packagelist_push(struct pakfire_packagelist* list, PakfirePackage pkg);
+void pakfire_packagelist_push_if_not_exists(struct pakfire_packagelist* list, PakfirePackage pkg);
#ifdef PAKFIRE_PRIVATE
-PakfirePackageList pakfire_packagelist_from_queue(Pakfire pakfire, Queue* q);
+#include <solv/queue.h>
+
+struct pakfire_packagelist* pakfire_packagelist_from_queue(Pakfire pakfire, Queue* q);
#endif
struct pakfire_repolist* pakfire_get_repos(Pakfire pakfire);
PakfireRepo pakfire_get_repo(Pakfire pakfire, const char* name);
-PakfirePackageList pakfire_whatprovides(Pakfire pakfire, const char* provides, int flags);
-PakfirePackageList pakfire_search(Pakfire pakfire, const char* what, int flags);
+struct pakfire_packagelist* pakfire_whatprovides(Pakfire pakfire, const char* provides, int flags);
+struct pakfire_packagelist* pakfire_search(Pakfire pakfire, const char* what, int flags);
// Logging
typedef struct _PakfireFilelist* PakfireFilelist;
typedef struct _PakfireKey* PakfireKey;
typedef struct _PakfirePackage* PakfirePackage;
-typedef struct _PakfirePackageList* PakfirePackageList;
typedef struct _PakfireParser* PakfireParser;
typedef struct _PakfireRepo* PakfireRepo;
typedef struct _PakfireSolution* PakfireSolution;
#define BLOCK_SIZE 31
-struct _PakfirePackageList {
+struct pakfire_packagelist {
Pakfire pakfire;
+ int nrefs;
+
PakfirePackage* elements;
size_t count;
- int nrefs;
};
-PAKFIRE_EXPORT PakfirePackageList pakfire_packagelist_create(Pakfire pakfire) {
- PakfirePackageList list = calloc(1, sizeof(*list));
+PAKFIRE_EXPORT struct pakfire_packagelist* pakfire_packagelist_create(Pakfire pakfire) {
+ struct pakfire_packagelist* list = calloc(1, sizeof(*list));
if (list) {
DEBUG(pakfire, "Allocated PackageList at %p\n", list);
list->pakfire = pakfire_ref(pakfire);
return list;
}
-PAKFIRE_EXPORT PakfirePackageList pakfire_packagelist_ref(PakfirePackageList list) {
+PAKFIRE_EXPORT struct pakfire_packagelist* pakfire_packagelist_ref(struct pakfire_packagelist* list) {
list->nrefs++;
return list;
}
-static void pakfire_packagelist_free(PakfirePackageList list) {
+static void pakfire_packagelist_free(struct pakfire_packagelist* list) {
DEBUG(list->pakfire, "Releasing PackageList at %p\n", list);
pakfire_unref(list->pakfire);
free(list);
}
-PAKFIRE_EXPORT PakfirePackageList pakfire_packagelist_unref(PakfirePackageList list) {
+PAKFIRE_EXPORT struct pakfire_packagelist* pakfire_packagelist_unref(struct pakfire_packagelist* list) {
if (!list)
return NULL;
return NULL;
}
-PAKFIRE_EXPORT size_t pakfire_packagelist_count(PakfirePackageList list) {
+PAKFIRE_EXPORT size_t pakfire_packagelist_count(struct pakfire_packagelist* list) {
return list->count;
}
return pakfire_package_cmp(*(PakfirePackage*)pkg1, *(PakfirePackage*)pkg2);
}
-PAKFIRE_EXPORT void pakfire_packagelist_sort(PakfirePackageList list) {
+PAKFIRE_EXPORT void pakfire_packagelist_sort(struct pakfire_packagelist* list) {
qsort(list->elements, list->count, sizeof(*list->elements), _packagelist_cmp);
}
-PAKFIRE_EXPORT PakfirePackage pakfire_packagelist_get(PakfirePackageList list, unsigned int index) {
+PAKFIRE_EXPORT PakfirePackage pakfire_packagelist_get(struct pakfire_packagelist* list, unsigned int index) {
if (index < list->count)
return pakfire_package_ref(list->elements[index]);
return NULL;
}
-PAKFIRE_EXPORT int pakfire_packagelist_has(PakfirePackageList list, PakfirePackage pkg) {
+PAKFIRE_EXPORT int pakfire_packagelist_has(struct pakfire_packagelist* list, PakfirePackage pkg) {
for (unsigned int i = 0; i < list->count; i++) {
PakfirePackage _pkg = list->elements[i];
return 0;
}
-PAKFIRE_EXPORT void pakfire_packagelist_push(PakfirePackageList list, PakfirePackage pkg) {
+PAKFIRE_EXPORT void pakfire_packagelist_push(struct pakfire_packagelist* list, PakfirePackage pkg) {
list->elements = solv_extend(list->elements, list->count, 1, sizeof(pkg), BLOCK_SIZE);
list->elements[list->count++] = pakfire_package_ref(pkg);
}
-PAKFIRE_EXPORT void pakfire_packagelist_push_if_not_exists(PakfirePackageList list, PakfirePackage pkg) {
+PAKFIRE_EXPORT void pakfire_packagelist_push_if_not_exists(struct pakfire_packagelist* list, PakfirePackage pkg) {
if (pakfire_packagelist_has(list, pkg))
return;
pakfire_packagelist_push(list, pkg);
}
-PAKFIRE_EXPORT PakfirePackageList pakfire_packagelist_from_queue(Pakfire pakfire, Queue* q) {
- PakfirePackageList list = pakfire_packagelist_create(pakfire);
+PAKFIRE_EXPORT struct pakfire_packagelist* pakfire_packagelist_from_queue(Pakfire pakfire, Queue* q) {
+ struct pakfire_packagelist* list = pakfire_packagelist_create(pakfire);
Pool* pool = pakfire_get_solv_pool(pakfire);
Id p, pp;
return pakfire_repo_create_from_repo(pakfire, pakfire->pool->installed);
}
-static PakfirePackageList pakfire_pool_dataiterator(Pakfire pakfire, const char* what, int key, int flags) {
- PakfirePackageList list = pakfire_packagelist_create(pakfire);
+static struct pakfire_packagelist* pakfire_pool_dataiterator(Pakfire pakfire, const char* what, int key, int flags) {
+ struct pakfire_packagelist* list = pakfire_packagelist_create(pakfire);
pakfire_pool_apply_changes(pakfire);
int di_flags = 0;
return list;
}
-static PakfirePackageList pakfire_search_name(Pakfire pakfire, const char* name, int flags) {
+static struct pakfire_packagelist* pakfire_search_name(Pakfire pakfire, const char* name, int flags) {
if (!flags) {
- PakfirePackageList list = pakfire_packagelist_create(pakfire);
+ struct pakfire_packagelist* list = pakfire_packagelist_create(pakfire);
pakfire_pool_apply_changes(pakfire);
Id id = pool_str2id(pakfire->pool, name, 0);
return pakfire_pool_dataiterator(pakfire, name, SOLVABLE_NAME, flags);
}
-static PakfirePackageList pakfire_search_provides(Pakfire pakfire, const char* provides, int flags) {
+static struct pakfire_packagelist* pakfire_search_provides(Pakfire pakfire, const char* provides, int flags) {
if (!flags) {
- PakfirePackageList list = pakfire_packagelist_create(pakfire);
+ struct pakfire_packagelist* list = pakfire_packagelist_create(pakfire);
pakfire_pool_apply_changes(pakfire);
Id id = pool_str2id(pakfire->pool, provides, 0);
return pakfire_pool_dataiterator(pakfire, provides, SOLVABLE_PROVIDES, flags);
}
-PAKFIRE_EXPORT PakfirePackageList pakfire_whatprovides(Pakfire pakfire, const char* what, int flags) {
+PAKFIRE_EXPORT struct pakfire_packagelist* pakfire_whatprovides(Pakfire pakfire, const char* what, int flags) {
// Refresh repositories
int r = pakfire_refresh(pakfire, 0);
if (r)
}
}
-PAKFIRE_EXPORT PakfirePackageList pakfire_search(Pakfire pakfire, const char* what, int flags) {
+PAKFIRE_EXPORT struct pakfire_packagelist* pakfire_search(Pakfire pakfire, const char* what, int flags) {
// Refresh repositories
int r = pakfire_refresh(pakfire, 0);
if (r)