Package Kit: FetchFileJob now contains package size.

* So that you know how much already was, and still has to be downloaded.
* Automatic whitespace cleanup.
* The link in FetchFileJob.h did not fetch the correct header under
  Haiku anymore (since the addition of the private headers to the
  image).
This commit is contained in:
Axel Dörfler
2015-03-31 13:40:42 +02:00
parent b49e806d3d
commit 1aaa0c2142
11 changed files with 79 additions and 49 deletions
+1 -1
View File
@@ -1 +1 @@
#include <../private/package/FetchFileJob.h> #include <../../../private/package/FetchFileJob.h>
+10 -5
View File
@@ -1,6 +1,7 @@
/* /*
* Copyright 2011, Oliver Tappe <[email protected]> * Copyright 2011, Oliver Tappe <[email protected]>
* Copyright 2013, Rene Gollent <[email protected]> * Copyright 2013, Rene Gollent <[email protected]>
* Copyright 2015, Axel Dörfler <[email protected]>
* Distributed under the terms of the MIT License. * Distributed under the terms of the MIT License.
*/ */
#ifndef _PACKAGE__PRIVATE__FETCH_FILE_JOB_H_ #ifndef _PACKAGE__PRIVATE__FETCH_FILE_JOB_H_
@@ -32,6 +33,8 @@ public:
float DownloadProgress() const; float DownloadProgress() const;
const char* DownloadURL() const; const char* DownloadURL() const;
const char* DownloadFileName() const; const char* DownloadFileName() const;
off_t DownloadBytes() const;
off_t DownloadTotalBytes() const;
protected: protected:
virtual status_t Execute(); virtual status_t Execute();
@@ -39,18 +42,20 @@ protected:
private: private:
// libcurl callbacks // libcurl callbacks
static int _ProgressCallback(void *clientp, static int _TransferCallback(void* _job,
double dltotal, double dlnow, off_t downloadTotal, off_t downloaded,
double ultotal, double ulnow); off_t uploadTotal, off_t uploaded);
static size_t _WriteCallback(void *buffer, size_t size, static size_t _WriteCallback(void* buffer, size_t size,
size_t nmemb, void *userp); size_t nmemb, void* userp);
private: private:
BString fFileURL; BString fFileURL;
BEntry fTargetEntry; BEntry fTargetEntry;
BFile fTargetFile; BFile fTargetFile;
float fDownloadProgress; float fDownloadProgress;
off_t fBytes;
off_t fTotalBytes;
}; };
@@ -1,5 +1,5 @@
/* /*
* Copyright 2013-2014, Haiku, Inc. All Rights Reserved. * Copyright 2013-2015, Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License. * Distributed under the terms of the MIT License.
* *
* Authors: * Authors:
@@ -319,7 +319,8 @@ public:
const char* packageName); const char* packageName);
virtual void ProgressPackageDownloadActive( virtual void ProgressPackageDownloadActive(
const char* packageName, const char* packageName,
float completionPercentage); float completionPercentage,
off_t bytes, off_t totalBytes);
virtual void ProgressPackageDownloadComplete( virtual void ProgressPackageDownloadComplete(
const char* packageName); const char* packageName);
virtual void ProgressPackageChecksumStarted( virtual void ProgressPackageChecksumStarted(
+3 -3
View File
@@ -1,5 +1,5 @@
/* /*
* Copyright 2013-2014, Haiku, Inc. All Rights Reserved. * Copyright 2013-2015, Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License. * Distributed under the terms of the MIT License.
* *
* Authors: * Authors:
@@ -721,13 +721,13 @@ PackageManager::Warn(status_t error, const char* format, ...)
void void
PackageManager::ProgressPackageDownloadStarted(const char* packageName) PackageManager::ProgressPackageDownloadStarted(const char* packageName)
{ {
ProgressPackageDownloadActive(packageName, 0.0f); ProgressPackageDownloadActive(packageName, 0.0f, 0, 0);
} }
void void
PackageManager::ProgressPackageDownloadActive(const char* packageName, PackageManager::ProgressPackageDownloadActive(const char* packageName,
float completionPercentage) float completionPercentage, off_t bytes, off_t totalBytes)
{ {
for (int32 i = 0; i < fPackageProgressListeners.CountItems(); i++) { for (int32 i = 0; i < fPackageProgressListeners.CountItems(); i++) {
fPackageProgressListeners.ItemAt(i)->DownloadProgressChanged( fPackageProgressListeners.ItemAt(i)->DownloadProgressChanged(
+3 -1
View File
@@ -96,7 +96,9 @@ private:
const char* packageName); const char* packageName);
virtual void ProgressPackageDownloadActive( virtual void ProgressPackageDownloadActive(
const char* packageName, const char* packageName,
float completionPercentage); float completionPercentage,
off_t bytes, off_t totalBytes);
virtual void ProgressPackageDownloadComplete( virtual void ProgressPackageDownloadComplete(
const char* packageName); const char* packageName);
virtual void ProgressPackageChecksumStarted( virtual void ProgressPackageChecksumStarted(
+4 -3
View File
@@ -1,10 +1,11 @@
/* /*
* Copyright 2013-2014, Haiku, Inc. All Rights Reserved. * Copyright 2013-2015, Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License. * Distributed under the terms of the MIT License.
* *
* Authors: * Authors:
* Ingo Weinhold <ingo_weinhold@gmx.de> * Axel Dörfler <axeld@pinc-software.de>
* Rene Gollent <[email protected]> * Rene Gollent <[email protected]>
* Ingo Weinhold <[email protected]>
*/ */
@@ -179,7 +180,7 @@ PackageManager::ProgressPackageDownloadStarted(const char* packageName)
void void
PackageManager::ProgressPackageDownloadActive(const char* packageName, PackageManager::ProgressPackageDownloadActive(const char* packageName,
float completionPercentage) float completionPercentage, off_t bytes, off_t totalBytes)
{ {
if (!fInteractive) if (!fInteractive)
return; return;
+3 -2
View File
@@ -1,5 +1,5 @@
/* /*
* Copyright 2013-2014, Haiku, Inc. All Rights Reserved. * Copyright 2013-2015, Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License. * Distributed under the terms of the MIT License.
* *
* Authors: * Authors:
@@ -46,7 +46,8 @@ private:
const char* packageName); const char* packageName);
virtual void ProgressPackageDownloadActive( virtual void ProgressPackageDownloadActive(
const char* packageName, const char* packageName,
float completionPercentage); float completionPercentage,
off_t bytes, off_t totalBytes);
virtual void ProgressPackageDownloadComplete( virtual void ProgressPackageDownloadComplete(
const char* packageName); const char* packageName);
virtual void ProgressPackageChecksumStarted( virtual void ProgressPackageChecksumStarted(
+26 -9
View File
@@ -1,10 +1,11 @@
/* /*
* Copyright 2011-2013, Haiku, Inc. All Rights Reserved. * Copyright 2011-2015, Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License. * Distributed under the terms of the MIT License.
* *
* Authors: * Authors:
* Oliver Tappe <zooey@hirschkaefer.de> * Axel Dörfler <axeld@pinc-software.de>
* Rene Gollent <[email protected]> * Rene Gollent <[email protected]>
* Oliver Tappe <[email protected]>
*/ */
@@ -62,6 +63,20 @@ FetchFileJob::DownloadFileName() const
} }
off_t
FetchFileJob::DownloadBytes() const
{
return fBytes;
}
off_t
FetchFileJob::DownloadTotalBytes() const
{
return fTotalBytes;
}
status_t status_t
FetchFileJob::Execute() FetchFileJob::Execute()
{ {
@@ -77,8 +92,8 @@ FetchFileJob::Execute()
result = curl_easy_setopt(handle, CURLOPT_NOPROGRESS, 0); result = curl_easy_setopt(handle, CURLOPT_NOPROGRESS, 0);
result = curl_easy_setopt(handle, CURLOPT_PROGRESSFUNCTION, result = curl_easy_setopt(handle, CURLOPT_XFERINFOFUNCTION,
&_ProgressCallback); &_TransferCallback);
if (result != CURLE_OK) if (result != CURLE_OK)
return B_BAD_VALUE; return B_BAD_VALUE;
@@ -117,12 +132,14 @@ FetchFileJob::Execute()
int int
FetchFileJob::_ProgressCallback(void *userp, double dltotal, double dlnow, FetchFileJob::_TransferCallback(void* _job, off_t downloadTotal,
double ultotal, double ulnow) off_t downloaded, off_t uploadTotal, off_t uploaded)
{ {
FetchFileJob* job = reinterpret_cast<FetchFileJob*>(userp); FetchFileJob* job = reinterpret_cast<FetchFileJob*>(_job);
if (dltotal != 0) { if (downloadTotal != 0) {
job->fDownloadProgress = dlnow / dltotal; job->fBytes = downloaded;
job->fTotalBytes = downloadTotal;
job->fDownloadProgress = downloaded / downloadTotal;
job->NotifyStateListeners(); job->NotifyStateListeners();
} }
return 0; return 0;
+5 -3
View File
@@ -1,5 +1,5 @@
/* /*
* Copyright 2013-2014, Haiku, Inc. All Rights Reserved. * Copyright 2013-2015, Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License. * Distributed under the terms of the MIT License.
* *
* Authors: * Authors:
@@ -383,7 +383,8 @@ BPackageManager::JobProgress(BJob* job)
if (dynamic_cast<FetchFileJob*>(job) != NULL) { if (dynamic_cast<FetchFileJob*>(job) != NULL) {
FetchFileJob* fetchJob = (FetchFileJob*)job; FetchFileJob* fetchJob = (FetchFileJob*)job;
fUserInteractionHandler->ProgressPackageDownloadActive( fUserInteractionHandler->ProgressPackageDownloadActive(
fetchJob->DownloadFileName(), fetchJob->DownloadProgress()); fetchJob->DownloadFileName(), fetchJob->DownloadProgress(),
fetchJob->DownloadBytes(), fetchJob->DownloadTotalBytes());
} }
} }
@@ -1105,7 +1106,8 @@ BPackageManager::UserInteractionHandler::ProgressPackageDownloadStarted(
void void
BPackageManager::UserInteractionHandler::ProgressPackageDownloadActive( BPackageManager::UserInteractionHandler::ProgressPackageDownloadActive(
const char* packageName, float completionPercentage) const char* packageName, float completionPercentage, off_t bytes,
off_t totalBytes)
{ {
} }
+1 -1
View File
@@ -320,7 +320,7 @@ PackageManager::ProgressPackageDownloadStarted(const char* packageName)
void void
PackageManager::ProgressPackageDownloadActive(const char* packageName, PackageManager::ProgressPackageDownloadActive(const char* packageName,
float completionPercentage) float completionPercentage, off_t bytes, off_t totalBytes)
{ {
} }
+2 -1
View File
@@ -65,7 +65,8 @@ private:
const char* packageName); const char* packageName);
virtual void ProgressPackageDownloadActive( virtual void ProgressPackageDownloadActive(
const char* packageName, const char* packageName,
float completionPercentage); float completionPercentage,
off_t bytes, off_t totalBytes);
virtual void ProgressPackageDownloadComplete( virtual void ProgressPackageDownloadComplete(
const char* packageName); const char* packageName);
virtual void ProgressPackageChecksumStarted( virtual void ProgressPackageChecksumStarted(