QXmpp  Version:0.9.3
QXmppArchiveIq.h
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
 All Classes Functions Enumerations Enumerator Properties