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>
37 class QDBusConnection;
38 class QDBusObjectPath;
42 namespace DownloadManager {
45 class UBUNTU_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();
63 void allowMobileDownload(
bool allowed);
64 bool isMobileDownloadAllowed();
66 void setDestinationDir(
const QString& path);
67 void setHeaders(QMap<QString, QString> headers);
68 QMap<QString, QString> headers();
69 void setThrottle(qulonglong speed);
70 qulonglong throttle();
73 QVariantMap metadata();
74 qulonglong progress();
75 qulonglong totalSize();
81 DownloadImpl(
const QDBusConnection& conn, Error* err,
QObject* parent = 0);
82 DownloadImpl(
const QDBusConnection& conn,
83 const QString& servicePath,
84 const QDBusObjectPath& objectPath,
88 void setLastError(Error* err);
89 void setLastError(
const QDBusError& err);
90 void onHttpError(HttpErrorStruct);
91 void onNetworkError(NetworkErrorStruct);
92 void onProcessError(ProcessErrorStruct);
93 void onAuthError(AuthErrorStruct);
97 bool _isError =
false;
98 Error* _lastError =
nullptr;
99 DownloadInterface* _dbusInterface =
nullptr;
100 QDBusConnection _conn;
101 QString _servicePath;
109 #endif // UBUNTU_DOWNLOADMANAGER_CLIENT_DOWNLOAD_IMPL_H