QXmppPresence.h
/*
* Copyright (C) 2008-2019 The QXmpp developers
*
* Author:
* Manjeet Dahiya
*
* Source:
* https://github.com/qxmpp-project/qxmpp
*
* This file is a part of QXmpp library.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
*/
#ifndef QXMPPPRESENCE_H
#define QXMPPPRESENCE_H
#include "QXmppStanza.h"
#include "QXmppMucIq.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& operator=(const QXmppPresence &other);
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);
void parse(const QDomElement &element);
void toXml(QXmlStreamWriter *writer) const;
// 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);
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-0319: Last User Interaction in Presence
QDateTime lastUserInteraction() const;
void setLastUserInteraction(const QDateTime&);
bool isXmppStanza() const;
private:
QSharedDataPointer<QXmppPresencePrivate> d;
};
#endif // QXMPPPRESENCE_H
QXmppPresence::Unavailable
@ Unavailable
Signals that the sender is no longer available for communication.
Definition: QXmppPresence.h:44
QXmppStanza::operator=
QXmppStanza & operator=(const QXmppStanza &other)
Assigns other to this stanza.
Definition: QXmppStanza.cpp:368
QXmppPresence
The QXmppPresence class represents an XMPP presence stanza.
Definition: QXmppPresence.h:36
QXmppPresence::Subscribe
@ Subscribe
The sender wishes to subscribe to the recipient's presence.
Definition: QXmppPresence.h:45
QXmppPresence::Type
Type
This enum is used to describe a presence type.
Definition: QXmppPresence.h:40
QXmppMucItem
The QXmppMucItem class represents a chat room "item".
Definition: QXmppMucIq.h:36
QXmppStanza::isXmppStanza
virtual bool isXmppStanza() const
Definition: QXmppStanza.cpp:492
QXmppPresence::AvailableStatusType
AvailableStatusType
This enum is used to describe an availability status.
Definition: QXmppPresence.h:53
QXmppPresence::DND
@ DND
The entity or resource is busy ("Do Not Disturb").
Definition: QXmppPresence.h:58
QXmppPresence::VCardUpdateNoPhoto
@ VCardUpdateNoPhoto
User is not using any image.
Definition: QXmppPresence.h:68
QXmppPresence::Available
@ Available
Signals that the sender is online and available for communication.
Definition: QXmppPresence.h:43
QXmppPresence::VCardUpdateType
VCardUpdateType
Definition: QXmppPresence.h:65
QXmppStanza
The QXmppStanza class is the base class for all XMPP stanzas.
Definition: QXmppStanza.h:90
QXmppPresence::Away
@ Away
The entity or resource is temporarily away.
Definition: QXmppPresence.h:56
QXmppPresence::Chat
@ Chat
The entity or resource is actively interested in chatting.
Definition: QXmppPresence.h:59
QXmppPresence::Subscribed
@ Subscribed
The sender has allowed the recipient to receive their presence.
Definition: QXmppPresence.h:46
QXmppPresence::Unsubscribe
@ Unsubscribe
The sender is unsubscribing from another entity's presence.
Definition: QXmppPresence.h:47
QXmppPresence::XA
@ XA
The entity or resource is away for an extended period.
Definition: QXmppPresence.h:57
QXmppPresence::Unsubscribed
@ Unsubscribed
The subscription request has been denied or a previously-granted subscription has been cancelled.
Definition: QXmppPresence.h:48
QXmppPresence::VCardUpdateValidPhoto
@ VCardUpdateValidPhoto
User is advertising an image.
Definition: QXmppPresence.h:69