extract member cache sizes to vars

This commit is contained in:
Adam Brown 2022-10-22 11:52:16 +01:00
parent ef1c9de572
commit 0536364121
1 changed files with 6 additions and 2 deletions

View File

@ -31,6 +31,7 @@ class RoomMembers(private val memberStore: MemberStore, private val membersCache
missingIds.isNotEmpty() -> { missingIds.isNotEmpty() -> {
(memberStore.query(roomId, missingIds).also { membersCache.insert(roomId, it) } + cachedMembers) (memberStore.query(roomId, missingIds).also { membersCache.insert(roomId, it) } + cachedMembers)
} }
else -> cachedMembers else -> cachedMembers
} }
} }
@ -44,14 +45,17 @@ class RoomMembers(private val memberStore: MemberStore, private val membersCache
} }
} }
private const val ROOMS_TO_CACHE_MEMBERS_FOR_SIZE = 12
private const val MEMBERS_TO_CACHE_PER_ROOM = 25
class RoomMembersCache { class RoomMembersCache {
private val cache = LRUCache<RoomId, LRUCache<UserId, RoomMember>>(maxSize = 12) private val cache = LRUCache<RoomId, LRUCache<UserId, RoomMember>>(maxSize = ROOMS_TO_CACHE_MEMBERS_FOR_SIZE)
fun room(roomId: RoomId) = cache.get(roomId) fun room(roomId: RoomId) = cache.get(roomId)
fun insert(roomId: RoomId, members: List<RoomMember>) { fun insert(roomId: RoomId, members: List<RoomMember>) {
val map = cache.getOrPut(roomId) { LRUCache(maxSize = 25) } val map = cache.getOrPut(roomId) { LRUCache(maxSize = MEMBERS_TO_CACHE_PER_ROOM) }
members.forEach { map.put(it.id, it) } members.forEach { map.put(it.id, it) }
} }
} }