Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 
 
 
 
 

37 rindas
1.1 KiB

  1. # Copyright 2014-2016 OpenMarket Ltd
  2. #
  3. # Licensed under the Apache License, Version 2.0 (the "License");
  4. # you may not use this file except in compliance with the License.
  5. # You may obtain a copy of the License at
  6. #
  7. # http://www.apache.org/licenses/LICENSE-2.0
  8. #
  9. # Unless required by applicable law or agreed to in writing, software
  10. # distributed under the License is distributed on an "AS IS" BASIS,
  11. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. # See the License for the specific language governing permissions and
  13. # limitations under the License.
  14. from abc import ABC, abstractmethod
  15. from typing import Generic, List, Optional, Tuple, TypeVar
  16. from synapse.types import StrCollection, UserID
  17. # The key, this is either a stream token or int.
  18. K = TypeVar("K")
  19. # The return type.
  20. R = TypeVar("R")
  21. class EventSource(ABC, Generic[K, R]):
  22. @abstractmethod
  23. async def get_new_events(
  24. self,
  25. user: UserID,
  26. from_key: K,
  27. limit: int,
  28. room_ids: StrCollection,
  29. is_guest: bool,
  30. explicit_room_id: Optional[str] = None,
  31. ) -> Tuple[List[R], K]:
  32. raise NotImplementedError()