Loading...
Searching...
No Matches
QXmppPresence.h
// SPDX-FileCopyrightText: 2009 Manjeet Dahiya <manjeetdahiya@gmail.com>
// SPDX-FileCopyrightText: 2022 Melvin Keskin <melvo@olomono.de>
// SPDX-FileCopyrightText: 2024 Filipe Azevedo <pasnox@gmail.com>
//
// SPDX-License-Identifier: LGPL-2.1-or-later
#ifndef QXMPPPRESENCE_H
#define QXMPPPRESENCE_H
#include "QXmppJingleIq.h"
#include "QXmppMucIq.h"
#include "QXmppStanza.h"
class QXmppPresencePrivate;
class QXMPP_EXPORT QXmppPresence : public QXmppStanza
{
public:
enum Type {
Error = 0,
Available,
Unavailable,
Subscribe,
Subscribed,
Unsubscribe,
Unsubscribed,
Probe
};
enum AvailableStatusType {
Online = 0,
Away,
XA,
DND,
Chat,
Invisible
};
enum VCardUpdateType {
VCardUpdateNone = 0,
VCardUpdateNoPhoto,
VCardUpdateValidPhoto,
VCardUpdateNotReady
};
QXmppPresence(QXmppPresence::Type type = QXmppPresence::Available);
QXmppPresence(const QXmppPresence &other);
QXmppPresence(QXmppPresence &&);
~QXmppPresence() override;
QXmppPresence &operator=(const QXmppPresence &other);
QXmppPresence &operator=(QXmppPresence &&);
bool isXmppStanza() const override;
AvailableStatusType availableStatusType() const;
void setAvailableStatusType(AvailableStatusType type);
int priority() const;
void setPriority(int priority);
QXmppPresence::Type type() const;
void setType(QXmppPresence::Type);
QString statusText() const;
void setStatusText(const QString &statusText);
// XEP-0045: Multi-User Chat
QXmppMucItem mucItem() const;
void setMucItem(const QXmppMucItem &item);
QString mucPassword() const;
void setMucPassword(const QString &password);
QList<int> mucStatusCodes() const;
void setMucStatusCodes(const QList<int> &codes);
bool isMucSupported() const;
void setMucSupported(bool supported);
// XEP-0153: vCard-Based Avatars
QByteArray photoHash() const;
void setPhotoHash(const QByteArray &);
VCardUpdateType vCardUpdateType() const;
void setVCardUpdateType(VCardUpdateType type);
// XEP-0115: Entity Capabilities
QString capabilityHash() const;
void setCapabilityHash(const QString &);
QString capabilityNode() const;
void setCapabilityNode(const QString &);
QByteArray capabilityVer() const;
void setCapabilityVer(const QByteArray &);
QStringList capabilityExt() const;
// XEP-0272: Multiparty Jingle (Muji)
bool isPreparingMujiSession() const;
void setIsPreparingMujiSession(bool isPreparingMujiSession);
QVector<QXmppJingleIq::Content> mujiContents() const;
void setMujiContents(const QVector<QXmppJingleIq::Content> &mujiContents);
// XEP-0283: Moved
QString oldJid() const;
void setOldJid(const QString &oldJid);
// XEP-0319: Last User Interaction in Presence
QDateTime lastUserInteraction() const;
void setLastUserInteraction(const QDateTime &);
// XEP-0405: Mediated Information eXchange (MIX): Participant Server Requirements
QString mixUserJid() const;
void setMixUserJid(const QString &);
QString mixUserNick() const;
void setMixUserNick(const QString &);
void parse(const QDomElement &element) override;
void toXml(QXmlStreamWriter *writer) const override;
private:
void parseExtension(const QDomElement &element, QXmppElementList &unknownElements);
QSharedDataPointer<QXmppPresencePrivate> d;
};
#endif // QXMPPPRESENCE_H
QXmppMucItem
The QXmppMucItem class represents a chat room "item".
Definition QXmppMucIq.h:18
QXmppNonza::parse
virtual void parse(const QDomElement &)=0
QXmppNonza::isXmppStanza
virtual bool isXmppStanza() const
Definition QXmppNonza.h:19
QXmppNonza::toXml
virtual void toXml(QXmlStreamWriter *writer) const =0
QXmppPresence
The QXmppPresence class represents an XMPP presence stanza.
Definition QXmppPresence.h:22
QXmppPresence::operator=
QXmppPresence & operator=(const QXmppPresence &other)
Assignemnt operator.
QXmppPresence::Type
Type
This enum is used to describe a presence type.
Definition QXmppPresence.h:25
QXmppPresence::Unsubscribe
@ Unsubscribe
The sender is unsubscribing from another entity's presence.
Definition QXmppPresence.h:31
QXmppPresence::Subscribe
@ Subscribe
The sender wishes to subscribe to the recipient's presence.
Definition QXmppPresence.h:29
QXmppPresence::Subscribed
@ Subscribed
The sender has allowed the recipient to receive their presence.
Definition QXmppPresence.h:30
QXmppPresence::Unavailable
@ Unavailable
Signals that the sender is no longer available for communication.
Definition QXmppPresence.h:28
QXmppPresence::Unsubscribed
@ Unsubscribed
The subscription request has been denied or a previously-granted subscription has been cancelled.
Definition QXmppPresence.h:32
QXmppPresence::Available
@ Available
Signals that the sender is online and available for communication.
Definition QXmppPresence.h:27
QXmppPresence::VCardUpdateType
VCardUpdateType
Definition QXmppPresence.h:48
QXmppPresence::VCardUpdateNoPhoto
@ VCardUpdateNoPhoto
User is not using any image.
Definition QXmppPresence.h:50
QXmppPresence::VCardUpdateValidPhoto
@ VCardUpdateValidPhoto
User is advertising an image.
Definition QXmppPresence.h:51
QXmppPresence::QXmppPresence
QXmppPresence(const QXmppPresence &other)
Copy-constructor.
QXmppPresence::QXmppPresence
QXmppPresence(QXmppPresence &&)
Move-constructor.
QXmppPresence::operator=
QXmppPresence & operator=(QXmppPresence &&)
Move-assignemnt operator.
QXmppPresence::~QXmppPresence
~QXmppPresence() override
Destroys a QXmppPresence.
QXmppPresence::AvailableStatusType
AvailableStatusType
This enum is used to describe an availability status.
Definition QXmppPresence.h:37
QXmppPresence::Chat
@ Chat
The entity or resource is actively interested in chatting.
Definition QXmppPresence.h:42
QXmppPresence::DND
@ DND
The entity or resource is busy ("Do Not Disturb").
Definition QXmppPresence.h:41
QXmppPresence::Away
@ Away
The entity or resource is temporarily away.
Definition QXmppPresence.h:39
QXmppPresence::XA
@ XA
The entity or resource is away for an extended period.
Definition QXmppPresence.h:40
QXmppStanza::Error
The Error class represents a stanza error.
Definition QXmppStanza.h:94
QXmppStanza
The QXmppStanza class is the base class for all XMPP stanzas.
Definition QXmppStanza.h:88