QXmpp
Version: 1.10.0
src
client
QXmppClientExtension.h
1
// SPDX-FileCopyrightText: 2010 Jeremy Lainé <jeremy.laine@m4x.org>
2
//
3
// SPDX-License-Identifier: LGPL-2.1-or-later
4
5
#ifndef QXMPPCLIENTEXTENSION_H
6
#define QXMPPCLIENTEXTENSION_H
7
8
#include "QXmppDiscoveryIq.h"
9
#include "QXmppExtension.h"
10
#include "QXmppLogger.h"
11
12
#include <memory>
13
14
class
QDomElement;
15
16
class
QXmppClient
;
17
class
QXmppClientExtensionPrivate;
18
class
QXmppMessage
;
19
31
class
QXMPP_EXPORT
QXmppClientExtension
:
public
QXmppLoggable
,
public
QXmppExtension
32
{
33
Q_OBJECT
34
35
public
:
36
QXmppClientExtension
();
37
~QXmppClientExtension
()
override
;
38
39
virtual
QStringList discoveryFeatures()
const
;
40
virtual
QList<QXmppDiscoveryIq::Identity> discoveryIdentities()
const
;
41
42
virtual
bool
handleStanza(
const
QDomElement &stanza);
43
virtual
bool
handleStanza(
const
QDomElement &stanza,
const
std::optional<QXmppE2eeMetadata> &e2eeMetadata);
44
45
protected
:
46
QXmppClient
*client()
const
;
47
virtual
void
setClient(
QXmppClient
*client);
48
49
virtual
void
onRegistered(
QXmppClient
*client);
50
virtual
void
onUnregistered(
QXmppClient
*client);
51
52
void
injectIq(
const
QDomElement &element,
const
std::optional<QXmppE2eeMetadata> &e2eeMetadata);
53
bool
injectMessage(
QXmppMessage
&&message);
54
55
private
:
56
// m_client can be replaced with a d-ptr if needed (same size)
57
QXmppClient
*m_client;
58
59
friend
class
QXmppClient
;
60
};
61
62
#endif
QXmppClientExtension
The QXmppClientExtension class is the base class for QXmppClient extensions.
Definition:
QXmppClientExtension.h:32
QXmppClient
Main class for starting and managing connections to XMPP servers.
Definition:
QXmppClient.h:62
QXmppLoggable
The QXmppLoggable class represents a source of logging messages.
Definition:
QXmppLogger.h:110
QXmppMessage
The QXmppMessage class represents an XMPP message.
Definition:
QXmppMessage.h:64
Generated by
1.9.4