Aaron Orenstein | afe15d2 | 2024-06-08 11:24:41 -0700 | [diff] [blame] | 1 | # mypy: allow-untyped-defs |
Chen, Zejun | 8e60d64 | 2023-10-22 13:22:58 +0000 | [diff] [blame] | 2 | from abc import ABC, abstractmethod |
| 3 | |
| 4 | |
| 5 | class _StreamBase(ABC): |
| 6 | r"""Base stream class abstraction for multi backends Stream to herit from""" |
| 7 | |
| 8 | @abstractmethod |
cyy | bdea490 | 2024-05-15 04:58:03 +0000 | [diff] [blame] | 9 | def wait_event(self, event) -> None: |
Xuehai Pan | 93e2499 | 2024-04-17 19:29:30 +0000 | [diff] [blame] | 10 | raise NotImplementedError |
Chen, Zejun | 8e60d64 | 2023-10-22 13:22:58 +0000 | [diff] [blame] | 11 | |
| 12 | @abstractmethod |
cyy | bdea490 | 2024-05-15 04:58:03 +0000 | [diff] [blame] | 13 | def wait_stream(self, stream) -> None: |
Xuehai Pan | 93e2499 | 2024-04-17 19:29:30 +0000 | [diff] [blame] | 14 | raise NotImplementedError |
Chen, Zejun | 8e60d64 | 2023-10-22 13:22:58 +0000 | [diff] [blame] | 15 | |
| 16 | @abstractmethod |
cyy | bdea490 | 2024-05-15 04:58:03 +0000 | [diff] [blame] | 17 | def record_event(self, event=None) -> None: |
Xuehai Pan | 93e2499 | 2024-04-17 19:29:30 +0000 | [diff] [blame] | 18 | raise NotImplementedError |
Chen, Zejun | 8e60d64 | 2023-10-22 13:22:58 +0000 | [diff] [blame] | 19 | |
| 20 | @abstractmethod |
cyy | bdea490 | 2024-05-15 04:58:03 +0000 | [diff] [blame] | 21 | def query(self) -> bool: |
Xuehai Pan | 93e2499 | 2024-04-17 19:29:30 +0000 | [diff] [blame] | 22 | raise NotImplementedError |
Chen, Zejun | 8e60d64 | 2023-10-22 13:22:58 +0000 | [diff] [blame] | 23 | |
| 24 | @abstractmethod |
cyy | bdea490 | 2024-05-15 04:58:03 +0000 | [diff] [blame] | 25 | def synchronize(self) -> None: |
Xuehai Pan | 93e2499 | 2024-04-17 19:29:30 +0000 | [diff] [blame] | 26 | raise NotImplementedError |
Chen, Zejun | 8e60d64 | 2023-10-22 13:22:58 +0000 | [diff] [blame] | 27 | |
| 28 | @abstractmethod |
cyy | bdea490 | 2024-05-15 04:58:03 +0000 | [diff] [blame] | 29 | def __eq__(self, stream) -> bool: |
Xuehai Pan | 93e2499 | 2024-04-17 19:29:30 +0000 | [diff] [blame] | 30 | raise NotImplementedError |
Chen, Zejun | 8e60d64 | 2023-10-22 13:22:58 +0000 | [diff] [blame] | 31 | |
| 32 | |
| 33 | class _EventBase(ABC): |
| 34 | r"""Base Event class abstraction for multi backends Event to herit from""" |
| 35 | |
| 36 | @abstractmethod |
cyy | bdea490 | 2024-05-15 04:58:03 +0000 | [diff] [blame] | 37 | def wait(self, stream=None) -> None: |
Xuehai Pan | 93e2499 | 2024-04-17 19:29:30 +0000 | [diff] [blame] | 38 | raise NotImplementedError |
Chen, Zejun | 8e60d64 | 2023-10-22 13:22:58 +0000 | [diff] [blame] | 39 | |
| 40 | @abstractmethod |
cyy | bdea490 | 2024-05-15 04:58:03 +0000 | [diff] [blame] | 41 | def query(self) -> bool: |
Xuehai Pan | 93e2499 | 2024-04-17 19:29:30 +0000 | [diff] [blame] | 42 | raise NotImplementedError |
Chen, Zejun | 8e60d64 | 2023-10-22 13:22:58 +0000 | [diff] [blame] | 43 | |
| 44 | @abstractmethod |
cyy | bdea490 | 2024-05-15 04:58:03 +0000 | [diff] [blame] | 45 | def synchronize(self) -> None: |
Xuehai Pan | 93e2499 | 2024-04-17 19:29:30 +0000 | [diff] [blame] | 46 | raise NotImplementedError |