QXmpp
Version:0.9.3
|
00001 /* 00002 * Copyright (C) 2008-2014 The QXmpp developers 00003 * 00004 * Author: 00005 * Jeremy Lainé 00006 * 00007 * Source: 00008 * https://github.com/qxmpp-project/qxmpp 00009 * 00010 * This file is a part of QXmpp library. 00011 * 00012 * This library is free software; you can redistribute it and/or 00013 * modify it under the terms of the GNU Lesser General Public 00014 * License as published by the Free Software Foundation; either 00015 * version 2.1 of the License, or (at your option) any later version. 00016 * 00017 * This library is distributed in the hope that it will be useful, 00018 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00019 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00020 * Lesser General Public License for more details. 00021 * 00022 */ 00023 00024 #ifndef QXMPPARCHIVEIQ_H 00025 #define QXMPPARCHIVEIQ_H 00026 00027 #include "QXmppIq.h" 00028 #include "QXmppResultSet.h" 00029 00030 #include <QDateTime> 00031 00034 00035 class QXMPP_EXPORT QXmppArchiveMessage 00036 { 00037 public: 00038 QXmppArchiveMessage(); 00039 00040 QString body() const; 00041 void setBody(const QString &body); 00042 00043 QDateTime date() const; 00044 void setDate(const QDateTime &date); 00045 00046 bool isReceived() const; 00047 void setReceived(bool isReceived); 00048 00049 private: 00050 QString m_body; 00051 QDateTime m_date; 00052 bool m_received; 00053 }; 00054 00057 00058 class QXMPP_EXPORT QXmppArchiveChat 00059 { 00060 public: 00061 QXmppArchiveChat(); 00062 00063 QList<QXmppArchiveMessage> messages() const; 00064 void setMessages(const QList<QXmppArchiveMessage> &messages); 00065 00066 QDateTime start() const; 00067 void setStart(const QDateTime &start); 00068 00069 QString subject() const; 00070 void setSubject(const QString &subject); 00071 00072 QString thread() const; 00073 void setThread(const QString &thread); 00074 00075 int version() const; 00076 void setVersion(int version); 00077 00078 QString with() const; 00079 void setWith(const QString &with); 00080 00082 void parse(const QDomElement &element); 00083 void toXml(QXmlStreamWriter *writer, const QXmppResultSetReply &rsm = QXmppResultSetReply()) const; 00085 00086 private: 00087 QList<QXmppArchiveMessage> m_messages; 00088 QDateTime m_start; 00089 QString m_subject; 00090 QString m_thread; 00091 int m_version; 00092 QString m_with; 00093 }; 00094 00100 00101 class QXMPP_EXPORT QXmppArchiveChatIq : public QXmppIq 00102 { 00103 public: 00104 QXmppArchiveChat chat() const; 00105 void setChat(const QXmppArchiveChat &chat); 00106 00107 QXmppResultSetReply resultSetReply() const; 00108 void setResultSetReply(const QXmppResultSetReply &rsm); 00109 00111 static bool isArchiveChatIq(const QDomElement &element); 00112 00113 protected: 00114 void parseElementFromChild(const QDomElement &element); 00115 void toXmlElementFromChild(QXmlStreamWriter *writer) const; 00117 00118 private: 00119 QXmppArchiveChat m_chat; 00120 QXmppResultSetReply m_rsmReply; 00121 }; 00122 00126 00127 class QXMPP_EXPORT QXmppArchiveListIq : public QXmppIq 00128 { 00129 public: 00130 QXmppArchiveListIq(); 00131 00132 QList<QXmppArchiveChat> chats() const; 00133 void setChats(const QList<QXmppArchiveChat> &chats); 00134 00135 QString with() const; 00136 void setWith( const QString &with ); 00137 00138 QDateTime start() const; 00139 void setStart(const QDateTime &start ); 00140 00141 QDateTime end() const; 00142 void setEnd(const QDateTime &end ); 00143 00144 QXmppResultSetQuery resultSetQuery() const; 00145 void setResultSetQuery(const QXmppResultSetQuery &rsm); 00146 00147 QXmppResultSetReply resultSetReply() const; 00148 void setResultSetReply(const QXmppResultSetReply &rsm); 00149 00151 static bool isArchiveListIq(const QDomElement &element); 00153 00154 protected: 00156 void parseElementFromChild(const QDomElement &element); 00157 void toXmlElementFromChild(QXmlStreamWriter *writer) const; 00159 00160 private: 00161 QString m_with; 00162 QDateTime m_start; 00163 QDateTime m_end; 00164 QList<QXmppArchiveChat> m_chats; 00165 QXmppResultSetQuery m_rsmQuery; 00166 QXmppResultSetReply m_rsmReply; 00167 }; 00168 00172 00173 class QXMPP_EXPORT QXmppArchiveRemoveIq : public QXmppIq 00174 { 00175 public: 00176 QString with() const; 00177 void setWith( const QString &with ); 00178 00179 QDateTime start() const; 00180 void setStart(const QDateTime &start ); 00181 00182 QDateTime end() const; 00183 void setEnd(const QDateTime &end ); 00184 00186 static bool isArchiveRemoveIq(const QDomElement &element); 00187 00188 protected: 00189 void parseElementFromChild(const QDomElement &element); 00190 void toXmlElementFromChild(QXmlStreamWriter *writer) const; 00192 00193 private: 00194 QString m_with; 00195 QDateTime m_start; 00196 QDateTime m_end; 00197 }; 00198 00202 00203 class QXMPP_EXPORT QXmppArchiveRetrieveIq : public QXmppIq 00204 { 00205 public: 00206 QXmppArchiveRetrieveIq(); 00207 00208 QDateTime start() const; 00209 void setStart(const QDateTime &start); 00210 00211 QString with() const; 00212 void setWith(const QString &with); 00213 00214 QXmppResultSetQuery resultSetQuery() const; 00215 void setResultSetQuery(const QXmppResultSetQuery &rsm); 00216 00218 static bool isArchiveRetrieveIq(const QDomElement &element); 00219 00220 protected: 00221 void parseElementFromChild(const QDomElement &element); 00222 void toXmlElementFromChild(QXmlStreamWriter *writer) const; 00224 00225 private: 00226 QString m_with; 00227 QDateTime m_start; 00228 QXmppResultSetQuery m_rsmQuery; 00229 }; 00230 00234 00235 class QXMPP_EXPORT QXmppArchivePrefIq : public QXmppIq 00236 { 00237 public: 00239 static bool isArchivePrefIq(const QDomElement &element); 00240 00241 protected: 00242 void parseElementFromChild(const QDomElement &element); 00243 void toXmlElementFromChild(QXmlStreamWriter *writer) const; 00245 }; 00246 00247 #endif // QXMPPARCHIVEIQ_H