From 662d915c2c8eaacd376edb4a7111fa69821cd482 Mon Sep 17 00:00:00 2001 From: Manjeet Dahiya Date: Fri, 4 Jun 2010 06:46:23 +0000 Subject: add initial files from Sjors --- source/server/QXmppClientServer.h | 92 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 source/server/QXmppClientServer.h (limited to 'source/server/QXmppClientServer.h') diff --git a/source/server/QXmppClientServer.h b/source/server/QXmppClientServer.h new file mode 100644 index 00000000..6a3a49b9 --- /dev/null +++ b/source/server/QXmppClientServer.h @@ -0,0 +1,92 @@ +/* + * Copyright (C) 2010 Sjors Gielen, Manjeet Dahiya + * + * Authors: + * Manjeet Dahiya + * Sjors Gielen + * + * 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 QXMPPCLIENTSERVER_H +#define QXMPPCLIENTSERVER_H + +#include +#include + +#include "QXmppClient.h" + +/** + * @brief The QXmppClientServer receives connections from clients. + */ + +class QXmppClientServer : public QObject +{ + Q_OBJECT + +public: + // should probably be moved to QXmppStream + enum Error + { + SocketError, ///< Error due to TCP socket + KeepAliveError, ///< Error due to no response to a keep alive + XmppStreamError, ///< Error due to XML stream + }; + + QXmppClientServer(QSslSocket *serverSocket, + const QByteArray &parseData = QByteArray(), QObject *parent = 0); + ~QXmppClientServer(); + + void disconnect(); + +signals: + + /// 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); + + /// 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&); + +public: + QAbstractSocket::SocketError getSocketError(); + + QXmppStanza::Error::Condition getXmppStreamError(); + + QXmppLogger *logger(); + void setLogger(QXmppLogger *logger); + +public slots: + void sendPacket(const QXmppPacket&); + +private: + QXmppLogger* m_logger; + QXmppStream* m_stream; ///< Pointer to QXmppStream object, a wrapper over + ///< TCP socket and XMPP protocol +}; + +#endif // QXMPPCLIENT_H -- cgit v1.2.3