Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 46 additions & 2 deletions src/offline.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,54 @@ Q_DECLARE_LOGGING_CATEGORY(PACKAGEKITQT_OFFLINE)

using namespace PackageKit;

Offline::Results::Results(const QDBusPendingCall &call)
: m_reply(call)
{
}

bool Offline::Results::isError() const
{
return m_reply.isError();
}

void Offline::Results::waitForFinished()
{
m_reply.waitForFinished();
}

bool Offline::Results::success() const
{
return m_reply.argumentAt<0>();
}

QStringList Offline::Results::packageIds() const
{
return m_reply.argumentAt<1>();
}

Transaction::Role Offline::Results::role() const
{
return static_cast<Transaction::Role>(m_reply.argumentAt<2>());
}

qulonglong Offline::Results::timeFinished() const
{
return m_reply.argumentAt<3>();
}

Transaction::Error Offline::Results::error() const
{
return static_cast<Transaction::Error>(m_reply.argumentAt<4>());
}

QString Offline::Results::errorDescription() const
{
return m_reply.argumentAt<5>();
}

Offline::Offline(QObject *parent) : QObject(parent)
, d_ptr(new OfflinePrivate(this))
{
qRegisterMetaType<Transaction::Role>();
Comment thread
aleixpol marked this conversation as resolved.
QDBusConnection::systemBus().connect(PK_NAME,
PK_PATH,
DBUS_PROPERTIES,
Expand Down Expand Up @@ -132,7 +176,7 @@ QDBusPendingReply<> Offline::triggerUpgrade(Action action)
return QDBusConnection::systemBus().asyncCall(msg, 24 * 60 * 1000 * 1000);
}

QDBusPendingReply<bool, QStringList, Transaction::Role, qint64, Transaction::Error, QString> Offline::getResults()
Offline::Results Offline::getResults()
{
// Manually invoke dbus because the qdbusxml2cpp does not allow
// setting the ALLOW_INTERACTIVE_AUTHORIZATION flag
Expand Down
24 changes: 23 additions & 1 deletion src/offline.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,28 @@ class PACKAGEKITQT_LIBRARY Offline : public QObject
};
Q_ENUM(Action)

/**
* Wrapper class representing the returning value of getResults()
*/
class Results
{
friend class Offline;
public:
Results(const QDBusPendingCall &call);

bool isError() const;
void waitForFinished();

bool success() const;
QStringList packageIds() const;
Transaction::Role role() const;
qulonglong timeFinished() const;
Transaction::Error error() const;
QString errorDescription() const;
private:
QDBusPendingReply<bool, QStringList, quint32, qulonglong, quint32, QString> m_reply;
};

~Offline();

Q_PROPERTY(QVariantMap preparedUpgrade READ preparedUpgrade NOTIFY changed)
Expand Down Expand Up @@ -104,7 +126,7 @@ class PACKAGEKITQT_LIBRARY Offline : public QObject
/**
* Returns the information about the last offline action performed.
*/
QDBusPendingReply<bool, QStringList, Transaction::Role, qint64, Transaction::Error, QString> getResults();
Results getResults();

/**
* Cancels the offline update so the next boot procceeds as normal.
Expand Down