QXmpp Version:0.7.6

- Main Page
- Modules
- Classes
- Files

- File List

All Classes Functions Variables Enumerations Enumerator Properties Groups
QXmppServer.h
1 /*
2 * Copyright (C) 2008-2012 The QXmpp developers
3 *
4 * Author:
5 * Jeremy Lainé
6 *
7 * Source:
8 * http://code.google.com/p/qxmpp
9 *
10 * This file is a part of QXmpp library.
11 *
12 * This library is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU Lesser General Public
14 * License as published by the Free Software Foundation; either
15 * version 2.1 of the License, or (at your option) any later version.
16 *
17 * This library is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 * Lesser General Public License for more details.
21 *
22 */
23
24 #ifndef QXMPPSERVER_H
25 #define QXMPPSERVER_H
26
27 #include <QTcpServer>
28 #include <QVariantMap>
29
30 #include "QXmppLogger.h"
31
32 class QDomElement;
33 class QSslCertificate;
34 class QSslKey;
35 class QSslSocket;
36
37 class QXmppDialback;
38 class QXmppIncomingClient;
39 class QXmppOutgoingServer;
40 class QXmppPasswordChecker;
41 class QXmppPresence;
42 class QXmppServerExtension;
43 class QXmppServerPrivate;
44 class QXmppSslServer;
45 class QXmppStanza;
46 class QXmppStream;
47
58
59 class QXMPP_EXPORT QXmppServer : public QXmppLoggable
60 {
61 Q_OBJECT
62 Q_PROPERTY(QXmppLogger* logger READ logger WRITE setLogger NOTIFY loggerChanged)
63
64 public:
65 QXmppServer(QObject *parent = 0);
66 ~QXmppServer();
67
68 void addExtension(QXmppServerExtension *extension);
69 QList<QXmppServerExtension*> extensions();
70
71 QString domain() const;
72 void setDomain(const QString &domain);
73
74 QXmppLogger *logger();
75 void setLogger(QXmppLogger *logger);
76
77 QXmppPasswordChecker *passwordChecker();
78 void setPasswordChecker(QXmppPasswordChecker *checker);
79
80 QVariantMap statistics() const;
81
82 void addCaCertificates(const QString &caCertificates);
83 void setLocalCertificate(const QString &path);
84 void setPrivateKey(const QString &path);
85
86 void close();
87 bool listenForClients(const QHostAddress &address = QHostAddress::Any, quint16 port = 5222);
88 bool listenForServers(const QHostAddress &address = QHostAddress::Any, quint16 port = 5269);
89
90 bool sendElement(const QDomElement &element);
91 bool sendPacket(const QXmppStanza &stanza);
92
93 void addIncomingClient(QXmppIncomingClient *stream);
94
95 signals:
97 void clientConnected(const QString &jid);
98
100 void clientDisconnected(const QString &jid);
101
103 void loggerChanged(QXmppLogger *logger);
104
105 public slots:
106 void handleElement(const QDomElement &element);
107
108 private slots:
109 void _q_clientConnection(QSslSocket *socket);
110 void _q_clientConnected();
111 void _q_clientDisconnected();
112 void _q_dialbackRequestReceived(const QXmppDialback &dialback);
113 void _q_outgoingServerDisconnected();
114 void _q_serverConnection(QSslSocket *socket);
115 void _q_serverDisconnected();
116
117 private:
118 friend class QXmppServerPrivate;
119 QXmppServerPrivate *d;
120 };
121
122 class QXmppSslServerPrivate;
123
126
127 class QXMPP_EXPORT QXmppSslServer : public QTcpServer
128 {
129 Q_OBJECT
130
131 public:
132 QXmppSslServer(QObject *parent = 0);
133 ~QXmppSslServer();
134
135 void addCaCertificates(const QList<QSslCertificate> &certificates);
136 void setLocalCertificate(const QSslCertificate &certificate);
137 void setPrivateKey(const QSslKey &key);
138
139 signals:
141 void newConnection(QSslSocket *socket);
142
143 private:
144 void incomingConnection(int socketDescriptor);
145 QXmppSslServerPrivate * const d;
146 };
147
148 #endif