From: Michael Tremer Date: Fri, 23 Apr 2021 14:29:46 +0000 (+0000) Subject: request: Refactor adding packages to the solver X-Git-Tag: 0.9.28~1285^2~248 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4ee2cfecccf1e087c68bab06c995aa4f6361e38e;p=pakfire.git request: Refactor adding packages to the solver Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/request.c b/src/libpakfire/request.c index 5a75e8057..d1547b4a0 100644 --- a/src/libpakfire/request.c +++ b/src/libpakfire/request.c @@ -229,6 +229,17 @@ PAKFIRE_EXPORT PakfireTransaction pakfire_request_get_transaction(struct pakfire return pakfire_transaction_create(request->pakfire, request->transaction); } +static int pakfire_request_add_package(struct pakfire_request* request, int action, + PakfirePackage pkg, int flags) { + // Get the solvable ID + Id id = pakfire_package_id(pkg); + + // Add it to the job queue + queue_push2(&request->jobs, SOLVER_SOLVABLE|action|flags, id); + + return 0; +} + static int pakfire_request_add_job(struct pakfire_request* request, int action, const char* what) { Pool* pool = pakfire_get_solv_pool(request->pakfire); Id key = 0; @@ -296,10 +307,9 @@ PAKFIRE_EXPORT int pakfire_request_install(struct pakfire_request* request, cons return pakfire_request_add_job(request, SOLVER_INSTALL, what); } -PAKFIRE_EXPORT int pakfire_request_install_package(struct pakfire_request* request, PakfirePackage package) { - queue_push2(&request->jobs, SOLVER_SOLVABLE|SOLVER_INSTALL, pakfire_package_id(package)); - - return 0; +PAKFIRE_EXPORT int pakfire_request_install_package( + struct pakfire_request* request, PakfirePackage package) { + return pakfire_request_add_package(request, SOLVER_INSTALL, package, 0); } PAKFIRE_EXPORT int pakfire_request_install_relation(struct pakfire_request* request, PakfireRelation relation) { @@ -319,11 +329,9 @@ static int erase_flags(int flags) { return additional; } -PAKFIRE_EXPORT int pakfire_request_erase_package(struct pakfire_request* request, PakfirePackage package, int flags) { - int additional = erase_flags(flags); - queue_push2(&request->jobs, SOLVER_SOLVABLE|SOLVER_ERASE|additional, pakfire_package_id(package)); - - return 0; +PAKFIRE_EXPORT int pakfire_request_erase_package( + struct pakfire_request* request, PakfirePackage package, int flags) { + return pakfire_request_add_package(request, SOLVER_ERASE, package, erase_flags(flags)); } PAKFIRE_EXPORT int pakfire_request_erase_relation(struct pakfire_request* request, PakfireRelation relation, int flags) { @@ -338,8 +346,9 @@ PAKFIRE_EXPORT int pakfire_request_erase_selector(struct pakfire_request* reques return pakfire_selector2queue(selector, &request->jobs, SOLVER_ERASE|additional); } -PAKFIRE_EXPORT int pakfire_request_upgrade_package(struct pakfire_request* request, PakfirePackage package) { - return pakfire_request_install_package(request, package); +PAKFIRE_EXPORT int pakfire_request_upgrade_package( + struct pakfire_request* request, PakfirePackage package) { + return pakfire_request_add_package(request, SOLVER_UPDATE, package, 0); } PAKFIRE_EXPORT int pakfire_request_upgrade_relation(struct pakfire_request* request, PakfireRelation relation) { @@ -351,21 +360,19 @@ PAKFIRE_EXPORT int pakfire_request_upgrade_selector(struct pakfire_request* requ } PAKFIRE_EXPORT int pakfire_request_upgrade_all(struct pakfire_request* request) { - queue_push2(&request->jobs, SOLVER_UPDATE|SOLVER_SOLVABLE_ALL, 0); + queue_push2(&request->jobs, SOLVER_SOLVABLE_ALL|SOLVER_UPDATE, 0); return 0; } PAKFIRE_EXPORT int pakfire_request_distupgrade(struct pakfire_request* request) { - queue_push2(&request->jobs, SOLVER_DISTUPGRADE|SOLVER_SOLVABLE_ALL, 0); + queue_push2(&request->jobs, SOLVER_SOLVABLE_ALL|SOLVER_DISTUPGRADE, 0); return 0; } PAKFIRE_EXPORT int pakfire_request_lock_package(struct pakfire_request* request, PakfirePackage package) { - queue_push2(&request->jobs, SOLVER_SOLVABLE|SOLVER_LOCK, pakfire_package_id(package)); - - return 0; + return pakfire_request_add_package(request, SOLVER_LOCK, package, 0); } PAKFIRE_EXPORT int pakfire_request_lock_relation(struct pakfire_request* request, PakfireRelation relation) { @@ -377,7 +384,7 @@ PAKFIRE_EXPORT int pakfire_request_lock_selector(struct pakfire_request* request } PAKFIRE_EXPORT int pakfire_request_verify(struct pakfire_request* request) { - queue_push2(&request->jobs, SOLVER_VERIFY|SOLVER_SOLVABLE_ALL, 0); + queue_push2(&request->jobs, SOLVER_SOLVABLE_ALL|SOLVER_VERIFY, 0); return 0; }