openreplay/mobs/templates/ee~connectors~msgcodec~msgcodec.py.erb

29 lines
845 B
Text

# Auto-generated, do not edit
from msgcodec.codec import Codec
from msgcodec.messages import *
class MessageCodec(Codec):
def read_message_id(self, reader: io.BytesIO) -> int:
"""
Read and return the first byte where the message id is encoded
"""
id_ = self.read_uint(reader)
return id_
def encode(self, m: Message) -> bytes:
...
def decode(self, b: bytes) -> Message:
reader = io.BytesIO(b)
message_id = self.read_message_id(reader)
<% $messages.each do |msg| %>
if message_id == <%= msg.id %>:
return <%= msg.name %>(
<%= msg.attributes.map { |attr|
"#{attr.name.underscore}=self.read_#{attr.type.to_s}(reader)" }
.join ",\n "
%>
)
<% end %>