|
7 | 7 | from ._decorators import input_serializer_param, output_deserializer |
8 | 8 | from ._dispatch import dispatch_serializer, dispatch_deserializer |
9 | 9 | from ._async_request import AsyncRequest |
| 10 | +from ._generator_request import _GeneratorRequest |
10 | 11 |
|
11 | 12 | class _BusinessHost(_Common): |
12 | 13 | """Base class for business components that defines common methods. |
@@ -67,6 +68,22 @@ async def send_request_async_ng(self, target: str, request: Union[Message, Any], |
67 | 68 | Response from target component |
68 | 69 | """ |
69 | 70 | return await AsyncRequest(target, request, timeout, description, self) |
| 71 | + |
| 72 | + @input_serializer_param(1, 'request') |
| 73 | + def send_generator_request(self, target: str, request: Union[Message, Any], |
| 74 | + timeout: int = -1, description: Optional[str] = None) -> _GeneratorRequest: |
| 75 | + """Send message as a generator request to target component. |
| 76 | + Args: |
| 77 | + target: Name of target component |
| 78 | + request: Message to send |
| 79 | + timeout: Timeout in seconds, -1 means wait forever |
| 80 | + description: Optional description for logging |
| 81 | + Returns: |
| 82 | + _GeneratorRequest: An instance of _GeneratorRequest to iterate over responses |
| 83 | + Raises: |
| 84 | + TypeError: If request is not of type Message or _GeneratorMessage |
| 85 | + """ |
| 86 | + return _GeneratorRequest(self, target, request, timeout, description) |
70 | 87 |
|
71 | 88 | def send_multi_request_sync(self, target_request: List[Tuple[str, Union[Message, Any]]], |
72 | 89 | timeout: int = -1, description: Optional[str] = None) -> List[Tuple[str, Union[Message, Any], Any, int]]: |
|
0 commit comments