|
- # Copyright 2022 The Matrix.org Foundation C.I.C.
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- from typing import TYPE_CHECKING
-
- import attr
-
- from synapse.replication.tcp.streams import Stream
-
- if TYPE_CHECKING:
- from synapse.server import HomeServer
-
-
- @attr.s(slots=True, frozen=True, auto_attribs=True)
- class UnPartialStatedRoomStreamRow:
- # ID of the room that has been un-partial-stated.
- room_id: str
-
-
- class UnPartialStatedRoomStream(Stream):
- """
- Stream to notify about rooms becoming un-partial-stated;
- that is, when the background sync finishes such that we now have full state for
- the room.
- """
-
- NAME = "un_partial_stated_room"
- ROW_TYPE = UnPartialStatedRoomStreamRow
-
- def __init__(self, hs: "HomeServer"):
- store = hs.get_datastores().main
- super().__init__(
- hs.get_instance_name(),
- store.get_un_partial_stated_rooms_token,
- store.get_un_partial_stated_rooms_from_stream,
- )
-
-
- @attr.s(slots=True, frozen=True, auto_attribs=True)
- class UnPartialStatedEventStreamRow:
- # ID of the event that has been un-partial-stated.
- event_id: str
-
- # True iff the rejection status of the event changed as a result of being
- # un-partial-stated.
- rejection_status_changed: bool
-
-
- class UnPartialStatedEventStream(Stream):
- """
- Stream to notify about events becoming un-partial-stated.
- """
-
- NAME = "un_partial_stated_event"
- ROW_TYPE = UnPartialStatedEventStreamRow
-
- def __init__(self, hs: "HomeServer"):
- store = hs.get_datastores().main
- super().__init__(
- hs.get_instance_name(),
- store.get_un_partial_stated_events_token,
- store.get_un_partial_stated_events_from_stream,
- )
|