2
This file is part of the Nepomuk KDE project.
3
Copyright (C) 2011 Sebastian Trueg <trueg@kde.org>
5
This library is free software; you can redistribute it and/or
6
modify it under the terms of the GNU Lesser General Public
7
License as published by the Free Software Foundation; either
8
version 2.1 of the License, or (at your option) version 3, or any
9
later version accepted by the membership of KDE e.V. (or its
10
successor approved by the membership of KDE e.V.), which shall
11
act as a proxy defined in Section 6 of version 3 of the license.
13
This library is distributed in the hope that it will be useful,
14
but WITHOUT ANY WARRANTY; without even the implied warranty of
15
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
Lesser General Public License for more details.
18
You should have received a copy of the GNU Lesser General Public
19
License along with this library. If not, see <http://www.gnu.org/licenses/>.
22
#include "describeresourcesjob.h"
23
#include "datamanagementinterface.h"
24
#include "simpleresourcegraph.h"
25
#include "dbustypes.h"
26
#include "genericdatamanagementjob_p.h"
27
#include "kdbusconnectionpool.h"
29
#include <QtDBus/QDBusConnection>
30
#include <QtDBus/QDBusPendingReply>
31
#include <QtDBus/QDBusPendingCallWatcher>
33
#include <QtCore/QVariant>
34
#include <QtCore/QUrl>
36
#include <KComponentData>
40
class Nepomuk::DescribeResourcesJob::Private
43
SimpleResourceGraph m_resources;
46
Nepomuk::DescribeResourcesJob::DescribeResourcesJob(const QList<QUrl>& resources,
47
DescribeResourcesFlags flags,
48
const QList<QUrl>& targetGroups)
52
org::kde::nepomuk::DataManagement* dms = Nepomuk::dataManagementDBusInterface();
53
QDBusPendingCallWatcher* dbusCallWatcher
54
= new QDBusPendingCallWatcher(dms->describeResources(Nepomuk::DBus::convertUriList(resources),
56
Nepomuk::DBus::convertUriList(targetGroups)));
57
connect(dbusCallWatcher, SIGNAL(finished(QDBusPendingCallWatcher*)),
58
this, SLOT(slotDBusCallFinished(QDBusPendingCallWatcher*)));
61
Nepomuk::DescribeResourcesJob::~DescribeResourcesJob()
66
void Nepomuk::DescribeResourcesJob::start()
68
// do nothing, we do everything in the constructor
71
void Nepomuk::DescribeResourcesJob::slotDBusCallFinished(QDBusPendingCallWatcher *watcher)
73
QDBusPendingReply<QList<Nepomuk::SimpleResource> > reply = *watcher;
74
if (reply.isError()) {
75
QDBusError error = reply.error();
77
setErrorText(error.message());
80
d->m_resources = reply.value();
82
watcher->deleteLater();
86
Nepomuk::SimpleResourceGraph Nepomuk::DescribeResourcesJob::resources() const
88
return d->m_resources;
91
#include "describeresourcesjob.moc"