aboutsummaryrefslogtreecommitdiff
path: root/src/base/QXmppPubSubNodeConfig.h
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2021-09-02 16:14:02 +0200
committerLinus Jahn <lnj@kaidan.im>2021-09-02 16:26:19 +0200
commitd422c44bb0e908a56058caf1cfdd605756ca6b64 (patch)
tree2083af30d0c7cd746c96f4e2529e93e65a687010 /src/base/QXmppPubSubNodeConfig.h
parentebd683a4589e34ae4f142bc6ac64ae2b563d78fa (diff)
downloadqxmpp-d422c44bb0e908a56058caf1cfdd605756ca6b64.tar.gz
PubSubNodeConfig: Add Max option to maxItems
Diffstat (limited to 'src/base/QXmppPubSubNodeConfig.h')
-rw-r--r--src/base/QXmppPubSubNodeConfig.h15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/base/QXmppPubSubNodeConfig.h b/src/base/QXmppPubSubNodeConfig.h
index 16e26709..510feed6 100644
--- a/src/base/QXmppPubSubNodeConfig.h
+++ b/src/base/QXmppPubSubNodeConfig.h
@@ -27,11 +27,21 @@
#include "QXmppDataForm.h"
#include "QXmppDataFormBase.h"
+#include <variant>
+
class QXmppPubSubNodeConfigPrivate;
class QXMPP_EXPORT QXmppPubSubNodeConfig : public QXmppExtensibleDataFormBase
{
public:
+ struct Unset
+ {
+ };
+ struct Max
+ {
+ };
+ using ItemLimit = std::variant<Unset, uint64_t, Max>;
+
enum AccessModel : uint8_t {
Open,
Presence,
@@ -140,8 +150,9 @@ public:
QString language() const;
void setLanguage(const QString &language);
- std::optional<quint32> maxItems() const;
- void setMaxItems(std::optional<quint32> maxItems);
+ ItemLimit maxItems() const;
+ void setMaxItems(ItemLimit maxItems);
+ inline void resetMaxItems() { setMaxItems(Unset()); }
std::optional<quint32> maxPayloadSize() const;
void setMaxPayloadSize(std::optional<quint32> maxPayloadSize);