Skip to content

Backend improvements#660

Open
Lama-Thematique wants to merge 9 commits intocommetchat:mainfrom
Lama-Thematique:rework
Open

Backend improvements#660
Lama-Thematique wants to merge 9 commits intocommetchat:mainfrom
Lama-Thematique:rework

Conversation

@Lama-Thematique
Copy link
Contributor

I think this is slightly better code in term of backend without changing functionality, though some improvement are still possibles.

I recommend going through the patches in commit order as all of them at once might not be readable.

The mains changes are around:

  • Rooms
  • ClientManager
  • MatrixClient
  • NotifyingMap
  • NotifyingSubMap

The app seems to run without issues with thoses changes.

Rooms now all inherit Baseroom for Spaces, normal Rooms, and PreviewRooms to better handle IDs.

ClientManager and MatrixClient now use the new maps for O(1) removal/addition.

This code includes the changes of #647 the fixes the NotifyingList.

NotifyingMap and NotifyingSet are pretty obvious, with the note that I consider a replacement in NotifyingMap as a removal followed by a addition.
Notifying Set is currently unused but could be used later, for example for optimizing AlertManager. (remove on list is O(n), O(1) for sets).

NotifyingSubMap allow have a map that specialize any other NotifyingMap without any copy, only aver showing element that repsonds to an condition. all operations on NotifyingSubMap is applied to the underlying NotifyingMap. This allow for zero copies of all Rooms in ClientManager and MatrixClient.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Comments