feat(backend): updated message protocol templates

This commit is contained in:
Alexander Zavorotynskiy 2022-08-04 16:33:00 +02:00
parent 14b0f78abc
commit 50d310ba2b
2 changed files with 18 additions and 10 deletions

View file

@ -19,7 +19,7 @@ func SkipBytes(reader io.ReadSeeker) error {
if err != nil {
return err
}
_, err := reader.Seek(n, io.SeekCurrent);
_, err = reader.Seek(int64(n), io.SeekCurrent)
return err
}
@ -29,13 +29,13 @@ func ReadData(reader io.Reader) ([]byte, error) {
return nil, err
}
p := make([]byte, n)
_, err := io.ReadFull(reader, p)
_, err = io.ReadFull(reader, p)
if err != nil {
return nil, err
}
return p, nil
}
func ReadUint(reader io.Reader) (uint64, error) {
var x uint64
var s uint

View file

@ -6,16 +6,24 @@ import (
"io"
)
func ReadMessage(reader io.Reader) (Message, error) {
<% $messages.each do |msg| %>
func Decode<%= msg.name %>(reader io.Reader) (Message, error) {
var err error = nil
msg := &<%= msg.name %>{}
<%= msg.attributes.map { |attr|
" if msg.#{attr.name}, err = Read#{attr.type.to_s.pascal_case}(reader); err != nil {
return nil, err
}" }.join "\n" %>
return msg, err
}
<% end %>
func ReadMessage(t uint64, reader io.Reader) (Message, error) {
switch t {
<% $messages.each do |msg| %>
case <%= msg.id %>:
msg := &<%= msg.name %>{}
<%= msg.attributes.map { |attr|
" if msg.#{attr.name}, err = Read#{attr.type.to_s.pascal_case}(reader); err != nil {
return nil, err
}" }.join "\n" %>
return msg, nil
return Decode<%= msg.name %>(reader)
<% end %>
}
return nil, fmt.Errorf("Unknown message code: %v", t)