mirror of
https://github.com/morpheus65535/bazarr
synced 2024-12-27 01:57:33 +00:00
78 lines
2 KiB
Python
78 lines
2 KiB
Python
from .base_message import BaseHeadersMessage
|
|
"""
|
|
|
|
An `Invocation` message is a JSON object with the following properties:
|
|
|
|
* `type` - A `Number` with the literal value 1, indicating that this message
|
|
is an Invocation.
|
|
* `invocationId` - An optional `String` encoding the `Invocation ID`
|
|
for a message.
|
|
* `target` - A `String` encoding the `Target` name, as expected by the Callee's
|
|
Binder
|
|
* `arguments` - An `Array` containing arguments to apply to the method
|
|
referred to in Target. This is a sequence of JSON `Token`s,
|
|
encoded as indicated below in the "JSON Payload Encoding" section
|
|
|
|
Example:
|
|
|
|
```json
|
|
{
|
|
"type": 1,
|
|
"invocationId": "123",
|
|
"target": "Send",
|
|
"arguments": [
|
|
42,
|
|
"Test Message"
|
|
]
|
|
}
|
|
```
|
|
Example (Non-Blocking):
|
|
|
|
```json
|
|
{
|
|
"type": 1,
|
|
"target": "Send",
|
|
"arguments": [
|
|
42,
|
|
"Test Message"
|
|
]
|
|
}
|
|
```
|
|
|
|
"""
|
|
|
|
|
|
class InvocationMessage(BaseHeadersMessage):
|
|
def __init__(
|
|
self,
|
|
invocation_id,
|
|
target,
|
|
arguments, **kwargs):
|
|
super(InvocationMessage, self).__init__(1, **kwargs)
|
|
self.invocation_id = invocation_id
|
|
self.target = target
|
|
self.arguments = arguments
|
|
|
|
def __repr__(self):
|
|
repr_str =\
|
|
"InvocationMessage: invocation_id {0}, target {1}, arguments {2}"
|
|
return repr_str.format(self.invocation_id, self.target, self.arguments)
|
|
|
|
|
|
class InvocationClientStreamMessage(BaseHeadersMessage):
|
|
def __init__(
|
|
self,
|
|
stream_ids,
|
|
target,
|
|
arguments,
|
|
**kwargs):
|
|
super(InvocationClientStreamMessage, self).__init__(1, **kwargs)
|
|
self.target = target
|
|
self.arguments = arguments
|
|
self.stream_ids = stream_ids
|
|
|
|
def __repr__(self):
|
|
repr_str =\
|
|
"InvocationMessage: stream_ids {0}, target {1}, arguments {2}"
|
|
return repr_str.format(
|
|
self.stream_ids, self.target, self.arguments)
|