diff options
| author | Linus Jahn <lnj@kaidan.im> | 2020-10-28 20:53:28 +0100 |
|---|---|---|
| committer | Linus Jahn <lnj@kaidan.im> | 2021-01-09 14:37:47 +0100 |
| commit | a24dc912bfcf52daa0086aeee1073f0f74b2bad9 (patch) | |
| tree | 6126346171056d763df00cebc41b098f9080d21c /src/client/QXmppRosterManager.h | |
| parent | f0e53ac3c1ab288502cefba91870a6ba8fe65993 (diff) | |
| download | qxmpp-a24dc912bfcf52daa0086aeee1073f0f74b2bad9.tar.gz | |
RosterManager: Cache roster when using stream management
The roster manager caches the roster items if a previous stream could
be resumed now. The rosterReceived() signal is not emitted again in
this case. This avoids redundant roster requests.
When no stream management is used, the roster cache is cleared directly
on disconnecting. If stream management is used, the cache is also
accessible after disconnecting. On connecting the manager checks
whether the last stream could be resumed. If the last stream hasn't
been resumed, the cache is cleared and the roster is re-requested.
Diffstat (limited to 'src/client/QXmppRosterManager.h')
| -rw-r--r-- | src/client/QXmppRosterManager.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/client/QXmppRosterManager.h b/src/client/QXmppRosterManager.h index c91d05f2..90022edb 100644 --- a/src/client/QXmppRosterManager.h +++ b/src/client/QXmppRosterManager.h @@ -101,6 +101,10 @@ Q_SIGNALS: /// connection. That is the roster entries are empty before this signal is emitted. /// One should use getRosterBareJids() and getRosterEntry() only after /// this signal has been emitted. + /// + /// \note If the previous stream could be resumed, this signal is not + /// emitted since QXmpp 1.4. Changes since the last connection are reported + /// via the itemAdded(), itemChanged() and itemRemoved() signals. void rosterReceived(); /// This signal is emitted when the presence of a particular bareJid and resource changes. |
