diff options
author | Kitsune Ral <Kitsune-Ral@users.sf.net> | 2019-01-13 13:34:31 +0900 |
---|---|---|
committer | Kitsune Ral <Kitsune-Ral@users.sf.net> | 2019-01-13 14:01:45 +0900 |
commit | 8dc2a3273ac3a5bb518fa987b25e3df15106c4d2 (patch) | |
tree | b97d290df7a19959764146f0656e42ab4b7b732d /lib/connection.h | |
parent | d5c07b98cd708d0bf4590e7fd249aa972b090461 (diff) | |
download | libquotient-8dc2a3273ac3a5bb518fa987b25e3df15106c4d2.tar.gz libquotient-8dc2a3273ac3a5bb518fa987b25e3df15106c4d2.zip |
Connection::provideRoom: allow omitting join state
Diffstat (limited to 'lib/connection.h')
-rw-r--r-- | lib/connection.h | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/lib/connection.h b/lib/connection.h index ff3e2028..f2e10488 100644 --- a/lib/connection.h +++ b/lib/connection.h @@ -670,16 +670,27 @@ namespace QMatrixClient */ const ConnectionData* connectionData() const; - /** - * @brief Find a (possibly new) Room object for the specified id - * Use this method whenever you need to find a Room object in - * the local list of rooms. Note that this does not interact with - * the server; in particular, does not automatically create rooms - * on the server. - * @return a pointer to a Room object with the specified id; nullptr - * if roomId is empty or roomFactory() failed to create a Room object. - */ - Room* provideRoom(const QString& roomId, JoinState joinState); + /** Get a Room object for the given id in the given state + * + * Use this method when you need a Room object in the local list + * of rooms, with the given state. Note that this does not interact + * with the server; in particular, does not automatically create + * rooms on the server. This call performs necessary join state + * transitions; e.g., if it finds a room in Invite but + * `joinState == JoinState::Join` then the Invite room object + * will be deleted and a new room object with Join state created. + * In contrast, switching between Join and Leave happens within + * the same object. + * \param roomId room id (not alias!) + * \param joinState desired (target) join state of the room; if + * omitted, any state will be found and return unchanged, or a + * new Join room created. + * @return a pointer to a Room object with the specified id and the + * specified state; nullptr if roomId is empty or if roomFactory() + * failed to create a Room object. + */ + Room* provideRoom(const QString& roomId, + Omittable<JoinState> joinState = none); /** * Completes loading sync data. |