52 std::optional<QXmppResultSetReply> continuation;
55 using Result = std::variant<QXmpp::Success, QXmppError>;
68 using OptionsResult = std::variant<QXmppPubSubSubscribeOptions, QXmppError>;
75 QXmppTask<NodesResult> requestNodes(
const QString &jid);
76 QXmppTask<Result> createNode(
const QString &jid,
const QString &nodeName);
77 QXmppTask<Result> createNode(
const QString &jid,
const QString &nodeName,
const QXmppPubSubNodeConfig &config);
78 QXmppTask<InstantNodeResult> createInstantNode(
const QString &jid);
79 QXmppTask<InstantNodeResult> createInstantNode(
const QString &jid,
const QXmppPubSubNodeConfig &config);
80 QXmppTask<Result> deleteNode(
const QString &jid,
const QString &nodeName);
81 QXmppTask<ItemIdsResult> requestItemIds(
const QString &serviceJid,
const QString &nodeName);
82 template<
typename T = QXmppPubSubBaseItem>
83 QXmppTask<ItemResult<T>> requestItem(
const QString &jid,
const QString &nodeName,
const QString &itemId);
84 template<
typename T = QXmppPubSubBaseItem>
85 QXmppTask<ItemResult<T>> requestItem(
const QString &jid,
const QString &nodeName,
StandardItemId itemId);
86 template<
typename T = QXmppPubSubBaseItem>
87 QXmppTask<ItemsResult<T>> requestItems(
const QString &jid,
const QString &nodeName);
88 template<
typename T = QXmppPubSubBaseItem>
89 QXmppTask<ItemsResult<T>> requestItems(
const QString &jid,
const QString &nodeName,
const QStringList &itemIds);
91 QXmppTask<PublishItemResult> publishItem(
const QString &jid,
const QString &nodeName,
const T &item);
93 QXmppTask<PublishItemResult> publishItem(
const QString &jid,
const QString &nodeName,
const T &item,
const QXmppPubSubPublishOptions &publishOptions);
95 QXmppTask<PublishItemsResult> publishItems(
const QString &jid,
const QString &nodeName,
const QVector<T> &items);
97 QXmppTask<PublishItemsResult> publishItems(
const QString &jid,
const QString &nodeName,
const QVector<T> &items,
const QXmppPubSubPublishOptions &publishOptions);
98 QXmppTask<Result> retractItem(
const QString &jid,
const QString &nodeName,
const QString &itemId);
99 QXmppTask<Result> retractItem(
const QString &jid,
const QString &nodeName,
StandardItemId itemId);
100 QXmppTask<Result> purgeItems(
const QString &jid,
const QString &nodeName);
101 QXmppTask<SubscriptionsResult> requestSubscriptions(
const QString &jid);
102 QXmppTask<SubscriptionsResult> requestSubscriptions(
const QString &jid,
const QString &nodeName);
103 QXmppTask<AffiliationsResult> requestNodeAffiliations(
const QString &jid,
const QString &nodeName);
104 QXmppTask<AffiliationsResult> requestAffiliations(
const QString &jid);
105 QXmppTask<AffiliationsResult> requestAffiliations(
const QString &jid,
const QString &nodeName);
106 QXmppTask<OptionsResult> requestSubscribeOptions(
const QString &service,
const QString &nodeName);
107 QXmppTask<OptionsResult> requestSubscribeOptions(
const QString &service,
const QString &nodeName,
const QString &subscriberJid);
108 QXmppTask<Result> setSubscribeOptions(
const QString &service,
const QString &nodeName,
const QXmppPubSubSubscribeOptions &options);
109 QXmppTask<Result> setSubscribeOptions(
const QString &service,
const QString &nodeName,
const QXmppPubSubSubscribeOptions &options,
const QString &subscriberJid);
110 QXmppTask<NodeConfigResult> requestNodeConfiguration(
const QString &service,
const QString &nodeName);
111 QXmppTask<Result> configureNode(
const QString &service,
const QString &nodeName,
const QXmppPubSubNodeConfig &config);
112 QXmppTask<Result> cancelNodeConfiguration(
const QString &service,
const QString &nodeName);
113 QXmppTask<Result> subscribeToNode(
const QString &serviceJid,
const QString &nodeName,
const QString &subscriberJid);
114 QXmppTask<Result> unsubscribeFromNode(
const QString &serviceJid,
const QString &nodeName,
const QString &subscriberJid);
117 QXmppTask<NodesResult>
requestOwnPepNodes() {
return requestNodes(client()->configuration().jidBare()); };
118 QXmppTask<Result>
createOwnPepNode(
const QString &nodeName) {
return createNode(client()->configuration().jidBare(), nodeName); }
119 QXmppTask<Result>
createOwnPepNode(
const QString &nodeName,
const QXmppPubSubNodeConfig &config) {
return createNode(client()->configuration().jidBare(), nodeName, config); }
120 QXmppTask<Result>
deleteOwnPepNode(
const QString &nodeName) {
return deleteNode(client()->configuration().jidBare(), nodeName); }
121 template<
typename T = QXmppPubSubBaseItem>
122 QXmppTask<ItemResult<T>>
requestOwnPepItem(
const QString &nodeName,
const QString &itemId) {
return requestItem<T>(client()->configuration().jidBare(), nodeName, itemId); }
123 template<
typename T = QXmppPubSubBaseItem>
124 QXmppTask<ItemResult<T>>
requestOwnPepItem(
const QString &nodeName,
StandardItemId itemId) {
return requestItem<T>(client()->configuration().jidBare(), nodeName, itemId); }
125 template<
typename T = QXmppPubSubBaseItem>
126 QXmppTask<ItemsResult<T>>
requestOwnPepItems(
const QString &nodeName) {
return requestItems(client()->configuration().jidBare(), nodeName); }
127 QXmppTask<ItemIdsResult>
requestOwnPepItemIds(
const QString &nodeName) {
return requestItemIds(client()->configuration().jidBare(), nodeName); }
129 QXmppTask<PublishItemResult> publishOwnPepItem(
const QString &nodeName,
const T &item,
const QXmppPubSubPublishOptions &publishOptions);
131 QXmppTask<PublishItemResult> publishOwnPepItem(
const QString &nodeName,
const T &item);
133 QXmppTask<PublishItemsResult> publishOwnPepItems(
const QString &nodeName,
const QVector<T> &items,
const QXmppPubSubPublishOptions &publishOptions);
135 QXmppTask<PublishItemsResult> publishOwnPepItems(
const QString &nodeName,
const QVector<T> &items);
136 QXmppTask<Result>
retractOwnPepItem(
const QString &nodeName,
const QString &itemId) {
return retractItem(client()->configuration().jidBare(), nodeName, itemId); }
138 QXmppTask<Result>
purgeOwnPepItems(
const QString &nodeName) {
return purgeItems(client()->configuration().jidBare(), nodeName); }
139 QXmppTask<NodeConfigResult>
requestOwnPepNodeConfiguration(
const QString &nodeName) {
return requestNodeConfiguration(client()->configuration().jidBare(), nodeName); }
140 QXmppTask<Result>
configureOwnPepNode(
const QString &nodeName,
const QXmppPubSubNodeConfig &config) {
return configureNode(client()->configuration().jidBare(), nodeName, config); }
143 static QString standardItemIdToString(StandardItemId itemId);
146 QStringList discoveryFeatures()
const override;
147 bool handleStanza(
const QDomElement &element)
override;
152 friend class tst_QXmppPubSubManager;
153 friend class QXmppOmemoManagerPrivate;
155 QXmppTask<FeaturesResult> requestFeatures(
const QString &serviceJid, ServiceType serviceType = PubSubOrPep);
156 QXmppTask<FeaturesResult> requestOwnPepFeatures() {
return requestFeatures(client()->configuration().jidBare(), Pep); };
158 QXmppTask<PublishItemResult> publishItem(QXmpp::Private::PubSubIqBase &&iq);
159 QXmppTask<PublishItemsResult> publishItems(QXmpp::Private::PubSubIqBase &&iq);
160 static QXmpp::Private::PubSubIq<> requestItemsIq(
const QString &jid,
const QString &nodeName,
const QStringList &itemIds);
The QXmppClientExtension class is the base class for QXmppClient extensions.
Definition QXmppClientExtension.h:33