Split transaction score stuff to separate private header
authorPanu Matilainen <pmatilai@redhat.com>
Tue, 30 Oct 2007 13:50:35 +0000 (15:50 +0200)
committerPanu Matilainen <pmatilai@redhat.com>
Tue, 30 Oct 2007 13:50:35 +0000 (15:50 +0200)
lib/Makefile.am
lib/psm.c
lib/rpmts.c
lib/rpmts.h
lib/rpmtsscore.h [new file with mode: 0644]

index 1f0ac6b..e178c57 100644 (file)
@@ -24,7 +24,7 @@ librpm_la_SOURCES = \
        idtx.c manifest.c manifest.h misc.c package.c \
        poptALL.c poptI.c poptQV.c psm.c psm.h query.c \
        rpmal.c rpmchecksig.c rpmds.c rpmfi.c rpmgi.c rpmgi_internal.h \
-       rpminstall.c \
+       rpminstall.c rpmtsscore.h \
        rpmlead.c rpmlead.h rpmlibprov.c rpmps.c rpmrc.c rpmte.c rpmts.c \
        rpmvercmp.c signature.c signature.h stringbuf.c transaction.c \
        verify.c rpmlock.c rpmlock.h misc.h
index 78e61e7..6fba8d9 100644 (file)
--- a/lib/psm.c
+++ b/lib/psm.c
@@ -23,7 +23,7 @@
 #define        _RPMTE_INTERNAL
 #include "rpmte.h"
 
-#define        _RPMTS_INTERNAL         /* XXX ts->notify */
+#include "rpmtsscore.h"
 #include "rpmts.h"
 
 #include "rpmlead.h"           /* writeLead proto */
index df6c471..79e87af 100644 (file)
@@ -20,6 +20,7 @@
 
 #define        _RPMTS_INTERNAL
 #include "rpmts.h"
+#include "rpmtsscore.h"
 
 /* XXX FIXME: merge with existing (broken?) tests in system.h */
 /* portability fiddles */
index ee6f660..bd86210 100644 (file)
@@ -99,85 +99,7 @@ typedef      enum rpmtsOpX_e {
 
 #include "rpmhash.h"   /* XXX hashTable */
 #include "rpmal.h"     /* XXX availablePackage/relocateFileList ,*/
-#include "rpmte.h"     /* for rpmElementType */
-
-/**********************
- * Transaction Scores *
- **********************
- *
- * In order to allow instance counts to be adjusted properly when an
- * autorollback transaction is ran, we keep a list that is indexed
- * by rpm name of whether the rpm has been installed or erased.  This listed
- * is only updated:
- *
- *     iif autorollbacks are enabled.
- *     iif this is not a rollback or autorollback transaction.
- *
- * When creating an autorollback transaction, its rpmts points to the same
- * rpmtsScore object as the running transaction.  So when the autorollback
- * transaction runs it can see where each package was in the running transaction
- * at the point the running transaction failed, and thus on a per package
- * basis make adjustments to the instance counts.
- *
- * XXX: Jeff, I am not convinced that this does not need to be in its own file
- *      (i.e. rpmtsScore.{h,c}), but I first wanted to get it working.
- */
-struct rpmtsScoreEntry_s {
-    char *         N;                  /*!<Name of package                */
-    rpmElementType te_types;           /*!<te types this entry represents */
-    int            installed;          /*!<Was the new header installed   */
-    int            erased;             /*!<Was the old header removed     */
-};
-
-typedef struct rpmtsScoreEntry_s * rpmtsScoreEntry;
-
-struct rpmtsScore_s {
-       int entries;                    /*!< Number of scores       */
-       rpmtsScoreEntry * scores;       /*!< Array of score entries */
-       int nrefs;                      /*!< Reference count.       */
-};
-
-typedef struct rpmtsScore_s * rpmtsScore;
-
-
-/** \ingroup rpmts
- * initialize rpmtsScore for running transaction and autorollback
- * transaction.
- * @param runningTS    Running Transaction.
- * @param rollbackTS   Rollback Transaction.
- * @return             RPMRC_OK
- */
-rpmRC rpmtsScoreInit(rpmts runningTS, rpmts rollbackTS);
-
-/** \ingroup rpmts
- * Free rpmtsScore provided no more references exist against it.
- * @param score                rpmtsScore to free
- * @return             NULL always
- */
-rpmtsScore rpmtsScoreFree(rpmtsScore score);
-
-/** \ingroup rpmts
- * Get rpmtsScore from transaction.
- * @param ts   RPM Transaction.
- * @return     rpmtsScore or NULL.
- */
-rpmtsScore rpmtsGetScore(rpmts ts);
-
-/** \ingroup rpmts
- * Get rpmtsScoreEntry from rpmtsScore.
- * @param score   RPM Transaction Score.
- * @return       rpmtsScoreEntry or NULL.
- */
-rpmtsScoreEntry rpmtsScoreGetEntry(rpmtsScore score, const char *N);
-
-/** \ingroup rpmts
- * \file lib/rpmts.h
- * Structures and prototypes used for an "rpmts" transaction set.
- */
-
-/**************************
- * END Transaction Scores *
- **************************/
+#include "rpmtsscore.h"        /* for rpmtsScore */
 
 extern int _cacheDependsRC;
 
diff --git a/lib/rpmtsscore.h b/lib/rpmtsscore.h
new file mode 100644 (file)
index 0000000..f5b5c1b
--- /dev/null
@@ -0,0 +1,74 @@
+#ifndef H_RPMTSSCORE
+#define H_RPMTSSCORE
+
+#include "rpmlib.h"
+#include "rpmte.h"
+
+/**********************
+ * Transaction Scores *
+ **********************
+ *
+ * In order to allow instance counts to be adjusted properly when an
+ * autorollback transaction is ran, we keep a list that is indexed
+ * by rpm name of whether the rpm has been installed or erased.  This listed
+ * is only updated:
+ *
+ *     iif autorollbacks are enabled.
+ *     iif this is not a rollback or autorollback transaction.
+ *
+ * When creating an autorollback transaction, its rpmts points to the same
+ * rpmtsScore object as the running transaction.  So when the autorollback
+ * transaction runs it can see where each package was in the running transaction
+ * at the point the running transaction failed, and thus on a per package
+ * basis make adjustments to the instance counts.
+ *
+ */
+
+struct rpmtsScoreEntry_s {
+    char *         N;                   /*!<Name of package                */
+    rpmElementType te_types;            /*!<te types this entry represents */
+    int            installed;           /*!<Was the new header installed   */
+    int            erased;              /*!<Was the old header removed     */
+};
+
+typedef struct rpmtsScoreEntry_s * rpmtsScoreEntry;
+
+struct rpmtsScore_s {
+        int entries;                    /*!< Number of scores       */
+        rpmtsScoreEntry * scores;       /*!< Array of score entries */
+        int nrefs;                      /*!< Reference count.       */
+};
+
+typedef struct rpmtsScore_s * rpmtsScore;
+
+/** \ingroup rpmts
+ * initialize rpmtsScore for running transaction and autorollback
+ * transaction.
+ * @param runningTS    Running Transaction.
+ * @param rollbackTS   Rollback Transaction.
+ * @return             RPMRC_OK
+ */
+rpmRC rpmtsScoreInit(rpmts runningTS, rpmts rollbackTS);
+
+/** \ingroup rpmts
+ * Free rpmtsScore provided no more references exist against it.
+ * @param score                rpmtsScore to free
+ * @return             NULL always
+ */
+rpmtsScore rpmtsScoreFree(rpmtsScore score);
+
+/** \ingroup rpmts
+ * Get rpmtsScore from transaction.
+ * @param ts   RPM Transaction.
+ * @return     rpmtsScore or NULL.
+ */
+rpmtsScore rpmtsGetScore(rpmts ts);
+
+/** \ingroup rpmts
+ * Get rpmtsScoreEntry from rpmtsScore.
+ * @param score   RPM Transaction Score.
+ * @return       rpmtsScoreEntry or NULL.
+ */
+rpmtsScoreEntry rpmtsScoreGetEntry(rpmtsScore score, const char *N);
+
+#endif /* H_RPMTSSCORE */