From: Michael Tremer Date: Fri, 3 Nov 2017 17:43:08 +0000 (+0100) Subject: steps: Use own types instead of libsolv types X-Git-Tag: 0.9.28~1285^2~1302 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=17a738e64c43900cbebd7f0edcaff664650cb0e5;p=pakfire.git steps: Use own types instead of libsolv types Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/include/pakfire/step.h b/src/libpakfire/include/pakfire/step.h index 4c5658785..37d34709f 100644 --- a/src/libpakfire/include/pakfire/step.h +++ b/src/libpakfire/include/pakfire/step.h @@ -25,11 +25,19 @@ #include +typedef enum _pakfire_step_types { + PAKFIRE_STEP_IGNORE = 0, + PAKFIRE_STEP_INSTALL, + PAKFIRE_STEP_ERASE, + PAKFIRE_STEP_UPGRADE, + PAKFIRE_STEP_DOWNGRADE, +} pakfire_step_type; + PakfireStep pakfire_step_create(PakfireTransaction transaction, Id id); void pakfire_step_free(PakfireStep step); PakfirePackage pakfire_step_get_package(PakfireStep step); -int pakfire_step_get_type(PakfireStep step); +pakfire_step_type pakfire_step_get_type(PakfireStep step); const char* pakfire_step_get_type_string(PakfireStep step); unsigned long long pakfire_step_get_downloadsize(PakfireStep step); diff --git a/src/libpakfire/step.c b/src/libpakfire/step.c index 148053822..d733bcc45 100644 --- a/src/libpakfire/step.c +++ b/src/libpakfire/step.c @@ -50,96 +50,71 @@ PakfirePackage pakfire_step_get_package(PakfireStep step) { return pakfire_package_create(step->pool, step->id); } -int pakfire_step_get_type(PakfireStep step) { +pakfire_step_type pakfire_step_get_type(PakfireStep step) { Transaction* trans = step->transaction->transaction; - return transaction_type(trans, step->id, + int type = transaction_type(trans, step->id, SOLVER_TRANSACTION_SHOW_ACTIVE|SOLVER_TRANSACTION_CHANGE_IS_REINSTALL); -} - -const char* pakfire_step_get_type_string(PakfireStep step) { - const char *type; - switch(pakfire_step_get_type(step)) { - case SOLVER_TRANSACTION_IGNORE: - type = "ignore"; - break; + // Translate solver types into our own types + switch (type) { + case SOLVER_TRANSACTION_INSTALL: + case SOLVER_TRANSACTION_MULTIINSTALL: + case SOLVER_TRANSACTION_REINSTALL: + case SOLVER_TRANSACTION_MULTIREINSTALL: + return PAKFIRE_STEP_INSTALL; case SOLVER_TRANSACTION_ERASE: - type = "erase"; - break; + return PAKFIRE_STEP_ERASE; - case SOLVER_TRANSACTION_REINSTALLED: - type = "reinstalled"; - break; - - case SOLVER_TRANSACTION_DOWNGRADED: - type = "downgraded"; - break; - - case SOLVER_TRANSACTION_CHANGED: - type = "changed"; - break; - - case SOLVER_TRANSACTION_UPGRADED: - type = "upgraded"; - break; - - case SOLVER_TRANSACTION_OBSOLETED: - type = "obsoleted"; - break; - - case SOLVER_TRANSACTION_INSTALL: - type = "install"; - break; + case SOLVER_TRANSACTION_DOWNGRADE: + return PAKFIRE_STEP_DOWNGRADE; - case SOLVER_TRANSACTION_REINSTALL: - type = "reinstall"; - break; + case SOLVER_TRANSACTION_UPGRADE: + return PAKFIRE_STEP_UPGRADE; - case SOLVER_TRANSACTION_DOWNGRADE: - type = "downgrade"; - break; + // Anything we don't care about + case SOLVER_TRANSACTION_IGNORE: + case SOLVER_TRANSACTION_REINSTALLED: + case SOLVER_TRANSACTION_DOWNGRADED: + default: + return PAKFIRE_STEP_IGNORE; + } +} - case SOLVER_TRANSACTION_CHANGE: - type = "change"; - break; +const char* pakfire_step_get_type_string(PakfireStep step) { + pakfire_step_type type = pakfire_step_get_type(step); - case SOLVER_TRANSACTION_UPGRADE: - type = "upgrade"; - break; + switch(type) { + case PAKFIRE_STEP_INSTALL: + return "install"; - case SOLVER_TRANSACTION_OBSOLETES: - type = "obsoletes"; - break; + case PAKFIRE_STEP_ERASE: + return "erase"; - case SOLVER_TRANSACTION_MULTIINSTALL: - type = "multiinstall"; - break; + case PAKFIRE_STEP_DOWNGRADE: + return "downgrade"; - case SOLVER_TRANSACTION_MULTIREINSTALL: - type = "multireinstall"; - break; + case PAKFIRE_STEP_UPGRADE: + return "upgrade"; + case PAKFIRE_STEP_IGNORE: default: - type = NULL; - break; + return NULL; } - - return type; } static int pakfire_step_get_downloadtype(PakfireStep step) { int type = pakfire_step_get_type(step); + switch (type) { - case SOLVER_TRANSACTION_DOWNGRADE: - //case SOLVER_TRANSACTION_IGNORE: - case SOLVER_TRANSACTION_INSTALL: - case SOLVER_TRANSACTION_MULTIINSTALL: - case SOLVER_TRANSACTION_MULTIREINSTALL: - case SOLVER_TRANSACTION_REINSTALL: - case SOLVER_TRANSACTION_UPGRADE: + case PAKFIRE_STEP_INSTALL: + case PAKFIRE_STEP_DOWNGRADE: + case PAKFIRE_STEP_UPGRADE: return 1; + + default: + break; } return 0;