QXmpp Version: 1.15.1
Loading...
Searching...
No Matches
QXmppRosterStorage.h
1// SPDX-FileCopyrightText: 2026 Linus Jahn <lnj@kaidan.im>
2//
3// SPDX-License-Identifier: LGPL-2.1-or-later
4
5#ifndef QXMPPROSTERSTORAGE_H
6#define QXMPPROSTERSTORAGE_H
7
8#include "QXmppGlobal.h"
9#include "QXmppRosterIq.h"
10
11#include <vector>
12
13#include <QString>
14
15template<typename T>
16class QXmppTask;
17
50class QXMPP_EXPORT QXmppRosterStorage
51{
52public:
54 struct RosterCache {
57 QString version;
59 std::vector<QXmppRosterIq::Item> items;
60 };
61
62 virtual ~QXmppRosterStorage();
63
66
69 virtual QXmppTask<void> replaceAll(const QString &version,
70 const std::vector<QXmppRosterIq::Item> &items) = 0;
71
74 virtual QXmppTask<void> upsertItem(const QString &version,
75 const QXmppRosterIq::Item &item) = 0;
76
79 virtual QXmppTask<void> removeItem(const QString &version,
80 const QString &bareJid) = 0;
81
84 virtual QXmppTask<void> clear() = 0;
85};
86
87#endif // QXMPPROSTERSTORAGE_H
The QXmppRosterIq::Item class represents a roster entry.
Definition QXmppRosterIq.h:36
Storage backend used by QXmppRosterManager to cache the roster between sessions (RFC 6121 ยง2....
Definition QXmppRosterStorage.h:51
virtual QXmppTask< void > clear()=0
virtual QXmppTask< RosterCache > load()=0
Loads the persisted roster.
virtual QXmppTask< void > replaceAll(const QString &version, const std::vector< QXmppRosterIq::Item > &items)=0
virtual QXmppTask< void > removeItem(const QString &version, const QString &bareJid)=0
virtual QXmppTask< void > upsertItem(const QString &version, const QXmppRosterIq::Item &item)=0
Definition QXmppTask.h:330
Snapshot of the persisted roster: server version + items.
Definition QXmppRosterStorage.h:54
QString version
Definition QXmppRosterStorage.h:57
std::vector< QXmppRosterIq::Item > items
Roster items, keyed intrinsically by item.bareJid().
Definition QXmppRosterStorage.h:59