crypto: Add a method to get all group sessions from the store.
parent
7bd0e4975b
commit
464e181f66
|
@ -106,6 +106,19 @@ impl GroupSessionStore {
|
||||||
.is_none()
|
.is_none()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Get all the group sessions the store knows about.
|
||||||
|
pub fn get_all(&self) -> Vec<InboundGroupSession> {
|
||||||
|
self.entries
|
||||||
|
.iter()
|
||||||
|
.flat_map(|d| {
|
||||||
|
d.value()
|
||||||
|
.values()
|
||||||
|
.flat_map(|t| t.values().cloned().collect::<Vec<InboundGroupSession>>())
|
||||||
|
.collect::<Vec<InboundGroupSession>>()
|
||||||
|
})
|
||||||
|
.collect()
|
||||||
|
}
|
||||||
|
|
||||||
/// Get a inbound group session from our store.
|
/// Get a inbound group session from our store.
|
||||||
///
|
///
|
||||||
/// # Arguments
|
/// # Arguments
|
||||||
|
|
|
@ -99,6 +99,10 @@ impl CryptoStore for MemoryStore {
|
||||||
.get(room_id, sender_key, session_id))
|
.get(room_id, sender_key, session_id))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async fn get_inbound_group_sessions(&self) -> Result<Vec<InboundGroupSession>> {
|
||||||
|
Ok(self.inbound_group_sessions.get_all())
|
||||||
|
}
|
||||||
|
|
||||||
fn users_for_key_query(&self) -> HashSet<UserId> {
|
fn users_for_key_query(&self) -> HashSet<UserId> {
|
||||||
#[allow(clippy::map_clone)]
|
#[allow(clippy::map_clone)]
|
||||||
self.users_for_key_query.iter().map(|u| u.clone()).collect()
|
self.users_for_key_query.iter().map(|u| u.clone()).collect()
|
||||||
|
|
|
@ -179,6 +179,9 @@ pub trait CryptoStore: Debug {
|
||||||
session_id: &str,
|
session_id: &str,
|
||||||
) -> Result<Option<InboundGroupSession>>;
|
) -> Result<Option<InboundGroupSession>>;
|
||||||
|
|
||||||
|
/// Get all the inbound group sessions we have stored.
|
||||||
|
async fn get_inbound_group_sessions(&self) -> Result<Vec<InboundGroupSession>>;
|
||||||
|
|
||||||
/// Is the given user already tracked.
|
/// Is the given user already tracked.
|
||||||
fn is_user_tracked(&self, user_id: &UserId) -> bool;
|
fn is_user_tracked(&self, user_id: &UserId) -> bool;
|
||||||
|
|
||||||
|
|
|
@ -1289,6 +1289,10 @@ impl CryptoStore for SqliteStore {
|
||||||
.get(room_id, sender_key, session_id))
|
.get(room_id, sender_key, session_id))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async fn get_inbound_group_sessions(&self) -> Result<Vec<InboundGroupSession>> {
|
||||||
|
Ok(self.inbound_group_sessions.get_all())
|
||||||
|
}
|
||||||
|
|
||||||
fn is_user_tracked(&self, user_id: &UserId) -> bool {
|
fn is_user_tracked(&self, user_id: &UserId) -> bool {
|
||||||
self.tracked_users.contains(user_id)
|
self.tracked_users.contains(user_id)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue