Merge branch 'master' of git@git.opensuse.org:projects/opensuse-updater-kde
[opensuse:kupdateapplet.git] / updater / packagekit / QPackageKitInterface.h
1 #ifndef QPACKAGEKITINTERFACE_H
2 #define QPACKAGEKITINTERFACE_H
3
4 #include <QtCore/QObject>
5 #include <QtCore/QByteArray>
6 #include <QtCore/QList>
7 #include <QtCore/QMap>
8 #include <QtCore/QString>
9 #include <QtCore/QStringList>
10 #include <QtCore/QVariant>
11 #include <QtDBus/QtDBus>
12
13 class QPackageKitInterface: public QDBusAbstractInterface
14 {
15     Q_OBJECT
16
17 public:
18     QPackageKitInterface(const QString &service,
19                         const QString &path,
20                         const QString &interface,
21                         const QDBusConnection &connection,
22                         QObject *parent = 0);
23
24     ~QPackageKitInterface();
25
26 public Q_SLOTS: 
27     inline QDBusReply<void> GetDescription(const QString &package_id)
28     {
29         QList<QVariant> argumentList;
30         argumentList << qVariantFromValue(package_id);
31         return callWithArgumentList(QDBus::Block, QLatin1String("GetDescription"), argumentList);
32     }
33
34     inline QDBusReply<void> AcceptEula(const QString &eula_id)
35     {
36         QList<QVariant> argumentList;
37         argumentList << qVariantFromValue(eula_id);
38         return callWithArgumentList(QDBus::Block, QLatin1String("AcceptEula"), argumentList);
39     }
40 /*
41     inline QDBusReply<uint> GetProgress(const QString &tid, uint &subpercentage, uint &elapsed, uint &remaining)
42     {
43         QList<QVariant> argumentList;
44         argumentList << qVariantFromValue(tid);
45         QDBusMessage reply = callWithArgumentList(QDBus::Block, QLatin1String("GetProgress"), argumentList);
46         if (reply.type() == QDBusMessage::ReplyMessage && reply.arguments().count() == 4) {
47             subpercentage = qdbus_cast<uint>(reply.arguments().at(1));
48             elapsed = qdbus_cast<uint>(reply.arguments().at(2));
49             remaining = qdbus_cast<uint>(reply.arguments().at(3));
50         }
51         return reply;
52     }
53 */
54
55     inline QDBusReply<QString> GetTid()
56     {
57         _transactionType="GetTid";
58         QList<QVariant> argumentList;
59         return callWithArgumentList(QDBus::Block, QLatin1String("GetTid"), argumentList);
60     }
61
62     inline QDBusReply<void> RefreshCache(bool force)
63     {
64         _transactionType="RefreshCache";
65         QList<QVariant> argumentList;
66         argumentList << qVariantFromValue(force);
67         return callWithArgumentList(QDBus::Block, QLatin1String("RefreshCache"), argumentList);
68     }
69
70     inline QDBusReply<void> GetUpdates()
71     {
72         _transactionType="GetUpdates";
73         QList<QVariant> argumentList;
74         argumentList << qVariantFromValue(QString("none"));
75         return callWithArgumentList(QDBus::Block, QLatin1String("GetUpdates"), argumentList);
76     }
77
78     inline QDBusReply<void> InstallPackage(const QString &package_id)
79     {
80         _transactionType="InstallPackage";
81         QList<QVariant> argumentList;
82         argumentList << qVariantFromValue(package_id);
83         return callWithArgumentList(QDBus::Block, QLatin1String("InstallPackage"), argumentList);
84     }
85
86     inline QDBusReply<void> UpdatePackages(const QStringList &package_ids)
87     {
88         _transactionType="UpdatePackages";
89         QList<QVariant> argumentList;
90         argumentList << qVariantFromValue(package_ids);
91         return callWithArgumentList(QDBus::Block, QLatin1String("UpdatePackages"), argumentList);
92     }
93
94     QString transactionType()
95     {
96         return _transactionType;
97     }
98
99
100 Q_SIGNALS: // SIGNALS
101     void Description(const QString &package_id, const QString &licence, const QString &group, const QString &detail, const QString &url, qulonglong size); 
102     void Finished(const QString &status, uint runtime);
103     void TransactionFinished(const QString &status, uint runtime, QPackageKitInterface*);
104     void Package(const QString &info, const QString &package_id, const QString &summary);
105     void ProgressChanged(uint percentage, uint subpercentage, uint elapsed, uint remaining);
106     void ErrorCode(const QString &,const QString &);
107     void RepoSignatureRequired(const QString &package_id, const QString &repository_name,
108          const QString  &key_url, const QString &key_userid, const QString &key_id,
109          const QString &key_fingerprint, const QString &key_timestamp, const QString &type);
110     void EulaRequired(const QString &eula_id, const QString &package_id, const QString &vendor_name, const QString &license_agreement);
111
112
113 private slots:
114     void proxy_Finished(const QString &status, uint runtime);
115
116
117 private:
118     QString _transactionType;
119
120 };
121
122 namespace org {
123   namespace freedesktop {
124     typedef ::QPackageKitInterface PackageKit;
125   }
126 }
127 #endif