openreplay/mobs/templates/backend~pkg~messages~read-message.go.erb
Alexander 5887ab5ddb
Message protocol update (message size) (#663)
* feat(tracker): update message schema with BatchMetadata; separate message-related responsibilities; add message size
* chore(docker): removing edge busybox, as the main repo updated
* feat(backend): updated message protocol templates
* feat(backend): added support of message size
* feat(backend): implemented iterator for new message protocol (with message size)

Co-authored-by: Alex Kaminskii <alex@openreplay.com>
2022-08-22 12:32:48 +02:00

30 lines
667 B
Text

// Auto-generated, do not edit
package messages
import (
"fmt"
"io"
)
<% $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 %>:
return Decode<%= msg.name %>(reader)
<% end %>
}
return nil, fmt.Errorf("Unknown message code: %v", t)
}