]> git.ipfire.org Git - pakfire.git/commitdiff
steps: Use own types instead of libsolv types
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 3 Nov 2017 17:43:08 +0000 (18:43 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 3 Nov 2017 17:43:08 +0000 (18:43 +0100)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/include/pakfire/step.h
src/libpakfire/step.c

index 4c56587855ad13dceb2d1e5a315cb68ea3df9d27..37d34709f8854443068674fe9bbc54b4384e9b5b 100644 (file)
 
 #include <pakfire/types.h>
 
+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);
index 148053822e2750f63ae6c4e8e13c834ceb4dbd0f..d733bcc458b16625dbed77cca511b2f2bfba834a 100644 (file)
@@ -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;