~ps-jenkins/ubuntu-download-manager/latestsnapshot-0.2+13.10.20131104-0ubuntu1

« back to all changes in this revision

Viewing changes to libubuntudownloadmanager/download_manager.cpp

  • Committer: Tarmac
  • Author(s): Manuel de la Pena
  • Date: 2013-09-24 12:56:26 UTC
  • mfrom: (105.3.6 stoppable)
  • Revision ID: tarmac-20130924125626-h1gyxsg8vadzrlrp
Provide new arg and new method to simplify tests. Fixes: https://bugs.launchpad.net/bugs/1228233.

Approved by PS Jenkins bot, Diego Sarmentero, Mike McCracken.

Show diffs side-by-side

added added

removed removed

Lines of Context:
32
32
    Q_DECLARE_PUBLIC(DownloadManager)
33
33
 
34
34
 public:
35
 
    DownloadManagerPrivate(QSharedPointer<DBusConnection> connection,
 
35
    DownloadManagerPrivate(QSharedPointer<Application> app,
 
36
                           QSharedPointer<DBusConnection> connection,
 
37
                           bool stoppable,
36
38
                           DownloadManager* parent)
37
 
        : _throttle(0),
 
39
        : _app(app),
 
40
          _throttle(0),
 
41
          _stoppable(stoppable),
38
42
          q_ptr(parent) {
39
43
        _conn = connection;
40
44
        _apparmor = QSharedPointer<AppArmor>(new AppArmor(connection));
51
55
        init();
52
56
    }
53
57
 
54
 
    DownloadManagerPrivate(QSharedPointer<DBusConnection> connection,
 
58
    DownloadManagerPrivate(QSharedPointer<Application> app,
 
59
                           QSharedPointer<DBusConnection> connection,
55
60
                           SystemNetworkInfo* networkInfo,
56
61
                           DownloadFactory* downloadFactory,
57
62
                           DownloadQueue* queue,
58
 
                           DownloadManager* parent = 0)
59
 
        : _throttle(0),
 
63
                           bool stoppable,
 
64
                           DownloadManager* parent)
 
65
        : _app(app),
 
66
          _throttle(0),
60
67
          _networkInfo(networkInfo),
61
68
          _downloadFactory(downloadFactory),
62
69
          _downloadsQueue(queue),
 
70
          _stoppable(stoppable),
63
71
          q_ptr(parent) {
64
72
        _conn = connection;
65
73
        init();
194
202
        return paths;
195
203
    }
196
204
 
 
205
 
 
206
    void exit() {
 
207
        Q_Q(DownloadManager);
 
208
        if (_stoppable) {
 
209
            _app->exit(0);
 
210
        } else {
 
211
            if (q->calledFromDBus()) {
 
212
                q->sendErrorReply(QDBusError::NotSupported,
 
213
                    "Daemon should have been started with -stoppable");
 
214
            } // dbus call
 
215
        }
 
216
    }
 
217
 
197
218
 private:
 
219
    QSharedPointer<Application> _app;
198
220
    qulonglong _throttle;
199
221
    QSharedPointer<AppArmor> _apparmor;
200
222
    QSharedPointer<SystemNetworkInfo> _networkInfo;
202
224
    QSharedPointer<DownloadFactory> _downloadFactory;
203
225
    QSharedPointer<DownloadQueue> _downloadsQueue;
204
226
    QSharedPointer<DBusConnection> _conn;
 
227
    bool _stoppable;
205
228
    DownloadManager* q_ptr;
206
229
};
207
230
 
209
232
 * PUBLIC IMPLEMENTATION
210
233
 */
211
234
 
212
 
DownloadManager::DownloadManager(QSharedPointer<DBusConnection> connection,
 
235
DownloadManager::DownloadManager(QSharedPointer<Application> app,
 
236
                                 QSharedPointer<DBusConnection> connection,
 
237
                                 bool stoppable,
213
238
                                 QObject* parent)
214
239
    : QObject(parent),
215
 
      d_ptr(new DownloadManagerPrivate(connection, this)) {
 
240
      d_ptr(new DownloadManagerPrivate(app, connection, stoppable, this)) {
216
241
}
217
242
 
218
 
DownloadManager::DownloadManager(QSharedPointer<DBusConnection> connection,
 
243
DownloadManager::DownloadManager(QSharedPointer<Application> app,
 
244
                                 QSharedPointer<DBusConnection> connection,
219
245
                                 SystemNetworkInfo* networkInfo,
220
246
                                 DownloadFactory* downloadFactory,
221
247
                                 DownloadQueue* queue,
 
248
                                 bool stoppable,
222
249
                                 QObject* parent)
223
250
    : QObject(parent),
224
251
      QDBusContext(),
225
 
      d_ptr(new DownloadManagerPrivate(connection,
 
252
      d_ptr(new DownloadManagerPrivate(app,
 
253
                                       connection,
226
254
                                       networkInfo,
227
255
                                       downloadFactory,
228
256
                                       queue,
 
257
                                       stoppable,
229
258
                                       this)) {
230
259
}
231
260
 
292
321
    return d->getAllDownloadsWithMetadata(name, value);
293
322
}
294
323
 
 
324
void
 
325
DownloadManager::exit() {
 
326
    Q_D(DownloadManager);
 
327
    return d->exit();
 
328
}
 
329
 
295
330
#include "moc_download_manager.cpp"