49 std::optional<QXmppResultSetReply> continuation;
52 using Result = std::variant<QXmpp::Success, QXmppError>;
65 using OptionsResult = std::variant<QXmppPubSubSubscribeOptions, QXmppError>;
72 QXmppTask<NodesResult> requestNodes(
const QString &jid);
73 QXmppTask<Result> createNode(
const QString &jid,
const QString &nodeName);
74 QXmppTask<Result> createNode(
const QString &jid,
const QString &nodeName,
const QXmppPubSubNodeConfig &config);
75 QXmppTask<InstantNodeResult> createInstantNode(
const QString &jid);
76 QXmppTask<InstantNodeResult> createInstantNode(
const QString &jid,
const QXmppPubSubNodeConfig &config);
77 QXmppTask<Result> deleteNode(
const QString &jid,
const QString &nodeName);
78 QXmppTask<ItemIdsResult> requestItemIds(
const QString &serviceJid,
const QString &nodeName);
79 template<
typename T = QXmppPubSubBaseItem>
80 QXmppTask<ItemResult<T>> requestItem(
const QString &jid,
const QString &nodeName,
const QString &itemId);
81 template<
typename T = QXmppPubSubBaseItem>
82 QXmppTask<ItemResult<T>> requestItem(
const QString &jid,
const QString &nodeName,
StandardItemId itemId);
83 template<
typename T = QXmppPubSubBaseItem>
84 QXmppTask<ItemsResult<T>> requestItems(
const QString &jid,
const QString &nodeName);
85 template<
typename T = QXmppPubSubBaseItem>
86 QXmppTask<ItemsResult<T>> requestItems(
const QString &jid,
const QString &nodeName,
const QStringList &itemIds);
88 QXmppTask<PublishItemResult> publishItem(
const QString &jid,
const QString &nodeName,
const T &item);
90 QXmppTask<PublishItemResult> publishItem(
const QString &jid,
const QString &nodeName,
const T &item,
const QXmppPubSubPublishOptions &publishOptions);
92 QXmppTask<PublishItemsResult> publishItems(
const QString &jid,
const QString &nodeName,
const QVector<T> &items);
94 QXmppTask<PublishItemsResult> publishItems(
const QString &jid,
const QString &nodeName,
const QVector<T> &items,
const QXmppPubSubPublishOptions &publishOptions);
95 QXmppTask<Result> retractItem(
const QString &jid,
const QString &nodeName,
const QString &itemId);
96 QXmppTask<Result> retractItem(
const QString &jid,
const QString &nodeName,
StandardItemId itemId);
97 QXmppTask<Result> purgeItems(
const QString &jid,
const QString &nodeName);
98 QXmppTask<SubscriptionsResult> requestSubscriptions(
const QString &jid);
99 QXmppTask<SubscriptionsResult> requestSubscriptions(
const QString &jid,
const QString &nodeName);
100 QXmppTask<AffiliationsResult> requestNodeAffiliations(
const QString &jid,
const QString &nodeName);
101 QXmppTask<AffiliationsResult> requestAffiliations(
const QString &jid);
102 QXmppTask<AffiliationsResult> requestAffiliations(
const QString &jid,
const QString &nodeName);
103 QXmppTask<OptionsResult> requestSubscribeOptions(
const QString &service,
const QString &nodeName);
104 QXmppTask<OptionsResult> requestSubscribeOptions(
const QString &service,
const QString &nodeName,
const QString &subscriberJid);
105 QXmppTask<Result> setSubscribeOptions(
const QString &service,
const QString &nodeName,
const QXmppPubSubSubscribeOptions &options);
106 QXmppTask<Result> setSubscribeOptions(
const QString &service,
const QString &nodeName,
const QXmppPubSubSubscribeOptions &options,
const QString &subscriberJid);
107 QXmppTask<NodeConfigResult> requestNodeConfiguration(
const QString &service,
const QString &nodeName);
108 QXmppTask<Result> configureNode(
const QString &service,
const QString &nodeName,
const QXmppPubSubNodeConfig &config);
109 QXmppTask<Result> cancelNodeConfiguration(
const QString &service,
const QString &nodeName);
110 QXmppTask<Result> subscribeToNode(
const QString &serviceJid,
const QString &nodeName,
const QString &subscriberJid);
111 QXmppTask<Result> unsubscribeFromNode(
const QString &serviceJid,
const QString &nodeName,
const QString &subscriberJid);
114 QXmppTask<NodesResult>
requestOwnPepNodes() {
return requestNodes(client()->configuration().jidBare()); };
115 QXmppTask<Result>
createOwnPepNode(
const QString &nodeName) {
return createNode(client()->configuration().jidBare(), nodeName); }
116 QXmppTask<Result>
createOwnPepNode(
const QString &nodeName,
const QXmppPubSubNodeConfig &config) {
return createNode(client()->configuration().jidBare(), nodeName, config); }
117 QXmppTask<Result>
deleteOwnPepNode(
const QString &nodeName) {
return deleteNode(client()->configuration().jidBare(), nodeName); }
118 template<
typename T = QXmppPubSubBaseItem>
119 QXmppTask<ItemResult<T>>
requestOwnPepItem(
const QString &nodeName,
const QString &itemId) {
return requestItem<T>(client()->configuration().jidBare(), nodeName, itemId); }
120 template<
typename T = QXmppPubSubBaseItem>
121 QXmppTask<ItemResult<T>>
requestOwnPepItem(
const QString &nodeName,
StandardItemId itemId) {
return requestItem<T>(client()->configuration().jidBare(), nodeName, itemId); }
122 template<
typename T = QXmppPubSubBaseItem>
123 QXmppTask<ItemsResult<T>>
requestOwnPepItems(
const QString &nodeName) {
return requestItems(client()->configuration().jidBare(), nodeName); }
124 QXmppTask<ItemIdsResult>
requestOwnPepItemIds(
const QString &nodeName) {
return requestItemIds(client()->configuration().jidBare(), nodeName); }
126 QXmppTask<PublishItemResult> publishOwnPepItem(
const QString &nodeName,
const T &item,
const QXmppPubSubPublishOptions &publishOptions);
128 QXmppTask<PublishItemResult> publishOwnPepItem(
const QString &nodeName,
const T &item);
130 QXmppTask<PublishItemsResult> publishOwnPepItems(
const QString &nodeName,
const QVector<T> &items,
const QXmppPubSubPublishOptions &publishOptions);
132 QXmppTask<PublishItemsResult> publishOwnPepItems(
const QString &nodeName,
const QVector<T> &items);
133 QXmppTask<Result>
retractOwnPepItem(
const QString &nodeName,
const QString &itemId) {
return retractItem(client()->configuration().jidBare(), nodeName, itemId); }
135 QXmppTask<Result>
purgeOwnPepItems(
const QString &nodeName) {
return purgeItems(client()->configuration().jidBare(), nodeName); }
136 QXmppTask<NodeConfigResult>
requestOwnPepNodeConfiguration(
const QString &nodeName) {
return requestNodeConfiguration(client()->configuration().jidBare(), nodeName); }
137 QXmppTask<Result>
configureOwnPepNode(
const QString &nodeName,
const QXmppPubSubNodeConfig &config) {
return configureNode(client()->configuration().jidBare(), nodeName, config); }
140 static QString standardItemIdToString(StandardItemId itemId);
143 QStringList discoveryFeatures()
const override;
144 bool handleStanza(
const QDomElement &element)
override;
149 friend class tst_QXmppPubSubManager;
150 friend class QXmppOmemoManagerPrivate;
152 QXmppTask<FeaturesResult> requestFeatures(
const QString &serviceJid, ServiceType serviceType = PubSubOrPep);
153 QXmppTask<FeaturesResult> requestOwnPepFeatures() {
return requestFeatures(client()->configuration().jidBare(), Pep); };
155 QXmppTask<PublishItemResult> publishItem(QXmpp::Private::PubSubIqBase &&iq);
156 QXmppTask<PublishItemsResult> publishItems(QXmpp::Private::PubSubIqBase &&iq);
157 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:32
QXmppClient * client() const
Definition QXmppClientExtension.cpp:57