QXmpp Version: 1.10.0
Public Member Functions | Protected Member Functions | Friends | List of all members
QXmppClientExtension Class Reference

The QXmppClientExtension class is the base class for QXmppClient extensions. More...

#include <QXmppClientExtension.h>

Inheritance diagram for QXmppClientExtension:
Inheritance graph
[legend]
Collaboration diagram for QXmppClientExtension:
Collaboration graph
[legend]

Public Member Functions

 QXmppClientExtension ()
 
virtual QStringList discoveryFeatures () const
 
virtual QList< QXmppDiscoveryIq::IdentitydiscoveryIdentities () const
 
virtual bool handleStanza (const QDomElement &stanza)
 You need to implement this method to process incoming XMPP stanzas. More...
 
virtual bool handleStanza (const QDomElement &stanza, const std::optional< QXmppE2eeMetadata > &e2eeMetadata)
 You need to implement this method to process incoming XMPP stanzas. More...
 
- Public Member Functions inherited from QXmppLoggable
 QXmppLoggable (QObject *parent=nullptr)
 

Protected Member Functions

QXmppClientclient () const
 
virtual void setClient (QXmppClient *client)
 
virtual void onRegistered (QXmppClient *client)
 
virtual void onUnregistered (QXmppClient *client)
 
void injectIq (const QDomElement &element, const std::optional< QXmppE2eeMetadata > &e2eeMetadata)
 
bool injectMessage (QXmppMessage &&message)
 
- Protected Member Functions inherited from QXmppLoggable
void debug (const QString &message)
 
void info (const QString &message)
 
void warning (const QString &message)
 
void logReceived (const QString &message)
 
void logSent (const QString &message)
 

Friends

class QXmppClient
 

Additional Inherited Members

- Signals inherited from QXmppLoggable
void setGauge (const QString &gauge, double value)
 Sets the given gauge to value.
 
void logMessage (QXmppLogger::MessageType type, const QString &msg)
 This signal is emitted to send logging messages.
 
void updateCounter (const QString &counter, qint64 amount=1)
 Updates the given counter by amount.
 

Detailed Description

The QXmppClientExtension class is the base class for QXmppClient extensions.

If you want to extend QXmppClient, for instance to support an IQ type which is not natively supported, you can subclass QXmppClientExtension and implement handleStanza(). You can then add your extension to the client instance using QXmppClient::addExtension().

Constructor & Destructor Documentation

◆ QXmppClientExtension()

QXmppClientExtension::QXmppClientExtension ( )

Constructs a QXmppClient extension.

Member Function Documentation

◆ client()

QXmppClient * QXmppClientExtension::client ( ) const
protected

Returns the client which loaded this extension.

◆ discoveryFeatures()

QStringList QXmppClientExtension::discoveryFeatures ( ) const
virtual

Returns the discovery features to add to the client.

Reimplemented in QXmppAttentionManager, QXmppMixManager, QXmppMovedManager, QXmppRegistrationManager, QXmppUserLocationManager, and QXmppUserTuneManager.

◆ discoveryIdentities()

QList< QXmppDiscoveryIq::Identity > QXmppClientExtension::discoveryIdentities ( ) const
virtual

Returns the discovery identities to add to the client.

◆ handleStanza() [1/2]

bool QXmppClientExtension::handleStanza ( const QDomElement &  stanza)
virtual

You need to implement this method to process incoming XMPP stanzas.

You should return true if the stanza was handled and no further processing should occur, or false to let other extensions process the stanza.

End-to-end encrypted stanzas are not passed to this overload, for that purpose use the new overload instead.

Deprecated:
This is deprecated since QXmpp 1.5. Please use QXmppClientExtension::handleStanza(const QDomElement &stanza, const std::optional<QXmppE2eeMetadata> &e2eeMetadata). Currently both methods are called by the client, so only implement one!

Reimplemented in QXmppUploadRequestManager.

◆ handleStanza() [2/2]

bool QXmppClientExtension::handleStanza ( const QDomElement &  stanza,
const std::optional< QXmppE2eeMetadata > &  e2eeMetadata 
)
virtual

You need to implement this method to process incoming XMPP stanzas.

Parameters
stanzaThe DOM element to be handled.
e2eeMetadataIf the element has been decrypted this contains metadata about the encryption.
Returns
You should return true if the stanza was handled and no further processing should occur, or false to let other extensions process the stanza.
Since
QXmpp 1.5

Reimplemented in QXmppCarbonManagerV2.

◆ injectIq()

void QXmppClientExtension::injectIq ( const QDomElement &  element,
const std::optional< QXmppE2eeMetadata > &  e2eeMetadata 
)
protected

Injects an IQ element into the client.

The IQ is handled like any other stanza received via the XMPP stream.

Parameters
element
e2eeMetadataEnd-to-end encryption metadata for the IQ. Should be set if the stanza has been decrypted with an end-to-end encryption.
Since
QXmpp 1.5

◆ injectMessage()

bool QXmppClientExtension::injectMessage ( QXmppMessage &&  message)
protected

Injects a message stanza into the client.

The stanza is processed by the client with all extensions implementing MessageHandler.

Since
QXmpp 1.5

◆ onRegistered()

void QXmppClientExtension::onRegistered ( QXmppClient client)
protectedvirtual

Called after the extension has been added to a QXmppClient.

Parameters
client

Reimplemented in QXmppAttentionManager, QXmppCarbonManagerV2, QXmppRegistrationManager, QXmppRosterManager, QXmppUploadRequestManager, and QXmppVCardManager.

◆ onUnregistered()

void QXmppClientExtension::onUnregistered ( QXmppClient client)
protectedvirtual

Called after the extension has been removed from a QXmppClient.

Parameters
client

Reimplemented in QXmppAttentionManager, QXmppCarbonManagerV2, QXmppRegistrationManager, QXmppRosterManager, QXmppUploadRequestManager, and QXmppVCardManager.

◆ setClient()

void QXmppClientExtension::setClient ( QXmppClient client)
protectedvirtual

Sets the client which loaded this extension.

Parameters
client

The documentation for this class was generated from the following files: