QXmpp  Version:0.7.3
 All Classes Functions Variables Enumerations Enumerator Properties Groups
QXmppArchiveIq.h
1 /*
2  * Copyright (C) 2008-2012 The QXmpp developers
3  *
4  * Author:
5  * Jeremy LainĂ©
6  *
7  * Source:
8  * http://code.google.com/p/qxmpp
9  *
10  * This file is a part of QXmpp library.
11  *
12  * This library is free software; you can redistribute it and/or
13  * modify it under the terms of the GNU Lesser General Public
14  * License as published by the Free Software Foundation; either
15  * version 2.1 of the License, or (at your option) any later version.
16  *
17  * This library is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20  * Lesser General Public License for more details.
21  *
22  */
23 
24 #ifndef QXMPPARCHIVEIQ_H
25 #define QXMPPARCHIVEIQ_H
26 
27 #include "QXmppIq.h"
28 #include "QXmppResultSet.h"
29 
30 #include <QDateTime>
31 
32 class QXmlStreamWriter;
33 class QDomElement;
34 
37 
38 class QXMPP_EXPORT QXmppArchiveMessage
39 {
40 public:
42 
43  QString body() const;
44  void setBody(const QString &body);
45 
46  QDateTime date() const;
47  void setDate(const QDateTime &date);
48 
49  bool isReceived() const;
50  void setReceived(bool isReceived);
51 
52 private:
53  QString m_body;
54  QDateTime m_date;
55  bool m_received;
56 };
57 
60 
61 class QXMPP_EXPORT QXmppArchiveChat
62 {
63 public:
65 
66  QList<QXmppArchiveMessage> messages() const;
67  void setMessages(const QList<QXmppArchiveMessage> &messages);
68 
69  QDateTime start() const;
70  void setStart(const QDateTime &start);
71 
72  QString subject() const;
73  void setSubject(const QString &subject);
74 
75  QString thread() const;
76  void setThread(const QString &thread);
77 
78  int version() const;
79  void setVersion(int version);
80 
81  QString with() const;
82  void setWith(const QString &with);
83 
85  void parse(const QDomElement &element);
86  void toXml(QXmlStreamWriter *writer, const QXmppResultSetReply &rsm = QXmppResultSetReply()) const;
88 
89 private:
90  QList<QXmppArchiveMessage> m_messages;
91  QDateTime m_start;
92  QString m_subject;
93  QString m_thread;
94  int m_version;
95  QString m_with;
96 };
97 
103 
104 class QXMPP_EXPORT QXmppArchiveChatIq : public QXmppIq
105 {
106 public:
107  QXmppArchiveChat chat() const;
108  void setChat(const QXmppArchiveChat &chat);
109 
110  QXmppResultSetReply resultSetReply() const;
111  void setResultSetReply(const QXmppResultSetReply &rsm);
112 
114  static bool isArchiveChatIq(const QDomElement &element);
115 
116 protected:
117  void parseElementFromChild(const QDomElement &element);
118  void toXmlElementFromChild(QXmlStreamWriter *writer) const;
120 
121 private:
122  QXmppArchiveChat m_chat;
123  QXmppResultSetReply m_rsmReply;
124 };
125 
129 
130 class QXMPP_EXPORT QXmppArchiveListIq : public QXmppIq
131 {
132 public:
134 
135  QList<QXmppArchiveChat> chats() const;
136  void setChats(const QList<QXmppArchiveChat> &chats);
137 
138  QString with() const;
139  void setWith( const QString &with );
140 
141  QDateTime start() const;
142  void setStart(const QDateTime &start );
143 
144  QDateTime end() const;
145  void setEnd(const QDateTime &end );
146 
147  QXmppResultSetQuery resultSetQuery() const;
148  void setResultSetQuery(const QXmppResultSetQuery &rsm);
149 
150  QXmppResultSetReply resultSetReply() const;
151  void setResultSetReply(const QXmppResultSetReply &rsm);
152 
154  static bool isArchiveListIq(const QDomElement &element);
156 
157 protected:
159  void parseElementFromChild(const QDomElement &element);
160  void toXmlElementFromChild(QXmlStreamWriter *writer) const;
162 
163 private:
164  QString m_with;
165  QDateTime m_start;
166  QDateTime m_end;
167  QList<QXmppArchiveChat> m_chats;
168  QXmppResultSetQuery m_rsmQuery;
169  QXmppResultSetReply m_rsmReply;
170 };
171 
175 
176 class QXMPP_EXPORT QXmppArchiveRemoveIq : public QXmppIq
177 {
178 public:
179  QString with() const;
180  void setWith( const QString &with );
181 
182  QDateTime start() const;
183  void setStart(const QDateTime &start );
184 
185  QDateTime end() const;
186  void setEnd(const QDateTime &end );
187 
189  static bool isArchiveRemoveIq(const QDomElement &element);
190 
191 protected:
192  void parseElementFromChild(const QDomElement &element);
193  void toXmlElementFromChild(QXmlStreamWriter *writer) const;
195 
196 private:
197  QString m_with;
198  QDateTime m_start;
199  QDateTime m_end;
200 };
201 
205 
206 class QXMPP_EXPORT QXmppArchiveRetrieveIq : public QXmppIq
207 {
208 public:
210 
211  QDateTime start() const;
212  void setStart(const QDateTime &start);
213 
214  QString with() const;
215  void setWith(const QString &with);
216 
217  QXmppResultSetQuery resultSetQuery() const;
218  void setResultSetQuery(const QXmppResultSetQuery &rsm);
219 
221  static bool isArchiveRetrieveIq(const QDomElement &element);
222 
223 protected:
224  void parseElementFromChild(const QDomElement &element);
225  void toXmlElementFromChild(QXmlStreamWriter *writer) const;
227 
228 private:
229  QString m_with;
230  QDateTime m_start;
231  QXmppResultSetQuery m_rsmQuery;
232 };
233 
237 
238 class QXMPP_EXPORT QXmppArchivePrefIq : public QXmppIq
239 {
240 public:
242  static bool isArchivePrefIq(const QDomElement &element);
243 
244 protected:
245  void parseElementFromChild(const QDomElement &element);
246  void toXmlElementFromChild(QXmlStreamWriter *writer) const;
248 };
249 
250 #endif // QXMPPARCHIVEIQ_H