diff options
author | Panu Matilainen <pmatilai@redhat.com> | 2007-10-30 15:50:35 +0200 |
---|---|---|
committer | Panu Matilainen <pmatilai@redhat.com> | 2007-10-30 15:50:35 +0200 |
commit | 41cd82aa7c6a0b9115d776a387b3177664075d44 (patch) | |
tree | 1fad5b6ddf4fa11aa2fceba62b69685d75943d46 /lib | |
parent | 6abf077d7096e2f48bf1316e37ee6651c78b536e (diff) | |
download | librpm-tizen-41cd82aa7c6a0b9115d776a387b3177664075d44.tar.gz librpm-tizen-41cd82aa7c6a0b9115d776a387b3177664075d44.tar.bz2 librpm-tizen-41cd82aa7c6a0b9115d776a387b3177664075d44.zip |
Split transaction score stuff to separate private header
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Makefile.am | 2 | ||||
-rw-r--r-- | lib/psm.c | 2 | ||||
-rw-r--r-- | lib/rpmts.c | 1 | ||||
-rw-r--r-- | lib/rpmts.h | 80 | ||||
-rw-r--r-- | lib/rpmtsscore.h | 74 |
5 files changed, 78 insertions, 81 deletions
diff --git a/lib/Makefile.am b/lib/Makefile.am index 1f0ac6bd5..e178c5708 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -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 @@ -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 */ diff --git a/lib/rpmts.c b/lib/rpmts.c index df6c47175..79e87afc9 100644 --- a/lib/rpmts.c +++ b/lib/rpmts.c @@ -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 */ diff --git a/lib/rpmts.h b/lib/rpmts.h index ee6f660a9..bd8621084 100644 --- a/lib/rpmts.h +++ b/lib/rpmts.h @@ -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 index 000000000..f5b5c1b5c --- /dev/null +++ b/lib/rpmtsscore.h @@ -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 */ |