| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- from .field import field
- from .message_coder import message_coder
- from .message_encoder import message_encoder
- class message:
- _type = None
- def __init__(self) -> None:
- self.__fields = list()
- if self._type is None:
- raise RuntimeError("Message type can not being None.")
- @classmethod
- def get_type(cls) -> int:
- return cls._type
- @property
- def fields(self) -> tuple:
- return tuple(self.__fields)
- def _add_field(self, target: field) -> None:
- if target in self.__fields:
- return
- self.__fields.append(target)
- title = target.title
- setter = lambda content: target.set(content)
- getter = lambda : target.get()
- setattr(self, "set_" + title, setter)
- setattr(self, "get_" + title, getter)
- @property
- def size(self) -> int:
- result = 0
- for count in self.__fields:
- result += count.size
- return result
- def __len__(self) -> int:
- return self.size
- def encoder(self) -> message_encoder:
- return message_encoder(self)
|