summaryrefslogtreecommitdiff
path: root/apt-pkg/acquire-item.h
diff options
context:
space:
mode:
authorDavid Kalnischkies <david@kalnischkies.de>2015-04-27 10:59:27 +0200
committerDavid Kalnischkies <david@kalnischkies.de>2015-05-11 17:22:32 +0200
commit146f7715a9f36d246b461255b3c683b479296915 (patch)
tree9e05aa2904d1073bc02949955cc5b2769960954a /apt-pkg/acquire-item.h
parent05f64ca2e483709faa6bc69dfa79129d2d4c679e (diff)
improve partial/ cleanup in abort and failure cases
Especially pdiff-enhanced downloads have the tendency to fail for various reasons from which we can recover and even a successful download used to leave the old unpatched index in partial/. By adding a new method responsible for making the transaction of an individual file happen we can at specialisations especially for abort cases to deal with the cleanup. This also helps in keeping the compressed indexes around if another index failed instead of keeping the decompressed files, which we wouldn't pick up in the next call.
Diffstat (limited to 'apt-pkg/acquire-item.h')
-rw-r--r--apt-pkg/acquire-item.h17
1 files changed, 12 insertions, 5 deletions
diff --git a/apt-pkg/acquire-item.h b/apt-pkg/acquire-item.h
index 148728b3c..33a28671c 100644
--- a/apt-pkg/acquire-item.h
+++ b/apt-pkg/acquire-item.h
@@ -344,7 +344,8 @@ class pkgAcquire::Item : public WeakPointable
InvalidFormat,
SignatureError,
NotClearsigned,
- MaximumSizeExceeded
+ MaximumSizeExceeded,
+ PDiffError,
};
/** \brief Rename failed file and set error
@@ -353,6 +354,12 @@ class pkgAcquire::Item : public WeakPointable
*/
bool RenameOnError(RenameOnErrorState const state);
+ enum TransactionStates {
+ TransactionCommit,
+ TransactionAbort,
+ };
+ virtual bool TransactionState(TransactionStates const state);
+
/** \brief The HashSums of the item is supposed to have than done */
HashStringList ExpectedHashes;
@@ -685,14 +692,12 @@ class APT_HIDDEN pkgAcqDiffIndex : public pkgAcqBaseIndex
*/
std::string Description;
- /** \brief If the copy step of the packages file is done
- */
- bool PackagesFileReadyInPartial;
-
/** \brief Get the full pathname of the final file for the current URI */
virtual std::string GetFinalFilename() const;
virtual bool QueueURI(pkgAcquire::ItemDesc &Item);
+
+ virtual bool TransactionState(TransactionStates const state);
public:
// Specialized action members
virtual void Failed(std::string Message,pkgAcquire::MethodConfig *Cnf);
@@ -1010,6 +1015,8 @@ class APT_HIDDEN pkgAcqIndex : public pkgAcqBaseIndex
/** \brief Get the full pathname of the final file for the current URI */
virtual std::string GetFinalFilename() const;
+ virtual bool TransactionState(TransactionStates const state);
+
public:
// Specialized action members
virtual void Failed(std::string Message,pkgAcquire::MethodConfig *Cnf);