21#include <QDBusConnection>
22#include <QDBusObjectPath>
27#include <lomiri/transfers/visibility.h>
28#include <lomiri/download_manager/metatypes.h>
42namespace DownloadManager {
45class LOMIRI_TRANSFERS_PRIVATE DownloadImpl :
public Download {
49 friend class ManagerImpl;
50 friend class DownloadPCW;
51 friend class MetadataDownloadsListManagerPCW;
52 friend class DownloadsListManagerPCW;
53 friend class DownloadManagerPCW;
56 virtual ~DownloadImpl();
64 void allowMobileDownload(
bool allowed);
65 bool isMobileDownloadAllowed();
67 void setDestinationDir(
const QString& path);
68 void setHeaders(QMap<QString, QString> headers);
69 QMap<QString, QString> headers();
70 QVariantMap metadata();
71 void setMetadata(QVariantMap map);
72 void setThrottle(qulonglong speed);
73 qulonglong throttle();
75 Download::State state();
78 qulonglong progress();
79 qulonglong totalSize();
84 QString clickPackage()
const;
85 bool showInIndicator()
const;
86 QString title()
const;
87 QString destinationApp()
const;
90 DownloadImpl(
const QDBusConnection& conn, Error* err,
QObject* parent = 0);
91 DownloadImpl(
const QDBusConnection& conn,
92 const QString& servicePath,
93 const QDBusObjectPath& objectPath,
97 void setLastError(Error* err);
98 void setLastError(
const QDBusError& err);
99 void onHttpError(HttpErrorStruct);
100 void onNetworkError(NetworkErrorStruct);
101 void onProcessError(ProcessErrorStruct);
102 void onAuthError(AuthErrorStruct);
103 void onHashError(HashErrorStruct);
104 void onPropertiesChanged(
const QString& interfaceName,
105 const QVariantMap& changedProperties,
106 const QStringList& invalidatedProperties);
107 void onFinished(
const QString& path);
111 bool _isError =
false;
112 Error* _lastError =
nullptr;
113 DownloadInterface* _dbusInterface =
nullptr;
115 QDBusConnection _conn;
116 QString _servicePath;