aboutsummaryrefslogtreecommitdiff
path: root/src/base/QXmppJingleIq.h
diff options
context:
space:
mode:
authorTibor Csötönyi <work@taibsu.de>2023-05-03 15:33:35 +0200
committerLinus Jahn <lnj@kaidan.im>2023-05-14 23:58:00 +0200
commit2fde987d39dc66f028ea3ff44929ebd6e2b37f90 (patch)
tree14ce02a68b801caf984f74700ea28c0a85fc5b3b /src/base/QXmppJingleIq.h
parent44e9657c4e1551697f496cc9415f3d458103ca5c (diff)
downloadqxmpp-2fde987d39dc66f028ea3ff44929ebd6e2b37f90.tar.gz
Add XEP-0353: Jingle Message Initiation data classes
Diffstat (limited to 'src/base/QXmppJingleIq.h')
-rw-r--r--src/base/QXmppJingleIq.h51
1 files changed, 50 insertions, 1 deletions
diff --git a/src/base/QXmppJingleIq.h b/src/base/QXmppJingleIq.h
index 6589a5cb..1e425f4d 100644
--- a/src/base/QXmppJingleIq.h
+++ b/src/base/QXmppJingleIq.h
@@ -24,6 +24,7 @@ class QXmppJingleRtpEncryptionPrivate;
class QXmppJingleRtpFeedbackPropertyPrivate;
class QXmppJingleRtpHeaderExtensionPropertyPrivate;
class QXmppSdpParameterPrivate;
+class QXmppJingleMessageInitiationElementPrivate;
class QXMPP_EXPORT QXmppSdpParameter
{
@@ -595,6 +596,54 @@ private:
QSharedDataPointer<QXmppJingleIqPrivate> d;
};
-Q_DECLARE_METATYPE(QXmppJingleIq::Reason::RtpErrorCondition)
+class QXMPP_EXPORT QXmppJingleMessageInitiationElement
+{
+public:
+ enum class Type {
+ None,
+ Propose,
+ Ringing,
+ Proceed,
+ Reject,
+ Retract,
+ Finish
+ };
+
+ QXmppJingleMessageInitiationElement();
+ QXMPP_PRIVATE_DECLARE_RULE_OF_SIX(QXmppJingleMessageInitiationElement)
+
+ Type type() const;
+ void setType(Type type);
+
+ QString id() const;
+ void setId(const QString &id);
+
+ std::optional<QXmppJingleDescription> description() const;
+ void setDescription(std::optional<QXmppJingleDescription> description);
+
+ std::optional<QXmppJingleReason> reason() const;
+ void setReason(std::optional<QXmppJingleReason> reason);
+
+ bool containsTieBreak() const;
+ void setContainsTieBreak(bool containsTieBreak);
+
+ QString migratedTo() const;
+ void setMigratedTo(const QString &migratedTo);
+
+ /// \cond
+ void parse(const QDomElement &element);
+ void toXml(QXmlStreamWriter *writer) const;
+ /// \endcond
+
+ static bool isJingleMessageInitiationElement(const QDomElement &);
+
+private:
+ QString jmiElementTypeToString(Type type) const;
+ Type stringToJmiElementType(const QString &typeStr) const;
+
+ QSharedDataPointer<QXmppJingleMessageInitiationElementPrivate> d;
+};
+
+Q_DECLARE_METATYPE(QXmppJingleReason::RtpErrorCondition)
#endif