10 #define QXMPPMESSAGE_H 12 #include "QXmppFileShare.h" 13 #include "QXmppStanza.h" 20 class QXmppMessagePrivate;
25 class QXmppMixInvitation;
27 class QXmppOmemoElement;
48 #if QXMPP_DEPRECATED_SINCE(1, 5) 52 static const EncryptionMethod NoEncryption = EncryptionMethod::NoEncryption;
53 static const EncryptionMethod UnknownEncryption = EncryptionMethod::UnknownEncryption;
54 static const EncryptionMethod OTR = EncryptionMethod::Otr;
55 static const EncryptionMethod LegacyOpenPGP = EncryptionMethod::LegacyOpenPgp;
56 static const EncryptionMethod OX = EncryptionMethod::Ox;
57 static const EncryptionMethod OMEMO = EncryptionMethod::Omemo0;
103 NoPermanentStore = 1 << 0,
109 QXmppMessage(
const QString &from = QString(),
const QString &to = QString(),
110 const QString &body = QString(),
const QString &thread = QString());
121 QString body()
const;
122 void setBody(
const QString &);
124 QString e2eeFallbackBody()
const;
125 void setE2eeFallbackBody(
const QString &fallbackBody);
127 QString subject()
const;
128 void setSubject(
const QString &);
130 QString thread()
const;
131 void setThread(
const QString &);
133 QString parentThread()
const;
134 void setParentThread(
const QString &);
140 QString outOfBandUrl()
const;
141 void setOutOfBandUrl(
const QString &);
143 QVector<QXmppOutOfBandUrl> outOfBandUrls()
const;
144 void setOutOfBandUrls(
const QVector<QXmppOutOfBandUrl> &urls);
147 QString xhtml()
const;
148 void setXhtml(
const QString &xhtml);
155 QDateTime stamp()
const;
156 void setStamp(
const QDateTime &stamp);
159 bool isReceiptRequested()
const;
160 void setReceiptRequested(
bool requested);
162 QString receiptId()
const;
163 void setReceiptId(
const QString &
id);
166 bool isAttentionRequested()
const;
167 void setAttentionRequested(
bool requested);
175 static bool isSlashMeCommand(
const QString &body);
176 bool isSlashMeCommand()
const;
177 static QString slashMeCommandText(
const QString &body);
178 QString slashMeCommandText()
const;
181 QString mucInvitationJid()
const;
182 void setMucInvitationJid(
const QString &jid);
184 QString mucInvitationPassword()
const;
185 void setMucInvitationPassword(
const QString &password);
187 QString mucInvitationReason()
const;
188 void setMucInvitationReason(
const QString &reason);
191 bool isPrivate()
const;
192 void setPrivate(
const bool);
193 bool isCarbonForwarded()
const;
194 void setCarbonForwarded(
bool);
197 QString replaceId()
const;
198 void setReplaceId(
const QString &);
201 bool isMarkable()
const;
202 void setMarkable(
const bool);
204 QString markedId()
const;
205 void setMarkerId(
const QString &);
207 QString markedThread()
const;
208 void setMarkedThread(
const QString &);
210 Marker marker()
const;
211 void setMarker(
const Marker);
214 bool hasHint(
const Hint hint)
const;
215 void addHint(
const Hint hint);
216 void removeHint(
const Hint hint);
217 void removeAllHints();
220 std::optional<QXmppJingleMessageInitiationElement> jingleMessageInitiationElement()
const;
221 void setJingleMessageInitiationElement(
const std::optional<QXmppJingleMessageInitiationElement> &jingleMessageInitiationElement);
224 #if QXMPP_DEPRECATED_SINCE(1, 8) 225 [[deprecated(
"Use stanzaIds() instead.")]]
226 QString stanzaId()
const;
227 [[deprecated(
"Use setStanzaIds() instead.")]]
228 void setStanzaId(
const QString &
id);
230 [[deprecated(
"Use stanzaIds() instead.")]]
231 QString stanzaIdBy()
const;
232 [[deprecated(
"Use setStanzaIds() instead.")]]
233 void setStanzaIdBy(
const QString &
id);
236 QVector<QXmppStanzaId> stanzaIds()
const;
237 void setStanzaIds(
const QVector<QXmppStanzaId> &);
239 QString originId()
const;
240 void setOriginId(
const QString &
id);
243 QString attachId()
const;
244 void setAttachId(
const QString &);
247 QString mixParticipantId()
const;
249 QString mixUserJid()
const;
250 void setMixUserJid(
const QString &);
252 QString mixUserNick()
const;
253 void setMixUserNick(
const QString &);
258 QString encryptionMethodNs()
const;
259 void setEncryptionMethodNs(
const QString &);
261 QString encryptionName()
const;
262 void setEncryptionName(
const QString &);
265 bool isSpoiler()
const;
266 void setIsSpoiler(
bool);
268 QString spoilerHint()
const;
269 void setSpoilerHint(
const QString &);
272 std::optional<QXmppMixInvitation> mixInvitation()
const;
273 void setMixInvitation(
const std::optional<QXmppMixInvitation> &mixInvitation);
276 #if QXMPP_DEPRECATED_SINCE(1, 7) 277 [[deprecated(
"Use fallbackMarkers()")]]
bool isFallback()
const;
278 [[deprecated(
"Use setFallbackMarkers()")]]
void setIsFallback(
bool isFallback);
280 const QVector<QXmppFallback> &fallbackMarkers()
const;
281 void setFallbackMarkers(
const QVector<QXmppFallback> &);
284 std::optional<QXmppTrustMessageElement> trustMessageElement()
const;
285 void setTrustMessageElement(
const std::optional<QXmppTrustMessageElement> &trustMessageElement);
288 std::optional<QXmppMessageReaction> reaction()
const;
289 void setReaction(
const std::optional<QXmppMessageReaction> &reaction);
292 const QVector<QXmppFileShare> &sharedFiles()
const;
293 void setSharedFiles(
const QVector<QXmppFileShare> &sharedFiles);
294 QVector<QXmppFileSourcesAttachment> fileSourcesAttachments()
const;
295 void setFileSourcesAttachments(
const QVector<QXmppFileSourcesAttachment> &);
298 std::optional<QXmppCallInviteElement> callInviteElement()
const;
299 void setCallInviteElement(std::optional<QXmppCallInviteElement> callInviteElement);
304 std::optional<QXmppOmemoElement> omemoElement()
const;
305 void setOmemoElement(
const std::optional<QXmppOmemoElement> &omemoElement);
308 void parse(
const QDomElement &element)
override final;
310 void toXml(QXmlStreamWriter *writer)
const override final;
314 void parseExtensions(
const QDomElement &element,
QXmpp::SceMode sceMode);
315 virtual bool parseExtension(
const QDomElement &element,
QXmpp::SceMode);
316 virtual void serializeExtensions(QXmlStreamWriter *writer,
QXmpp::SceMode,
const QString &baseNamespace = {})
const;
319 QSharedDataPointer<QXmppMessagePrivate> d;
324 #endif // QXMPPMESSAGE_H State
Definition: QXmppMessage.h:76
Stanza ID element as defined in XEP-0359: Unique and Stable Stanza IDs.
Definition: QXmppMessage.h:33
virtual bool isXmppStanza() const
Definition: QXmppNonza.h:19
The QXmppCallInviteElement class represents a Call Invite element as specified by XEP-0482: Call Invi...
Definition: QXmppJingleData.h:648
The QXmppStanza class is the base class for all XMPP stanzas.
Definition: QXmppStanza.h:87
User is composing a message.
Definition: QXmppMessage.h:81
QString id
Identifier of the stanza element.
Definition: QXmppMessage.h:35
User has effectively ended their participation in the chat session.
Definition: QXmppMessage.h:80
virtual void parse(const QDomElement &)=0
Marker
Definition: QXmppMessage.h:90
User is actively participating in the chat session.
Definition: QXmppMessage.h:78
SceMode
Definition: QXmppGlobal.h:136
Definition: QXmppBitsOfBinaryDataList.h:15
Definition: QXmppOutOfBandUrl.h:18
User has not been actively participating in the chat session.
Definition: QXmppMessage.h:79
The QXmppTrustMessageElement class represents a trust message element as defined by XEP-0434: Trust M...
Definition: QXmppTrustMessageElement.h:17
Definition: QXmppFallback.h:19
Type
This enum describes a message type.
Definition: QXmppMessage.h:62
The QXmppMessage class represents an XMPP message.
Definition: QXmppMessage.h:45
EncryptionMethod
Definition: QXmppGlobal.h:89
virtual void toXml(QXmlStreamWriter *writer) const =0
The QXmppJingleMessageInitiationElement class represents a Jingle Message Initiation element as speci...
Definition: QXmppJingleData.h:601
The Error class represents a stanza error.
Definition: QXmppStanza.h:93
Hint
Definition: QXmppMessage.h:102
The QXmppMessageReaction class represents a reaction to a message in the form of emojis as specified ...
Definition: QXmppMessageReaction.h:16
QXmppStanza & operator=(const QXmppStanza &other)
Assigns other to this stanza.
QString by
JID of the generating entity.
Definition: QXmppMessage.h:37