QXmpp Version:0.3.91
|
00001 /* 00002 * Copyright (C) 2008-2011 The QXmpp developers 00003 * 00004 * Authors: 00005 * Manjeet Dahiya 00006 * Jeremy Lainé 00007 * 00008 * Source: 00009 * http://code.google.com/p/qxmpp 00010 * 00011 * This file is a part of QXmpp library. 00012 * 00013 * This library is free software; you can redistribute it and/or 00014 * modify it under the terms of the GNU Lesser General Public 00015 * License as published by the Free Software Foundation; either 00016 * version 2.1 of the License, or (at your option) any later version. 00017 * 00018 * This library is distributed in the hope that it will be useful, 00019 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00020 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00021 * Lesser General Public License for more details. 00022 * 00023 */ 00024 00025 #ifndef QXMPPROSTERMANAGER_H 00026 #define QXMPPROSTERMANAGER_H 00027 00028 #include <QObject> 00029 #include <QMap> 00030 #include <QStringList> 00031 00032 #include "QXmppClientExtension.h" 00033 #include "QXmppPresence.h" 00034 #include "QXmppRosterIq.h" 00035 00036 class QXmppRosterManagerPrivate; 00037 00063 00064 class QXmppRosterManager : public QXmppClientExtension 00065 { 00066 Q_OBJECT 00067 00068 public: 00069 QXmppRosterManager(QXmppClient* stream); 00070 ~QXmppRosterManager(); 00071 00072 bool isRosterReceived() const; 00073 QStringList getRosterBareJids() const; 00074 QXmppRosterIq::Item getRosterEntry(const QString& bareJid) const; 00075 00076 QStringList getResources(const QString& bareJid) const; 00077 QMap<QString, QXmppPresence> getAllPresencesForBareJid( 00078 const QString& bareJid) const; 00079 QXmppPresence getPresence(const QString& bareJid, 00080 const QString& resource) const; 00081 00083 bool handleStanza(const QDomElement &element); 00085 00086 // deprecated in release 0.4.0 00088 void Q_DECL_DEPRECATED removeRosterEntry(const QString &bareJid); 00090 00091 public slots: 00092 bool acceptSubscription(const QString &bareJid); 00093 bool refuseSubscription(const QString &bareJid); 00094 bool removeItem(const QString &bareJid); 00095 bool renameItem(const QString &bareJid, const QString &name); 00096 bool subscribe(const QString &bareJid); 00097 bool unsubscribe(const QString &bareJid); 00098 00099 signals: 00104 void rosterReceived(); 00105 00107 void presenceChanged(const QString& bareJid, const QString& resource); 00108 00110 // deprecated in release 0.4.0 00111 void rosterChanged(const QString& bareJid); 00113 00121 void subscriptionReceived(const QString& bareJid); 00122 00125 void itemAdded(const QString& bareJid); 00126 00129 void itemChanged(const QString& bareJid); 00130 00133 void itemRemoved(const QString& bareJid); 00134 00135 private slots: 00136 void _q_connected(); 00137 void _q_disconnected(); 00138 void _q_presenceReceived(const QXmppPresence&); 00139 00140 private: 00141 QXmppRosterManagerPrivate *d; 00142 }; 00143 00144 #endif // QXMPPROSTER_H