| 112 | |
| 113 | |
| 114 | class Request: |
| 115 | def __init__(self) -> None: |
| 116 | self.cv = asyncio.Condition() |
| 117 | self.result: Optional[PayloadLike] = None |
| 118 | self.error: Optional[Error] = None |
| 119 | |
| 120 | async def on_result(self, params: PayloadLike) -> None: |
| 121 | self.result = params |
| 122 | async with self.cv: |
| 123 | self.cv.notify() |
| 124 | |
| 125 | async def on_error(self, err: Error) -> None: |
| 126 | self.error = err |
| 127 | async with self.cv: |
| 128 | self.cv.notify() |
| 129 | |
| 130 | |
| 131 | def content_length(line: bytes) -> Optional[int]: |