19 #ifndef UBUNTU_DOWNLOADMANAGER_CLIENT_DOWNLOAD_IMPL_H
20 #define UBUNTU_DOWNLOADMANAGER_CLIENT_DOWNLOAD_IMPL_H
22 #include <QDBusConnection>
23 #include <QDBusObjectPath>
25 #include <QVariantMap>
28 #include <ubuntu/transfers/visibility.h>
29 #include <ubuntu/download_manager/metatypes.h>
38 class QDBusConnection;
39 class QDBusObjectPath;
43 namespace DownloadManager {
46 class UBUNTU_TRANSFERS_PRIVATE DownloadImpl :
public Download {
50 friend class ManagerImpl;
51 friend class DownloadPCW;
52 friend class MetadataDownloadsListManagerPCW;
53 friend class DownloadsListManagerPCW;
54 friend class DownloadManagerPCW;
57 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();
76 qulonglong progress();
77 qulonglong totalSize();
82 QString clickPackage()
const;
83 bool showInIndicator()
const;
84 QString title()
const;
87 DownloadImpl(
const QDBusConnection& conn, Error* err,
QObject* parent = 0);
88 DownloadImpl(
const QDBusConnection& conn,
89 const QString& servicePath,
90 const QDBusObjectPath& objectPath,
94 void setLastError(Error* err);
95 void setLastError(
const QDBusError& err);
96 void onHttpError(HttpErrorStruct);
97 void onNetworkError(NetworkErrorStruct);
98 void onProcessError(ProcessErrorStruct);
99 void onAuthError(AuthErrorStruct);
100 void onPropertiesChanged(
const QString& interfaceName,
101 const QVariantMap& changedProperties,
102 const QStringList& invalidatedProperties);
106 bool _isError =
false;
107 Error* _lastError =
nullptr;
108 DownloadInterface* _dbusInterface =
nullptr;
110 QDBusConnection _conn;
111 QString _servicePath;
119 #endif // UBUNTU_DOWNLOADMANAGER_CLIENT_DOWNLOAD_IMPL_H