aboutsummaryrefslogtreecommitdiff
path: root/source/QXmppClient.cpp
diff options
context:
space:
mode:
authorManjeet Dahiya <manjeetdahiya@gmail.com>2009-10-26 17:01:09 +0000
committerManjeet Dahiya <manjeetdahiya@gmail.com>2009-10-26 17:01:09 +0000
commit239b2b15c3cfd9e4d7cc085ed31645d6ae6942ee (patch)
tree928a71086a6d328c97ffc468ba4ceb41fc7b6043 /source/QXmppClient.cpp
parentf988517a9ba9d9a7753270f1cb0c4c2212c7ac22 (diff)
downloadqxmpp-239b2b15c3cfd9e4d7cc085ed31645d6ae6942ee.tar.gz
Fix for
Issue 23: QXmppBind compilation error on macosx starting from r23 Issue 26: examples fail to link on macosx and linux Issue 24: all text files should have the svn property eol-style set Contributed by: Marco Molteni
Diffstat (limited to 'source/QXmppClient.cpp')
-rw-r--r--source/QXmppClient.cpp678
1 files changed, 339 insertions, 339 deletions
diff --git a/source/QXmppClient.cpp b/source/QXmppClient.cpp
index 4618da55..0538224f 100644
--- a/source/QXmppClient.cpp
+++ b/source/QXmppClient.cpp
@@ -1,339 +1,339 @@
-/*
- * Copyright (C) 2008-2009 Manjeet Dahiya
- *
- * 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.
- *
- */
-
-
-#include "QXmppClient.h"
-#include "QXmppStream.h"
-#include "QXmppRoster.h"
-#include "QXmppMessage.h"
-#include "QXmppReconnectionManager.h"
-
-/// Creates a QXmppClient object.
-/// \param parent is passed to the QObject's contructor.
-/// The default value is 0.
-
-QXmppClient::QXmppClient(QObject *parent)
- : QObject(parent), m_stream(0), m_clientPrecence(QXmppPresence::Available),
- m_reconnectionManager(0)
-{
- m_stream = new QXmppStream(this);
-
- bool check = connect(m_stream, SIGNAL(messageReceived(const QXmppMessage&)),
- this, SIGNAL(messageReceived(const QXmppMessage&)));
- Q_ASSERT(check);
-
- check = connect(m_stream, SIGNAL(presenceReceived(const QXmppPresence&)),
- this, SIGNAL(presenceReceived(const QXmppPresence&)));
- Q_ASSERT(check);
-
- check = connect(m_stream, SIGNAL(iqReceived(const QXmppIq&)), this,
- SIGNAL(iqReceived(const QXmppIq&)));
-
- check = connect(m_stream, SIGNAL(disconnected()), this,
- SIGNAL(disconnected()));
- Q_ASSERT(check);
-
- check = connect(m_stream, SIGNAL(xmppConnected()), this,
- SIGNAL(connected()));
- Q_ASSERT(check);
-
- check = connect(m_stream, SIGNAL(error(QXmppClient::Error)), this,
- SIGNAL(error(QXmppClient::Error)));
- Q_ASSERT(check);
-
- check = setReconnectionManager(new QXmppReconnectionManager(this));
- Q_ASSERT(check);
-}
-
-/// Destroys the QXmppClient object.
-///
-
-QXmppClient::~QXmppClient()
-{
-}
-
-/// Returns a modifiable reference to the current configuration of QXmppClient.
-/// \return Reference to the QXmppClient's configuration for the connection.
-
-QXmppConfiguration& QXmppClient::getConfiguration()
-{
- return m_config;
-}
-
-/// Overloaded function. It returns a const reference to the current configuration
-/// of QXmppClient.
-/// \return Constant reference to the QXmppClient's configuration for the connection.
-
-const QXmppConfiguration& QXmppClient::getConfiguration() const
-{
- return m_config;
-}
-
-/// Attempts to connect to the XMPP server. Server deatils and other configurations
-/// are specified using the config parameter. Use signals connected(), error(QXmppClient::Error)
-/// and disconnected() to know the status of the connection.
-/// \param config Specifies the configuration object for connecting the XMPP server.
-/// This contains the host name, user, passwd etc. See QXmppConfiguration for details.
-/// \param initialPresence The initial presence which will be set for this user
-/// after establishing the session. The default value is QXmppPresence::Available
-
-void QXmppClient::connectToServer(const QXmppConfiguration& config,
- const QXmppPresence& initialPresence)
-{
- m_config = config;
-
- if(!m_config.getAutoReconnectionEnabled())
- {
- delete m_reconnectionManager;
- m_reconnectionManager = 0;
- }
-
- m_clientPrecence = initialPresence;
-
- m_stream->connect();
-}
-
-/// Overloaded function.
-/// \param host host name of the XMPP server where connection has to be made
-/// (e.g. "jabber.org" and "talk.google.com"). It can also be an IP address in
-/// the form of a string (e.g. "192.168.1.25").
-/// \param user Username of the account at the specified XMPP server. It should
-/// be the name without the domain name. E.g. "qxmpp.test1" and not
-/// "qxmpp.test1@gmail.com"
-/// \param passwd Password for the specified username
-/// \param domain Domain name e.g. "gmail.com" and "jabber.org".
-/// \param port Port number at which the XMPP server is listening. The default
-/// value is 5222.
-/// \param initialPresence The initial presence which will be set for this user
-/// after establishing the session. The default value is QXmppPresence::Available
-
-void QXmppClient::connectToServer(const QString& host, const QString& user,
- const QString& passwd, const QString& domain,
- int port,
- const QXmppPresence& initialPresence)
-{
- m_config.setHost(host);
- m_config.setUser(user);
- m_config.setPasswd(passwd);
- m_config.setDomain(domain);
- m_config.setPort(port);
-
- m_clientPrecence = initialPresence;
-
- m_stream->connect();
-}
-
-/// After successfully connecting to the server use this function to send
-/// stanzas to the server. This function can solely be used to send various kind
-/// of stanzas to the server. QXmppPacket is a parent class of all the stanzas
-/// QXmppMessage, QXmppPresence, QXmppIq, QXmppBind, QXmppRosterIq, QXmppSession
-/// and QXmppVCard.
-///
-/// Following code snippet illustrates how to send a message using this function:
-/// \code
-/// QXmppMessage message(from, to, message);
-/// client.sendPacket(message);
-/// \endcode
-///
-/// \param packet A valid XMPP stanza. It can an iq, a message or a presence stanza.
-///
-
-void QXmppClient::sendPacket(const QXmppPacket& packet)
-{
- if(m_stream)
- {
- m_stream->sendPacket(packet);
- }
-}
-
-/// Disconnects the client and the current presence of client changes to
-/// QXmppPresence::Unavailable and statatus text changes to "Logged out".
-///
-/// \note Make sure that the clientPresence is changed to
-/// QXmppPresence::Available, if you are again calling connectToServer() after
-/// calling the disconnect() function.
-///
-
-void QXmppClient::disconnect()
-{
- m_clientPrecence.setType(QXmppPresence::Unavailable);
- m_clientPrecence.getStatus().setType(QXmppPresence::Status::Online);
- m_clientPrecence.getStatus().setStatusText("Logged out");
- sendPacket(m_clientPrecence);
- if(m_stream)
- m_stream->disconnect();
-}
-
-/// Returns the reference to QXmppRoster object of the client.
-/// \return Reference to the roster object of the connected client. Use this to
-/// get the list of friends in the roster and there presence information.
-///
-
-QXmppRoster& QXmppClient::getRoster()
-{
- return m_stream->getRoster();
-}
-
-/// Utility function to send message to all the resources associated with the
-/// specified bareJid.
-///
-/// \param bareJid bareJid of the receiving entity
-/// \param message Message string to be sent.
-
-void QXmppClient::sendMessage(const QString& bareJid, const QString& message)
-{
- QStringList resources = getRoster().getResources(bareJid);
- for(int i = 0; i < resources.size(); ++i)
- {
- sendPacket(QXmppMessage("", bareJid + "/" + resources.at(i), message));
- }
-}
-
-/// Changes the presence of the connected client.
-///
-/// \param presence QXmppPresence object
-///
-
-void QXmppClient::setClientPresence(const QXmppPresence& presence)
-{
- m_clientPrecence = presence;
- sendPacket(m_clientPrecence);
-}
-
-/// Overloaded function.
-///
-/// It only changes the status text.
-///
-/// \param statusText New status message string
-///
-
-void QXmppClient::setClientPresence(const QString& statusText)
-{
- m_clientPrecence.getStatus().setStatusText(statusText);
- sendPacket(m_clientPrecence);
-}
-
-/// Overloaded function.
-///
-/// It only changes the QXmppPresence::Type.
-///
-/// \param presenceType New QXmppPresence::Type
-///
-
-void QXmppClient::setClientPresence(QXmppPresence::Type presenceType)
-{
- if(presenceType == QXmppPresence::Unavailable)
- {
- disconnect();
- }
- else
- {
- m_clientPrecence.setType(presenceType);
- sendPacket(m_clientPrecence);
- }
-}
-
-/// Overloaded function.
-///
-/// It only changes the QXmppPresence::Status::Type.
-///
-/// \param statusType New QXmppPresence::Status::Type
-///
-
-void QXmppClient::setClientPresence(QXmppPresence::Status::Type statusType)
-{
- m_clientPrecence.getStatus().setType(statusType);
- sendPacket(m_clientPrecence);
-}
-
-/// Function to get the client's current presence.
-///
-/// \return Constant reference to the client's presence object
-///
-
-const QXmppPresence& QXmppClient::getClientPresence() const
-{
- return m_clientPrecence;
-}
-
-/// Function to get reconnection manager. By default there exists a reconnection
-/// manager. See QXmppReconnectionManager for more details of the reconnection
-/// mechanism.
-///
-/// \return Pointer to QXmppReconnectionManager
-///
-
-QXmppReconnectionManager* QXmppClient::getReconnectionManager()
-{
- return m_reconnectionManager;
-}
-
-/// Sets the user defined reconnection manager.
-///
-/// \return true if all the signal-slot connections are made correctly.
-///
-
-bool QXmppClient::setReconnectionManager(QXmppReconnectionManager*
- reconnectionManager)
-{
- if(!reconnectionManager)
- return false;
-
- if(m_reconnectionManager)
- delete m_reconnectionManager;
-
- m_reconnectionManager = reconnectionManager;
-
- bool check = connect(this, SIGNAL(connected()), m_reconnectionManager,
- SLOT(connected()));
- Q_ASSERT(check);
- if(!check)
- return false;
-
- check = connect(this, SIGNAL(error(QXmppClient::Error)),
- m_reconnectionManager, SLOT(error(QXmppClient::Error)));
- Q_ASSERT(check);
- if(!check)
- return false;
-
- return true;
-}
-
-/// Returns the socket error if QXmppClient::Error is QXmppClient::SocketError.
-///
-/// \return QAbstractSocket::SocketError
-///
-
-QAbstractSocket::SocketError QXmppClient::getSocketError()
-{
- return m_stream->getSocketError();
-}
-
-/// Returns the reference to QXmppVCardManager, implimentation of XEP-0054.
-/// http://xmpp.org/extensions/xep-0054.html
-///
-
-QXmppVCardManager& QXmppClient::getVCardManager()
-{
- return m_stream->getVCardManager();
-}
+/*
+ * Copyright (C) 2008-2009 Manjeet Dahiya
+ *
+ * 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.
+ *
+ */
+
+
+#include "QXmppClient.h"
+#include "QXmppStream.h"
+#include "QXmppRoster.h"
+#include "QXmppMessage.h"
+#include "QXmppReconnectionManager.h"
+
+/// Creates a QXmppClient object.
+/// \param parent is passed to the QObject's contructor.
+/// The default value is 0.
+
+QXmppClient::QXmppClient(QObject *parent)
+ : QObject(parent), m_stream(0), m_clientPrecence(QXmppPresence::Available),
+ m_reconnectionManager(0)
+{
+ m_stream = new QXmppStream(this);
+
+ bool check = connect(m_stream, SIGNAL(messageReceived(const QXmppMessage&)),
+ this, SIGNAL(messageReceived(const QXmppMessage&)));
+ Q_ASSERT(check);
+
+ check = connect(m_stream, SIGNAL(presenceReceived(const QXmppPresence&)),
+ this, SIGNAL(presenceReceived(const QXmppPresence&)));
+ Q_ASSERT(check);
+
+ check = connect(m_stream, SIGNAL(iqReceived(const QXmppIq&)), this,
+ SIGNAL(iqReceived(const QXmppIq&)));
+
+ check = connect(m_stream, SIGNAL(disconnected()), this,
+ SIGNAL(disconnected()));
+ Q_ASSERT(check);
+
+ check = connect(m_stream, SIGNAL(xmppConnected()), this,
+ SIGNAL(connected()));
+ Q_ASSERT(check);
+
+ check = connect(m_stream, SIGNAL(error(QXmppClient::Error)), this,
+ SIGNAL(error(QXmppClient::Error)));
+ Q_ASSERT(check);
+
+ check = setReconnectionManager(new QXmppReconnectionManager(this));
+ Q_ASSERT(check);
+}
+
+/// Destroys the QXmppClient object.
+///
+
+QXmppClient::~QXmppClient()
+{
+}
+
+/// Returns a modifiable reference to the current configuration of QXmppClient.
+/// \return Reference to the QXmppClient's configuration for the connection.
+
+QXmppConfiguration& QXmppClient::getConfiguration()
+{
+ return m_config;
+}
+
+/// Overloaded function. It returns a const reference to the current configuration
+/// of QXmppClient.
+/// \return Constant reference to the QXmppClient's configuration for the connection.
+
+const QXmppConfiguration& QXmppClient::getConfiguration() const
+{
+ return m_config;
+}
+
+/// Attempts to connect to the XMPP server. Server deatils and other configurations
+/// are specified using the config parameter. Use signals connected(), error(QXmppClient::Error)
+/// and disconnected() to know the status of the connection.
+/// \param config Specifies the configuration object for connecting the XMPP server.
+/// This contains the host name, user, passwd etc. See QXmppConfiguration for details.
+/// \param initialPresence The initial presence which will be set for this user
+/// after establishing the session. The default value is QXmppPresence::Available
+
+void QXmppClient::connectToServer(const QXmppConfiguration& config,
+ const QXmppPresence& initialPresence)
+{
+ m_config = config;
+
+ if(!m_config.getAutoReconnectionEnabled())
+ {
+ delete m_reconnectionManager;
+ m_reconnectionManager = 0;
+ }
+
+ m_clientPrecence = initialPresence;
+
+ m_stream->connect();
+}
+
+/// Overloaded function.
+/// \param host host name of the XMPP server where connection has to be made
+/// (e.g. "jabber.org" and "talk.google.com"). It can also be an IP address in
+/// the form of a string (e.g. "192.168.1.25").
+/// \param user Username of the account at the specified XMPP server. It should
+/// be the name without the domain name. E.g. "qxmpp.test1" and not
+/// "qxmpp.test1@gmail.com"
+/// \param passwd Password for the specified username
+/// \param domain Domain name e.g. "gmail.com" and "jabber.org".
+/// \param port Port number at which the XMPP server is listening. The default
+/// value is 5222.
+/// \param initialPresence The initial presence which will be set for this user
+/// after establishing the session. The default value is QXmppPresence::Available
+
+void QXmppClient::connectToServer(const QString& host, const QString& user,
+ const QString& passwd, const QString& domain,
+ int port,
+ const QXmppPresence& initialPresence)
+{
+ m_config.setHost(host);
+ m_config.setUser(user);
+ m_config.setPasswd(passwd);
+ m_config.setDomain(domain);
+ m_config.setPort(port);
+
+ m_clientPrecence = initialPresence;
+
+ m_stream->connect();
+}
+
+/// After successfully connecting to the server use this function to send
+/// stanzas to the server. This function can solely be used to send various kind
+/// of stanzas to the server. QXmppPacket is a parent class of all the stanzas
+/// QXmppMessage, QXmppPresence, QXmppIq, QXmppBind, QXmppRosterIq, QXmppSession
+/// and QXmppVCard.
+///
+/// Following code snippet illustrates how to send a message using this function:
+/// \code
+/// QXmppMessage message(from, to, message);
+/// client.sendPacket(message);
+/// \endcode
+///
+/// \param packet A valid XMPP stanza. It can an iq, a message or a presence stanza.
+///
+
+void QXmppClient::sendPacket(const QXmppPacket& packet)
+{
+ if(m_stream)
+ {
+ m_stream->sendPacket(packet);
+ }
+}
+
+/// Disconnects the client and the current presence of client changes to
+/// QXmppPresence::Unavailable and statatus text changes to "Logged out".
+///
+/// \note Make sure that the clientPresence is changed to
+/// QXmppPresence::Available, if you are again calling connectToServer() after
+/// calling the disconnect() function.
+///
+
+void QXmppClient::disconnect()
+{
+ m_clientPrecence.setType(QXmppPresence::Unavailable);
+ m_clientPrecence.getStatus().setType(QXmppPresence::Status::Online);
+ m_clientPrecence.getStatus().setStatusText("Logged out");
+ sendPacket(m_clientPrecence);
+ if(m_stream)
+ m_stream->disconnect();
+}
+
+/// Returns the reference to QXmppRoster object of the client.
+/// \return Reference to the roster object of the connected client. Use this to
+/// get the list of friends in the roster and there presence information.
+///
+
+QXmppRoster& QXmppClient::getRoster()
+{
+ return m_stream->getRoster();
+}
+
+/// Utility function to send message to all the resources associated with the
+/// specified bareJid.
+///
+/// \param bareJid bareJid of the receiving entity
+/// \param message Message string to be sent.
+
+void QXmppClient::sendMessage(const QString& bareJid, const QString& message)
+{
+ QStringList resources = getRoster().getResources(bareJid);
+ for(int i = 0; i < resources.size(); ++i)
+ {
+ sendPacket(QXmppMessage("", bareJid + "/" + resources.at(i), message));
+ }
+}
+
+/// Changes the presence of the connected client.
+///
+/// \param presence QXmppPresence object
+///
+
+void QXmppClient::setClientPresence(const QXmppPresence& presence)
+{
+ m_clientPrecence = presence;
+ sendPacket(m_clientPrecence);
+}
+
+/// Overloaded function.
+///
+/// It only changes the status text.
+///
+/// \param statusText New status message string
+///
+
+void QXmppClient::setClientPresence(const QString& statusText)
+{
+ m_clientPrecence.getStatus().setStatusText(statusText);
+ sendPacket(m_clientPrecence);
+}
+
+/// Overloaded function.
+///
+/// It only changes the QXmppPresence::Type.
+///
+/// \param presenceType New QXmppPresence::Type
+///
+
+void QXmppClient::setClientPresence(QXmppPresence::Type presenceType)
+{
+ if(presenceType == QXmppPresence::Unavailable)
+ {
+ disconnect();
+ }
+ else
+ {
+ m_clientPrecence.setType(presenceType);
+ sendPacket(m_clientPrecence);
+ }
+}
+
+/// Overloaded function.
+///
+/// It only changes the QXmppPresence::Status::Type.
+///
+/// \param statusType New QXmppPresence::Status::Type
+///
+
+void QXmppClient::setClientPresence(QXmppPresence::Status::Type statusType)
+{
+ m_clientPrecence.getStatus().setType(statusType);
+ sendPacket(m_clientPrecence);
+}
+
+/// Function to get the client's current presence.
+///
+/// \return Constant reference to the client's presence object
+///
+
+const QXmppPresence& QXmppClient::getClientPresence() const
+{
+ return m_clientPrecence;
+}
+
+/// Function to get reconnection manager. By default there exists a reconnection
+/// manager. See QXmppReconnectionManager for more details of the reconnection
+/// mechanism.
+///
+/// \return Pointer to QXmppReconnectionManager
+///
+
+QXmppReconnectionManager* QXmppClient::getReconnectionManager()
+{
+ return m_reconnectionManager;
+}
+
+/// Sets the user defined reconnection manager.
+///
+/// \return true if all the signal-slot connections are made correctly.
+///
+
+bool QXmppClient::setReconnectionManager(QXmppReconnectionManager*
+ reconnectionManager)
+{
+ if(!reconnectionManager)
+ return false;
+
+ if(m_reconnectionManager)
+ delete m_reconnectionManager;
+
+ m_reconnectionManager = reconnectionManager;
+
+ bool check = connect(this, SIGNAL(connected()), m_reconnectionManager,
+ SLOT(connected()));
+ Q_ASSERT(check);
+ if(!check)
+ return false;
+
+ check = connect(this, SIGNAL(error(QXmppClient::Error)),
+ m_reconnectionManager, SLOT(error(QXmppClient::Error)));
+ Q_ASSERT(check);
+ if(!check)
+ return false;
+
+ return true;
+}
+
+/// Returns the socket error if QXmppClient::Error is QXmppClient::SocketError.
+///
+/// \return QAbstractSocket::SocketError
+///
+
+QAbstractSocket::SocketError QXmppClient::getSocketError()
+{
+ return m_stream->getSocketError();
+}
+
+/// Returns the reference to QXmppVCardManager, implimentation of XEP-0054.
+/// http://xmpp.org/extensions/xep-0054.html
+///
+
+QXmppVCardManager& QXmppClient::getVCardManager()
+{
+ return m_stream->getVCardManager();
+}