| 1234567891011121314151617181920212223242526272829303132 |
- from .message import message
- from .message_decoder import message_decoder
- class message_receiver:
- def __init__(self) -> None:
- self.__types = dict()
-
- def register(self, target: type) -> object:
- if not issubclass(target, message):
- raise RuntimeError("Can not register type which is not message.")
- if not target.get_type() in self.__types.keys():
- self.__types[target.get_type()] = target
- return self
- if self.__types[target.get_type()] != target:
- raise RuntimeError("That ID already own by other message.")
- return self
- self.__types[target.get_type()] = target
- return self
- def receive(self, content: bytes) -> message:
- decoder = message_decoder(content)
- type_id = decoder.extract_type()
- if type_id in self.__types:
- return decoder.build(self.__types[type_id])
- raise RuntimeError("Can nof find message type ID in registered.")
-
|