summaryrefslogtreecommitdiff
path: root/apt-pkg
diff options
context:
space:
mode:
authorJulian Andres Klode <julian.klode@canonical.com>2019-04-29 20:05:38 +0200
committerJulian Andres Klode <julian.klode@canonical.com>2019-04-30 17:40:38 +0200
commitcccef6ca60c2775e918d964fdad1afc1dcad4d0e (patch)
tree80c39c44bf749e37788748d2485c2ce5a29d6c7b /apt-pkg
parent46ef1a3e8c8895c53ff1e4787dc96d4f6c5dba27 (diff)
acq: worker: Move CurrentSize, TotalSize, ResumePoint to CurrentItem
These status fields belong to the current item, move them there. This prepares us for eventually having multiple current items.
Diffstat (limited to 'apt-pkg')
-rw-r--r--apt-pkg/acquire-worker.cc16
-rw-r--r--apt-pkg/acquire-worker.h15
-rw-r--r--apt-pkg/acquire.cc6
-rw-r--r--apt-pkg/acquire.h15
4 files changed, 25 insertions, 27 deletions
diff --git a/apt-pkg/acquire-worker.cc b/apt-pkg/acquire-worker.cc
index b36186121..8ebee5797 100644
--- a/apt-pkg/acquire-worker.cc
+++ b/apt-pkg/acquire-worker.cc
@@ -44,7 +44,7 @@ using namespace std;
// Worker::Worker - Constructor for Queue startup /*{{{*/
pkgAcquire::Worker::Worker(Queue *Q, MethodConfig *Cnf, pkgAcquireStatus *log) :
d(NULL), OwnerQ(Q), Log(log), Config(Cnf), Access(Cnf->Access),
- CurrentItem(nullptr), CurrentSize(0), TotalSize(0)
+ CurrentItem(nullptr)
{
Construct();
}
@@ -369,12 +369,12 @@ bool pkgAcquire::Worker::RunMessages()
}
CurrentItem = Itm;
- CurrentSize = 0;
- TotalSize = strtoull(LookupTag(Message,"Size","0").c_str(), NULL, 10);
- ResumePoint = strtoull(LookupTag(Message,"Resume-Point","0").c_str(), NULL, 10);
+ Itm->CurrentSize = 0;
+ Itm->TotalSize = strtoull(LookupTag(Message,"Size","0").c_str(), NULL, 10);
+ Itm->ResumePoint = strtoull(LookupTag(Message,"Resume-Point","0").c_str(), NULL, 10);
for (auto const Owner: Itm->Owners)
{
- Owner->Start(Message, TotalSize);
+ Owner->Start(Message, Itm->TotalSize);
// Display update before completion
if (Log != nullptr)
{
@@ -918,7 +918,7 @@ void pkgAcquire::Worker::Pulse()
struct stat Buf;
if (stat(CurrentItem->Owner->DestFile.c_str(),&Buf) != 0)
return;
- CurrentSize = Buf.st_size;
+ CurrentItem->CurrentSize = Buf.st_size;
}
/*}}}*/
// Worker::ItemDone - Called when the current item is finished /*{{{*/
@@ -926,9 +926,7 @@ void pkgAcquire::Worker::Pulse()
/* */
void pkgAcquire::Worker::ItemDone()
{
- CurrentItem = 0;
- CurrentSize = 0;
- TotalSize = 0;
+ CurrentItem = nullptr;
Status = string();
}
/*}}}*/
diff --git a/apt-pkg/acquire-worker.h b/apt-pkg/acquire-worker.h
index 11e54b060..b6d1628f9 100644
--- a/apt-pkg/acquire-worker.h
+++ b/apt-pkg/acquire-worker.h
@@ -251,21 +251,6 @@ class pkgAcquire::Worker : public WeakPointable
*/
std::string Status;
- /** \brief How many bytes of the file have been downloaded. Zero
- * if the current progress of the file cannot be determined.
- */
- unsigned long long CurrentSize;
-
- /** \brief The total number of bytes to be downloaded. Zero if the
- * total size of the final is unknown.
- */
- unsigned long long TotalSize;
-
- /** \brief How much of the file was already downloaded prior to
- * starting this worker.
- */
- unsigned long long ResumePoint;
-
/** \brief Tell the subprocess to download the given item.
*
* \param Item the item to queue up.
diff --git a/apt-pkg/acquire.cc b/apt-pkg/acquire.cc
index 3abebc8d4..87bb13e39 100644
--- a/apt-pkg/acquire.cc
+++ b/apt-pkg/acquire.cc
@@ -1284,13 +1284,13 @@ bool pkgAcquireStatus::Pulse(pkgAcquire *Owner)
{
if (I->CurrentItem != 0 && I->CurrentItem->Owner->Complete == false)
{
- CurrentBytes += I->CurrentSize;
- ResumeSize += I->ResumePoint;
+ CurrentBytes += I->CurrentItem->CurrentSize;
+ ResumeSize += I->CurrentItem->ResumePoint;
// Files with unknown size always have 100% completion
if (I->CurrentItem->Owner->FileSize == 0 &&
I->CurrentItem->Owner->Complete == false)
- TotalBytes += I->CurrentSize;
+ TotalBytes += I->CurrentItem->CurrentSize;
}
}
diff --git a/apt-pkg/acquire.h b/apt-pkg/acquire.h
index 4d564daf5..a5c10fd92 100644
--- a/apt-pkg/acquire.h
+++ b/apt-pkg/acquire.h
@@ -425,6 +425,21 @@ class pkgAcquire::Queue
/** \brief The underlying items interested in the download */
std::vector<Item*> Owners;
+ /** \brief How many bytes of the file have been downloaded. Zero
+ * if the current progress of the file cannot be determined.
+ */
+ unsigned long long CurrentSize = 0;
+
+ /** \brief The total number of bytes to be downloaded. Zero if the
+ * total size of the final is unknown.
+ */
+ unsigned long long TotalSize = 0;
+
+ /** \brief How much of the file was already downloaded prior to
+ * starting this worker.
+ */
+ unsigned long long ResumePoint = 0;
+
typedef std::vector<Item*>::const_iterator owner_iterator;
/** \brief Assign the ItemDesc portion of this QItem from