00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef QXMPPCLIENT_H
00025 #define QXMPPCLIENT_H
00026
00027 #include <QObject>
00028 #include <QTcpSocket>
00029 #include <QHash>
00030 #include <QVariant>
00031
00032 #include "QXmppConfiguration.h"
00033 #include "QXmppLogger.h"
00034 #include "QXmppPresence.h"
00035
00036 class QXmppClientPrivate;
00037 class QXmppPresence;
00038 class QXmppMessage;
00039 class QXmppPacket;
00040 class QXmppIq;
00041 class QXmppInvokable;
00042 class QXmppRpcInvokeIq;
00043 class QXmppRemoteMethod;
00044 struct QXmppRemoteMethodResult;
00045
00046
00047 class QXmppArchiveManager;
00048 class QXmppCallManager;
00049 class QXmppDiscoveryIq;
00050 class QXmppMucManager;
00051 class QXmppReconnectionManager;
00052 class QXmppRosterManager;
00053 class QXmppTransferManager;
00054 class QXmppVCardManager;
00055
00057
00059
00077
00078 class QXmppClient : public QObject
00079 {
00080 Q_OBJECT
00081
00082 public:
00085 enum Error
00086 {
00087 SocketError,
00088 KeepAliveError,
00089 XmppStreamError,
00090 };
00091
00092 QXmppClient(QObject *parent = 0);
00093 ~QXmppClient();
00094 void connectToServer(const QString& host,
00095 const QString& user,
00096 const QString& passwd,
00097 const QString& domain,
00098 int port = 5222,
00099 const QXmppPresence& initialPresence =
00100 QXmppPresence());
00101 void connectToServer(const QString& host,
00102 const QString& bareJid,
00103 const QString& passwd,
00104 int port = 5222,
00105 const QXmppPresence& initialPresence =
00106 QXmppPresence());
00107 void connectToServer(const QXmppConfiguration&,
00108 const QXmppPresence& initialPresence =
00109 QXmppPresence());
00110 void disconnectFromServer();
00111 bool isConnected() const;
00112
00113 QXmppPresence clientPresence() const;
00114 void setClientPresence(const QXmppPresence &presence);
00115
00116 QXmppConfiguration &configuration();
00117 QXmppLogger *logger();
00118 void setLogger(QXmppLogger *logger);
00119
00120 QAbstractSocket::SocketError socketError();
00121 QXmppStanza::Error::Condition xmppStreamError();
00122
00123 QXmppArchiveManager& archiveManager();
00124 QXmppCallManager& callManager();
00125 QXmppMucManager& mucManager();
00126 QXmppRosterManager& rosterManager();
00127 QXmppTransferManager& transferManager();
00128 QXmppVCardManager& vCardManager();
00129
00130 QXmppReconnectionManager* reconnectionManager();
00131 bool setReconnectionManager(QXmppReconnectionManager*);
00132
00134
00135
00136 void addInvokableInterface( QXmppInvokable *interface );
00137 QXmppRemoteMethodResult callRemoteMethod( const QString &jid,
00138 const QString &interface,
00139 const QVariant &arg1 = QVariant(),
00140 const QVariant &arg2 = QVariant(),
00141 const QVariant &arg3 = QVariant(),
00142 const QVariant &arg4 = QVariant(),
00143 const QVariant &arg5 = QVariant(),
00144 const QVariant &arg6 = QVariant(),
00145 const QVariant &arg7 = QVariant(),
00146 const QVariant &arg8 = QVariant(),
00147 const QVariant &arg9 = QVariant(),
00148 const QVariant &arg10 = QVariant() );
00149
00150
00151 const QXmppPresence Q_DECL_DEPRECATED & getClientPresence() const;
00152 QXmppConfiguration Q_DECL_DEPRECATED & getConfiguration();
00153 const QXmppConfiguration Q_DECL_DEPRECATED & getConfiguration() const;
00154 QXmppReconnectionManager* Q_DECL_DEPRECATED getReconnectionManager();
00155 QXmppRosterManager Q_DECL_DEPRECATED & getRoster();
00156 QXmppVCardManager Q_DECL_DEPRECATED & getVCardManager();
00157 QAbstractSocket::SocketError Q_DECL_DEPRECATED getSocketError();
00158 QXmppStanza::Error::Condition Q_DECL_DEPRECATED getXmppStreamError();
00159
00161 void Q_DECL_DEPRECATED disconnect();
00162
00163
00164 void Q_DECL_DEPRECATED setClientPresence(const QString& statusText);
00165 void Q_DECL_DEPRECATED setClientPresence(QXmppPresence::Type presenceType);
00166 void Q_DECL_DEPRECATED setClientPresence(QXmppPresence::Status::Type statusType);
00168
00169 signals:
00170
00190 void connected();
00191
00194 void disconnected();
00195
00201 void error(QXmppClient::Error);
00202
00213 void elementReceived(const QDomElement &element, bool &handled);
00214
00219 void messageReceived(const QXmppMessage&);
00220
00225 void presenceReceived(const QXmppPresence&);
00226
00231 void iqReceived(const QXmppIq&);
00232
00234 void discoveryIqReceived(const QXmppDiscoveryIq&);
00235
00237 void logMessage(QXmppLogger::MessageType type, const QString &msg);
00238
00239 public slots:
00240 bool sendPacket(const QXmppPacket&);
00241 void sendMessage(const QString& bareJid, const QString& message);
00242
00243 private slots:
00244 void invokeInterfaceMethod( const QXmppRpcInvokeIq &iq );
00245 void xmppConnected();
00246
00247 private:
00248 QXmppClientPrivate * const d;
00249 };
00250
00251 #endif // QXMPPCLIENT_H