blob: 85e203a3d9938c2f75b398f442e7d83e9ef86d15 [file] [log] [blame]
Aaron Orensteinafe15d22024-06-08 11:24:41 -07001# mypy: allow-untyped-defs
Chen, Zejun8e60d642023-10-22 13:22:58 +00002from abc import ABC, abstractmethod
3
4
5class _StreamBase(ABC):
6 r"""Base stream class abstraction for multi backends Stream to herit from"""
7
8 @abstractmethod
cyybdea4902024-05-15 04:58:03 +00009 def wait_event(self, event) -> None:
Xuehai Pan93e24992024-04-17 19:29:30 +000010 raise NotImplementedError
Chen, Zejun8e60d642023-10-22 13:22:58 +000011
12 @abstractmethod
cyybdea4902024-05-15 04:58:03 +000013 def wait_stream(self, stream) -> None:
Xuehai Pan93e24992024-04-17 19:29:30 +000014 raise NotImplementedError
Chen, Zejun8e60d642023-10-22 13:22:58 +000015
16 @abstractmethod
cyybdea4902024-05-15 04:58:03 +000017 def record_event(self, event=None) -> None:
Xuehai Pan93e24992024-04-17 19:29:30 +000018 raise NotImplementedError
Chen, Zejun8e60d642023-10-22 13:22:58 +000019
20 @abstractmethod
cyybdea4902024-05-15 04:58:03 +000021 def query(self) -> bool:
Xuehai Pan93e24992024-04-17 19:29:30 +000022 raise NotImplementedError
Chen, Zejun8e60d642023-10-22 13:22:58 +000023
24 @abstractmethod
cyybdea4902024-05-15 04:58:03 +000025 def synchronize(self) -> None:
Xuehai Pan93e24992024-04-17 19:29:30 +000026 raise NotImplementedError
Chen, Zejun8e60d642023-10-22 13:22:58 +000027
28 @abstractmethod
cyybdea4902024-05-15 04:58:03 +000029 def __eq__(self, stream) -> bool:
Xuehai Pan93e24992024-04-17 19:29:30 +000030 raise NotImplementedError
Chen, Zejun8e60d642023-10-22 13:22:58 +000031
32
33class _EventBase(ABC):
34 r"""Base Event class abstraction for multi backends Event to herit from"""
35
36 @abstractmethod
cyybdea4902024-05-15 04:58:03 +000037 def wait(self, stream=None) -> None:
Xuehai Pan93e24992024-04-17 19:29:30 +000038 raise NotImplementedError
Chen, Zejun8e60d642023-10-22 13:22:58 +000039
40 @abstractmethod
cyybdea4902024-05-15 04:58:03 +000041 def query(self) -> bool:
Xuehai Pan93e24992024-04-17 19:29:30 +000042 raise NotImplementedError
Chen, Zejun8e60d642023-10-22 13:22:58 +000043
44 @abstractmethod
cyybdea4902024-05-15 04:58:03 +000045 def synchronize(self) -> None:
Xuehai Pan93e24992024-04-17 19:29:30 +000046 raise NotImplementedError