blob: 9f41f6ff505b387ab961666648392db9105c4583 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
|
// SPDX-FileCopyrightText: 2010 Jeremy Lainé <jeremy.laine@m4x.org>
//
// SPDX-License-Identifier: LGPL-2.1-or-later
#ifndef QXMPPARCHIVEIQ_H
#define QXMPPARCHIVEIQ_H
#include "QXmppIq.h"
#include "QXmppResultSet.h"
#include <QDateTime>
/// \brief The QXmppArchiveMessage class represents an archived message
/// as defined by \xep{0136}: Message Archiving.
class QXMPP_EXPORT QXmppArchiveMessage
{
public:
QXmppArchiveMessage();
QString body() const;
void setBody(const QString &body);
QDateTime date() const;
void setDate(const QDateTime &date);
bool isReceived() const;
void setReceived(bool isReceived);
private:
QString m_body;
QDateTime m_date;
bool m_received;
};
/// \brief The QXmppArchiveChat class represents an archived conversation
/// as defined by \xep{0136}: Message Archiving.
class QXMPP_EXPORT QXmppArchiveChat
{
public:
QXmppArchiveChat();
QList<QXmppArchiveMessage> messages() const;
void setMessages(const QList<QXmppArchiveMessage> &messages);
QDateTime start() const;
void setStart(const QDateTime &start);
QString subject() const;
void setSubject(const QString &subject);
QString thread() const;
void setThread(const QString &thread);
int version() const;
void setVersion(int version);
QString with() const;
void setWith(const QString &with);
/// \cond
void parse(const QDomElement &element);
void toXml(QXmlStreamWriter *writer, const QXmppResultSetReply &rsm = QXmppResultSetReply()) const;
/// \endcond
private:
QList<QXmppArchiveMessage> m_messages;
QDateTime m_start;
QString m_subject;
QString m_thread;
int m_version;
QString m_with;
};
/// \brief Represents an archive chat as defined by \xep{0136}: Message Archiving.
///
/// It is used to get chat as a QXmppArchiveChat.
///
/// \ingroup Stanzas
class QXMPP_EXPORT QXmppArchiveChatIq : public QXmppIq
{
public:
QXmppArchiveChat chat() const;
void setChat(const QXmppArchiveChat &chat);
QXmppResultSetReply resultSetReply() const;
void setResultSetReply(const QXmppResultSetReply &rsm);
/// \cond
static bool isArchiveChatIq(const QDomElement &element);
protected:
void parseElementFromChild(const QDomElement &element) override;
void toXmlElementFromChild(QXmlStreamWriter *writer) const override;
/// \endcond
private:
QXmppArchiveChat m_chat;
QXmppResultSetReply m_rsmReply;
};
/// \brief Represents an archive list as defined by \xep{0136}: Message Archiving.
///
/// \ingroup Stanzas
class QXMPP_EXPORT QXmppArchiveListIq : public QXmppIq
{
public:
QXmppArchiveListIq();
QList<QXmppArchiveChat> chats() const;
void setChats(const QList<QXmppArchiveChat> &chats);
QString with() const;
void setWith(const QString &with);
QDateTime start() const;
void setStart(const QDateTime &start);
QDateTime end() const;
void setEnd(const QDateTime &end);
QXmppResultSetQuery resultSetQuery() const;
void setResultSetQuery(const QXmppResultSetQuery &rsm);
QXmppResultSetReply resultSetReply() const;
void setResultSetReply(const QXmppResultSetReply &rsm);
/// \cond
static bool isArchiveListIq(const QDomElement &element);
/// \endcond
protected:
/// \cond
void parseElementFromChild(const QDomElement &element) override;
void toXmlElementFromChild(QXmlStreamWriter *writer) const override;
/// \endcond
private:
QString m_with;
QDateTime m_start;
QDateTime m_end;
QList<QXmppArchiveChat> m_chats;
QXmppResultSetQuery m_rsmQuery;
QXmppResultSetReply m_rsmReply;
};
/// \brief Represents an archive remove IQ as defined by \xep{0136}: Message Archiving.
///
/// \ingroup Stanzas
class QXMPP_EXPORT QXmppArchiveRemoveIq : public QXmppIq
{
public:
QString with() const;
void setWith(const QString &with);
QDateTime start() const;
void setStart(const QDateTime &start);
QDateTime end() const;
void setEnd(const QDateTime &end);
/// \cond
static bool isArchiveRemoveIq(const QDomElement &element);
protected:
void parseElementFromChild(const QDomElement &element) override;
void toXmlElementFromChild(QXmlStreamWriter *writer) const override;
/// \endcond
private:
QString m_with;
QDateTime m_start;
QDateTime m_end;
};
/// \brief Represents an archive retrieve IQ as defined by \xep{0136}: Message Archiving.
///
/// \ingroup Stanzas
class QXMPP_EXPORT QXmppArchiveRetrieveIq : public QXmppIq
{
public:
QXmppArchiveRetrieveIq();
QDateTime start() const;
void setStart(const QDateTime &start);
QString with() const;
void setWith(const QString &with);
QXmppResultSetQuery resultSetQuery() const;
void setResultSetQuery(const QXmppResultSetQuery &rsm);
/// \cond
static bool isArchiveRetrieveIq(const QDomElement &element);
protected:
void parseElementFromChild(const QDomElement &element) override;
void toXmlElementFromChild(QXmlStreamWriter *writer) const override;
/// \endcond
private:
QString m_with;
QDateTime m_start;
QXmppResultSetQuery m_rsmQuery;
};
/// \brief Represents an archive preference IQ as defined by \xep{0136}: Message Archiving.
///
/// \ingroup Stanzas
class QXMPP_EXPORT QXmppArchivePrefIq : public QXmppIq
{
public:
/// \cond
static bool isArchivePrefIq(const QDomElement &element);
protected:
void parseElementFromChild(const QDomElement &element) override;
void toXmlElementFromChild(QXmlStreamWriter *writer) const override;
/// \endcond
};
#endif // QXMPPARCHIVEIQ_H
|