* 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>
30 lines
667 B
Text
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)
|
|
}
|