aboutsummaryrefslogtreecommitdiff
path: root/source/QXmppClient.h
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2010-08-11 07:31:23 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2010-08-11 07:31:23 +0000
commit40c39853816cfab113d79682c34bc76a2c79c357 (patch)
treee4d6a184cf565cb87477339ce738299ff9787bc3 /source/QXmppClient.h
parent551c284e35280b7b91a939fe7352e496ffea402a (diff)
downloadqxmpp-40c39853816cfab113d79682c34bc76a2c79c357.tar.gz
rename "source" directory to "src"
Diffstat (limited to 'source/QXmppClient.h')
-rw-r--r--source/QXmppClient.h259
1 files changed, 0 insertions, 259 deletions
diff --git a/source/QXmppClient.h b/source/QXmppClient.h
deleted file mode 100644
index 1c748bb4..00000000
--- a/source/QXmppClient.h
+++ /dev/null
@@ -1,259 +0,0 @@
-/*
- * Copyright (C) 2008-2010 The QXmpp developers
- *
- * Author:
- * Manjeet Dahiya
- *
- * Source:
- * http://code.google.com/p/qxmpp
- *
- * This file is a part of QXmpp library.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- */
-
-#ifndef QXMPPCLIENT_H
-#define QXMPPCLIENT_H
-
-#include <QObject>
-#include <QTcpSocket>
-#include <QHash>
-#include <QVariant>
-
-#include "QXmppConfiguration.h"
-#include "QXmppLogger.h"
-#include "QXmppPresence.h"
-
-class QXmppStream;
-class QXmppPresence;
-class QXmppMessage;
-class QXmppPacket;
-class QXmppIq;
-class QXmppInvokable;
-class QXmppRpcInvokeIq;
-class QXmppRemoteMethod;
-struct QXmppRemoteMethodResult;
-
-// managers
-class QXmppArchiveManager;
-class QXmppCallManager;
-class QXmppDiscoveryIq;
-class QXmppMucManager;
-class QXmppReconnectionManager;
-class QXmppRosterManager;
-class QXmppTransferManager;
-class QXmppVCardManager;
-
-/// \defgroup Core
-
-/// \defgroup Managers
-
-/// \brief The QXmppClient class is the main class for using QXmpp.
-///
-/// It provides the user all the required functionality to connect to the server
-/// and perform operations afterwards.
-///
-/// This class will provide the handle/reference to QXmppRosterManager (roster management),
-/// QXmppVCardManager (vCard manager), QXmppReconnectionManager (reconnection
-/// mechanism) and QXmppTransferManager (file transfers).
-///
-/// By default, a reconnection mechanism exists, which makes sure of reconnecting
-/// to the server on disconnections due to an error. User can have a custom
-/// reconnection mechanism as well.
-///
-/// For removing QXmpp dependency in QtGui, use DEFINES += QXMPP_NO_GUI
-/// in the source.pro file and build as usual.
-///
-/// \ingroup Core
-
-class QXmppClient : public QObject
-{
- Q_OBJECT
-
-public:
- /// An enumeration for type of error.
- /// Error could come due a TCP socket or XML stream or due to various stanzas.
- enum Error
- {
- SocketError, ///< Error due to TCP socket
- KeepAliveError, ///< Error due to no response to a keep alive
- XmppStreamError, ///< Error due to XML stream
- };
-
- QXmppClient(QObject *parent = 0);
- ~QXmppClient();
- void connectToServer(const QString& host,
- const QString& user,
- const QString& passwd,
- const QString& domain,
- int port = 5222,
- const QXmppPresence& initialPresence =
- QXmppPresence());
- void connectToServer(const QString& host,
- const QString& bareJid,
- const QString& passwd,
- int port = 5222,
- const QXmppPresence& initialPresence =
- QXmppPresence());
- void connectToServer(const QXmppConfiguration&,
- const QXmppPresence& initialPresence =
- QXmppPresence());
- void disconnect();
- bool isConnected() const;
-
- QXmppPresence clientPresence() const;
- void setClientPresence(const QXmppPresence &presence);
-
- QXmppConfiguration &configuration();
- QXmppLogger *logger();
- void setLogger(QXmppLogger *logger);
-
- QAbstractSocket::SocketError socketError();
- QXmppStanza::Error::Condition xmppStreamError();
-
- QXmppArchiveManager& archiveManager();
- QXmppCallManager& callManager();
- QXmppMucManager& mucManager();
- QXmppRosterManager& rosterManager();
- QXmppTransferManager& transferManager();
- QXmppVCardManager& vCardManager();
-
- // FIXME: these accessors should be deprecated in favour of
- // versions without the "get".
- QXmppReconnectionManager* getReconnectionManager();
- bool setReconnectionManager(QXmppReconnectionManager*);
-
- /// \cond
- // FIXME: these methods are not in keeping with the "manager" approach,
- // the whole RPC support either needs some love or should be pulled.
- void addInvokableInterface( QXmppInvokable *interface );
- QXmppRemoteMethodResult callRemoteMethod( const QString &jid,
- const QString &interface,
- const QVariant &arg1 = QVariant(),
- const QVariant &arg2 = QVariant(),
- const QVariant &arg3 = QVariant(),
- const QVariant &arg4 = QVariant(),
- const QVariant &arg5 = QVariant(),
- const QVariant &arg6 = QVariant(),
- const QVariant &arg7 = QVariant(),
- const QVariant &arg8 = QVariant(),
- const QVariant &arg9 = QVariant(),
- const QVariant &arg10 = QVariant() );
-
- // deprecated accessors, use the form without "get" instead
- const QXmppPresence Q_DECL_DEPRECATED & getClientPresence() const;
- QXmppConfiguration Q_DECL_DEPRECATED & getConfiguration();
- const QXmppConfiguration Q_DECL_DEPRECATED & getConfiguration() const;
- QXmppRosterManager Q_DECL_DEPRECATED & getRoster();
- QXmppVCardManager Q_DECL_DEPRECATED & getVCardManager();
- QAbstractSocket::SocketError Q_DECL_DEPRECATED getSocketError();
- QXmppStanza::Error::Condition Q_DECL_DEPRECATED getXmppStreamError();
-
- // deprecated methods, use setClientPresence(QXmppPresence) instead.
- void Q_DECL_DEPRECATED setClientPresence(const QString& statusText);
- void Q_DECL_DEPRECATED setClientPresence(QXmppPresence::Type presenceType);
- void Q_DECL_DEPRECATED setClientPresence(QXmppPresence::Status::Type statusType);
- /// \endcond
-
-signals:
-
- /// This signal is emitted when the client connects sucessfully to the XMPP
- /// server i.e. when a successful XMPP connection is established.
- /// XMPP Connection involves following sequential steps:
- /// - TCP socket connection
- /// - Client sends start stream
- /// - Server sends start stream
- /// - TLS negotiation (encryption)
- /// - Authentication
- /// - Resource binding
- /// - Session establishment
- ///
- /// After all these steps a successful XMPP connection is established and
- /// connected() signal is emitted.
- ///
- /// After the connected() signal is emitted QXmpp will send the roster request
- /// to the server. On receiving the roster, QXmpp will emit
- /// QXmppRosterManager::rosterReceived(). After this signal, QXmppRosterManager object gets
- /// populated and you can use rosterManager() to get the handle of QXmppRosterManager object.
- ///
- void connected();
-
- /// This signal is emitted when the XMPP connection disconnects.
- ///
- void disconnected();
-
- /// This signal is emitted when the XMPP connection encounters any error.
- /// The QXmppClient::Error parameter specifies the type of error occured.
- /// It could be due to TCP socket or the xml stream or the stanza.
- /// Depending upon the type of error occured use the respective get function to
- /// know the error.
- void error(QXmppClient::Error);
-
- /// This signal is emitted when a raw XML element is received. You can
- /// connect to this signal if you want to handle raw XML elements yourself.
- ///
- /// WARNING: this signal is experimental and you can seriously disrupt
- /// packet handling when using it, so use with care and at your own risk.
- ///
- /// Set 'handled' to true if you handled the element yourself and you wish
- /// to bypass normal handling for the element. If you do this, QXmpp will
- /// do absolutely no processing itself, so do not expect the usual signals
- /// to be emitted.
- void elementReceived(const QDomElement &element, bool &handled);
-
- /// Notifies that an XMPP message stanza is received. The QXmppMessage
- /// parameter contains the details of the message sent to this client.
- /// In other words whenever someone sends you a message this signal is
- /// emitted.
- void messageReceived(const QXmppMessage&);
-
- /// Notifies that an XMPP presence stanza is received. The QXmppPresence
- /// parameter contains the details of the presence sent to this client.
- /// This signal is emitted when someone login/logout or when someone's status
- /// changes Busy, Idle, Invisible etc.
- void presenceReceived(const QXmppPresence&);
-
- /// Notifies that an XMPP iq stanza is received. The QXmppIq
- /// parameter contains the details of the iq sent to this client.
- /// IQ stanzas provide a structured request-response mechanism. Roster
- /// management, setting-getting vCards etc is done using iq stanzas.
- void iqReceived(const QXmppIq&);
-
- /// Notifies that an XMPP service discovery iq stanza is received.
- void discoveryIqReceived(const QXmppDiscoveryIq&);
-
- /// This signal is emitted to send logging messages.
- void logMessage(QXmppLogger::MessageType type, const QString &msg);
-
-public slots:
- bool sendPacket(const QXmppPacket&);
- void sendMessage(const QString& bareJid, const QString& message);
-
-private slots:
- void invokeInterfaceMethod( const QXmppRpcInvokeIq &iq );
- void xmppConnected();
-
-private:
- QXmppStream* m_stream; ///< Pointer to QXmppStream object a wrapper over
- ///< TCP socket and XMPP protocol
- QXmppPresence m_clientPresence; ///< Stores the current presence of the connected client
- QXmppArchiveManager *m_archiveManager; ///< Pointer to the archive manager
- QXmppCallManager *m_callManager; ///< Pointer to the call manager
- QXmppMucManager* m_mucManager; ///< Pointer to the multi-user chat manager
- QXmppReconnectionManager* m_reconnectionManager; ///< Pointer to the reconnection manager
- QXmppRosterManager *m_rosterManager; ///< Pointer to the roster manager
- QXmppTransferManager *m_transferManager;///< Pointer to the transfer manager
- QXmppVCardManager *m_vCardManager; ///< Pointer to the vCard manager
- QHash<QString,QXmppInvokable *> m_interfaces;
-};
-
-#endif // QXMPPCLIENT_H