diff options
Diffstat (limited to 'qt/qdbusmessage.cpp')
-rw-r--r-- | qt/qdbusmessage.cpp | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/qt/qdbusmessage.cpp b/qt/qdbusmessage.cpp index 5c604c13..b88d7e39 100644 --- a/qt/qdbusmessage.cpp +++ b/qt/qdbusmessage.cpp @@ -34,7 +34,8 @@ #include "qdbusmessage_p.h" QDBusMessagePrivate::QDBusMessagePrivate(QDBusMessage *qq) - : msg(0), reply(0), q(qq), type(DBUS_MESSAGE_TYPE_INVALID), timeout(-1), ref(1) + : msg(0), reply(0), q(qq), type(DBUS_MESSAGE_TYPE_INVALID), timeout(-1), ref(1), + repliedTo(false) { } @@ -143,6 +144,7 @@ QDBusMessage QDBusMessage::methodReply(const QDBusMessage &other) QDBusMessage message; message.d->type = DBUS_MESSAGE_TYPE_METHOD_RETURN; message.d->reply = dbus_message_ref(other.d->msg); + other.d->repliedTo = true; return message; } @@ -166,6 +168,7 @@ QDBusMessage QDBusMessage::error(const QDBusMessage &other, const QString &name, message.d->name = name; message.d->message = msg; message.d->reply = dbus_message_ref(other.d->msg); + other.d->repliedTo = true; return message; } @@ -187,6 +190,7 @@ QDBusMessage QDBusMessage::error(const QDBusMessage &other, const QDBusError &er message.d->name = error.name(); message.d->message = error.message(); message.d->reply = dbus_message_ref(other.d->msg); + other.d->repliedTo = true; return message; } @@ -371,6 +375,30 @@ void QDBusMessage::setTimeout(int ms) } /*! + Returns the flag that indicates if this message should see a reply or not. This is only + meaningful for MethodCall messages: any other kind of message cannot have replies and this + function will always return false for them. +*/ +bool QDBusMessage::noReply() const +{ + if (!d->msg) + return false; + return dbus_message_get_no_reply(d->msg); +} + +/*! + Sets the flag that indicates whether we're expecting a reply from the callee. This flag only + makes sense for MethodCall messages. + + \param enable whether to enable the flag (i.e., we are not expecting a reply) +*/ +void QDBusMessage::setNoReply(bool enable) +{ + if (d->msg) + dbus_message_set_no_reply(d->msg, enable); +} + +/*! Returns the unique serial number assigned to this message or 0 if the message was not sent yet. */ @@ -397,6 +425,15 @@ int QDBusMessage::replySerialNumber() const } /*! + Returns true if this is a MethodCall message and a reply for it has been generated using + QDBusMessage::methodReply or QDBusMessage::error. +*/ +bool QDBusMessage::wasRepliedTo() const +{ + return d->repliedTo; +} + +/*! Returns the signature of the signal that was received or for the output arguments of a method call. */ |