Ubuntu Download Manager: /build/ubuntu-download-manager-git/src/ubuntu-download-manager/src/downloads/client/ubuntu/download_manager/manager_impl.h Source File

Ubuntu Download Manager 1.2.0 A session-wide downloading service |

manager_impl.h
Go to the documentation of this file.
1 /*
2 * Copyright 2013-2014 Canonical Ltd.
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of version 3 of the GNU Lesser General Public
6 * License as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public
14 * License along with this library; if not, write to the
15 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
16 * Boston, MA 02110-1301, USA.
17 */
18
19 #ifndef UBUNTU_DOWNLOADMANAGER_CLIENT_MANAGER_IMPL_H
20 #define UBUNTU_DOWNLOADMANAGER_CLIENT_MANAGER_IMPL_H
21
22 #include <QDBusConnection>
23 #include <QDBusObjectPath>
24
25 #include <ubuntu/transfers/visibility.h>
26 #include <ubuntu/transfers/system/dbus_connection.h>
27
28 #include <ubuntu/download_manager/download.h>
29 #include <ubuntu/download_manager/error.h>
30 #include <ubuntu/download_manager/group_download.h>
31 #include <ubuntu/download_manager/manager_interface.h>
32 #include <ubuntu/download_manager/manager_pendingcall_watcher.h>
33
34 #include "manager.h"
35
36
37 class QDBusConnection;
38
39 namespace Ubuntu {
40
41 namespace DownloadManager {
42
43 class Download;
44 class Error;
45 class GroupDownload;
46 class ManagerInterface;
47
48 class UBUNTU_TRANSFERS_PRIVATE ManagerImpl : public Manager {
49 Q_OBJECT
50
51 // allow watchers to emit the signals
52 friend class Manager;
53 friend class DownloadManagerPCW;
54 friend class GroupManagerPCW;
55
56 public:
57 virtual ~ManagerImpl();
58 virtual Download* getDownloadForId(const QString& id);
59 virtual void createDownload(DownloadStruct downStruct);
60 virtual void createDownload(DownloadStruct downStruct,
61 DownloadCb cb,
62 DownloadCb errCb);
63 virtual void createDownload(StructList downs,
64 const QString &algorithm,
65 bool allowed3G,
66 const QVariantMap &metadata,
67 StringMap headers);
68 virtual void createDownload(StructList downs,
69 const QString &algorithm,
70 bool allowed3G,
71 const QVariantMap &metadata,
72 StringMap headers,
73 GroupCb cb,
74 GroupCb errCb);
75 virtual void getAllDownloads(const QString &appId, bool uncollected);
76 virtual void getAllDownloads(const QString &appId,
77 bool uncollected,
78 DownloadsListCb cb,
79 DownloadsListCb errCb);
80 virtual void getAllDownloadsWithMetadata(const QString &name,
81 const QString &value);
82 virtual void getAllDownloadsWithMetadata(const QString &name,
83 const QString &value,
84 MetadataDownloadsListCb cb,
85 MetadataDownloadsListCb errCb);
86
87 bool isError() const;
88 Error* lastError() const;
89 void allowMobileDataDownload(bool allowed);
90 bool isMobileDataDownload();
91 qulonglong defaultThrottle();
92 void setDefaultThrottle(qulonglong speed);
93 void exit();
94
95 protected:
96 ManagerImpl(const QDBusConnection& conn,
97 const QString& path = "",
98 QObject* parent= 0);
99 // used for testing purposes
100 ManagerImpl(const QDBusConnection& conn,
101 const QString& path,
102 ManagerInterface* interface,
103 QObject* parent);
104
105 private:
106 void init();
107 void onWatcherDone();
108 void setLastError(const QDBusError& err);
109
110 private:
111 bool _isError = false;
112 QDBusConnection _conn;
113 QString _servicePath;
114 Error* _lastError = nullptr;
115 ManagerInterface* _dbusInterface = nullptr;
116 };
117
118 } // DownloadManager
119
120 } // Ubuntu
121
122 #endif // UBUNTU_DOWNLOADMANAGER_CLIENT_MANAGER_H
Ubuntu::DownloadManager::DownloadCb
std::function< void(Download *)> DownloadCb
Definition: manager.h:36
QObject
download.h
manager_pendingcall_watcher.h
Ubuntu
Definition: download.h:26
Ubuntu::DownloadManager::MetadataDownloadsListCb
std::function< void(const QString &, const QString &, DownloadsList *)> MetadataDownloadsListCb
Definition: manager.h:54
error.h
manager_interface.h
Ubuntu::DownloadManager::GroupCb
std::function< void(GroupDownload *)> GroupCb
Definition: manager.h:60
manager.h
Ubuntu::DownloadManager::DownloadsListCb
std::function< void(DownloadsList *)> DownloadsListCb
Definition: manager.h:48
group_download.h