QXmppMucIq.h
/*
* Copyright (C) 2008-2014 The QXmpp developers
*
* Author:
* Jeremy Lainé
*
* 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 QXMPPMUCIQ_H
#define QXMPPMUCIQ_H
#include "QXmppDataForm.h"
#include "QXmppIq.h"
class QXMPP_EXPORT QXmppMucItem
{
public:
enum Affiliation {
UnspecifiedAffiliation,
OutcastAffiliation,
NoAffiliation,
MemberAffiliation,
AdminAffiliation,
OwnerAffiliation
};
enum Role {
UnspecifiedRole,
NoRole,
VisitorRole,
ParticipantRole,
ModeratorRole
};
QXmppMucItem();
bool isNull() const;
QString actor() const;
void setActor(const QString &actor);
Affiliation affiliation() const;
void setAffiliation(Affiliation affiliation);
QString jid() const;
void setJid(const QString &jid);
QString nick() const;
void setNick(const QString &nick);
QString reason() const;
void setReason(const QString &reason);
Role role() const;
void setRole(Role role);
void parse(const QDomElement &element);
void toXml(QXmlStreamWriter *writer) const;
static Affiliation affiliationFromString(const QString &affiliationStr);
static QString affiliationToString(Affiliation affiliation);
static Role roleFromString(const QString &roleStr);
static QString roleToString(Role role);
private:
QString m_actor;
Affiliation m_affiliation;
QString m_jid;
QString m_nick;
QString m_reason;
Role m_role;
};
class QXMPP_EXPORT QXmppMucAdminIq : public QXmppIq
{
public:
QList<QXmppMucItem> items() const;
void setItems(const QList<QXmppMucItem> &items);
static bool isMucAdminIq(const QDomElement &element);
protected:
void parseElementFromChild(const QDomElement &element);
void toXmlElementFromChild(QXmlStreamWriter *writer) const;
private:
QList<QXmppMucItem> m_items;
};
class QXMPP_EXPORT QXmppMucOwnerIq : public QXmppIq
{
public:
QXmppDataForm form() const;
void setForm(const QXmppDataForm &form);
static bool isMucOwnerIq(const QDomElement &element);
protected:
void parseElementFromChild(const QDomElement &element);
void toXmlElementFromChild(QXmlStreamWriter *writer) const;
private:
QXmppDataForm m_form;
};
#endif
QXmppMucItem::Role
Role
This enum is used to represent short-lived permissions in a room (roles).
Definition: QXmppMucIq.h:50
QXmppMucItem::Affiliation
Affiliation
This enum is used to represent long-lived permissions in a room (affiliations).
Definition: QXmppMucIq.h:40
QXmppMucOwnerIq
The QXmppMucOwnerIq class represents a chat room configuration IQ as defined by XEP-0045: Multi-User ...
Definition: QXmppMucIq.h:132
QXmppMucItem
The QXmppMucItem class represents a chat room "item".
Definition: QXmppMucIq.h:36
QXmppDataForm
The QXmppDataForm class represents a data form as defined by XEP-0004: Data Forms.
Definition: QXmppDataForm.h:40
QXmppMucAdminIq
The QXmppMucAdminIq class represents a chat room administration IQ as defined by XEP-0045: Multi-User...
Definition: QXmppMucIq.h:104
QXmppIq
The QXmppIq class is the base class for all IQs.
Definition: QXmppIq.h:42