diff options
| author | Tibor Csötönyi <work@taibsu.de> | 2023-05-03 15:33:35 +0200 |
|---|---|---|
| committer | Linus Jahn <lnj@kaidan.im> | 2023-05-14 23:58:00 +0200 |
| commit | 2fde987d39dc66f028ea3ff44929ebd6e2b37f90 (patch) | |
| tree | 14ce02a68b801caf984f74700ea28c0a85fc5b3b /src/base/QXmppJingleIq.h | |
| parent | 44e9657c4e1551697f496cc9415f3d458103ca5c (diff) | |
| download | qxmpp-2fde987d39dc66f028ea3ff44929ebd6e2b37f90.tar.gz | |
Add XEP-0353: Jingle Message Initiation data classes
Diffstat (limited to 'src/base/QXmppJingleIq.h')
| -rw-r--r-- | src/base/QXmppJingleIq.h | 51 |
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 |
