QXmpp  Version: 1.15.1
QXmppIncomingServer.h
1 // SPDX-FileCopyrightText: 2010 Jeremy LainĂ© <jeremy.laine@m4x.org>
2 //
3 // SPDX-License-Identifier: LGPL-2.1-or-later
4 
5 #ifndef QXMPPINCOMINGSERVER_H
6 #define QXMPPINCOMINGSERVER_H
7 
8 #include "QXmppLogger.h"
9 
10 #include <memory>
11 
12 class QDomElement;
13 class QSslSocket;
14 class QXmppDialback;
15 class QXmppIncomingServerPrivate;
16 class QXmppNonza;
17 
18 namespace QXmpp::Private {
19 struct StreamOpen;
20 }
21 
26 class QXMPP_EXPORT QXmppIncomingServer : public QXmppLoggable
27 {
28  Q_OBJECT
29 
30 public:
31  QXmppIncomingServer(QSslSocket *socket, const QString &domain, QObject *parent);
32  ~QXmppIncomingServer() override;
33 
34  bool isConnected() const;
35  void disconnectFromHost();
36 
37  QString localStreamId() const;
38 
39  bool sendPacket(const QXmppNonza &);
40  Q_SLOT bool sendData(const QByteArray &);
41 
43  Q_SIGNAL void connected();
45  Q_SIGNAL void disconnected();
47  Q_SIGNAL void dialbackRequestReceived(const QXmppDialback &result);
49  Q_SIGNAL void elementReceived(const QDomElement &element);
50 
51 private:
52  void handleStart();
53  void handleStanza(const QDomElement &element);
54  void handleStream(const QXmpp::Private::StreamOpen &element);
55 
56  void slotDialbackResponseReceived(const QXmppDialback &dialback);
57  void slotSocketDisconnected();
58 
59  const std::unique_ptr<QXmppIncomingServerPrivate> d;
60  friend class QXmppIncomingServerPrivate;
61 };
62 
63 #endif
The QXmppDialback class represents a stanza used for the Server Dialback protocol as specified by XEP...
Definition: QXmppDialback.h:15
The QXmppLoggable class represents a source of logging messages.
Definition: QXmppLogger.h:108
The QXmppIncomingServer class represents an incoming XMPP stream from an XMPP server.
Definition: QXmppIncomingServer.h:26
Definition: QXmppNonza.h:13
Definition: Algorithms.h:14