feat(backend/mobs): clean up ruby templates and final generated code (#851)
This commit is contained in:
parent
2dcdf0a6d8
commit
08b47991aa
9 changed files with 1625 additions and 2998 deletions
|
|
@ -4,7 +4,6 @@ import "fmt"
|
||||||
|
|
||||||
type Message interface {
|
type Message interface {
|
||||||
Encode() []byte
|
Encode() []byte
|
||||||
EncodeWithIndex() []byte
|
|
||||||
Decode() Message
|
Decode() Message
|
||||||
TypeID() int
|
TypeID() int
|
||||||
Meta() *message
|
Meta() *message
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,11 +1,9 @@
|
||||||
package messages
|
package messages
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"log"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|
@ -21,19 +19,6 @@ func ReadByte(reader io.Reader) (byte, error) {
|
||||||
return one[0], nil
|
return one[0], nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func ReadData(reader io.Reader) ([]byte, error) {
|
|
||||||
n, err := ReadUint(reader)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
p := make([]byte, n)
|
|
||||||
_, err = io.ReadFull(reader, p)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return p, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func ReadUint(reader io.Reader) (uint64, error) {
|
func ReadUint(reader io.Reader) (uint64, error) {
|
||||||
var x uint64
|
var x uint64
|
||||||
var s uint
|
var s uint
|
||||||
|
|
@ -55,6 +40,16 @@ func ReadUint(reader io.Reader) (uint64, error) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func WriteUint(v uint64, buf []byte, p int) int {
|
||||||
|
for v >= 0x80 {
|
||||||
|
buf[p] = byte(v) | 0x80
|
||||||
|
v >>= 7
|
||||||
|
p++
|
||||||
|
}
|
||||||
|
buf[p] = byte(v)
|
||||||
|
return p + 1
|
||||||
|
}
|
||||||
|
|
||||||
func ReadInt(reader io.Reader) (int64, error) {
|
func ReadInt(reader io.Reader) (int64, error) {
|
||||||
ux, err := ReadUint(reader)
|
ux, err := ReadUint(reader)
|
||||||
x := int64(ux >> 1)
|
x := int64(ux >> 1)
|
||||||
|
|
@ -67,6 +62,14 @@ func ReadInt(reader io.Reader) (int64, error) {
|
||||||
return x, err
|
return x, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func WriteInt(v int64, buf []byte, p int) int {
|
||||||
|
uv := uint64(v) << 1
|
||||||
|
if v < 0 {
|
||||||
|
uv = ^uv
|
||||||
|
}
|
||||||
|
return WriteUint(uv, buf, p)
|
||||||
|
}
|
||||||
|
|
||||||
func ReadBoolean(reader io.Reader) (bool, error) {
|
func ReadBoolean(reader io.Reader) (bool, error) {
|
||||||
p := make([]byte, 1)
|
p := make([]byte, 1)
|
||||||
_, err := io.ReadFull(reader, p)
|
_, err := io.ReadFull(reader, p)
|
||||||
|
|
@ -76,6 +79,15 @@ func ReadBoolean(reader io.Reader) (bool, error) {
|
||||||
return p[0] == 1, nil
|
return p[0] == 1, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func WriteBoolean(v bool, buf []byte, p int) int {
|
||||||
|
if v {
|
||||||
|
buf[p] = 1
|
||||||
|
} else {
|
||||||
|
buf[p] = 0
|
||||||
|
}
|
||||||
|
return p + 1
|
||||||
|
}
|
||||||
|
|
||||||
func ReadString(reader io.Reader) (string, error) {
|
func ReadString(reader io.Reader) (string, error) {
|
||||||
l, err := ReadUint(reader)
|
l, err := ReadUint(reader)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -92,73 +104,11 @@ func ReadString(reader io.Reader) (string, error) {
|
||||||
return string(buf), nil
|
return string(buf), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func ReadJson(reader io.Reader) (interface{}, error) {
|
|
||||||
jsonData, err := ReadData(reader)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
var v interface{}
|
|
||||||
if err = json.Unmarshal(jsonData, &v); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return v, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func WriteUint(v uint64, buf []byte, p int) int {
|
|
||||||
for v >= 0x80 {
|
|
||||||
buf[p] = byte(v) | 0x80
|
|
||||||
v >>= 7
|
|
||||||
p++
|
|
||||||
}
|
|
||||||
buf[p] = byte(v)
|
|
||||||
return p + 1
|
|
||||||
}
|
|
||||||
|
|
||||||
func WriteInt(v int64, buf []byte, p int) int {
|
|
||||||
uv := uint64(v) << 1
|
|
||||||
if v < 0 {
|
|
||||||
uv = ^uv
|
|
||||||
}
|
|
||||||
return WriteUint(uv, buf, p)
|
|
||||||
}
|
|
||||||
|
|
||||||
func WriteBoolean(v bool, buf []byte, p int) int {
|
|
||||||
if v {
|
|
||||||
buf[p] = 1
|
|
||||||
} else {
|
|
||||||
buf[p] = 0
|
|
||||||
}
|
|
||||||
return p + 1
|
|
||||||
}
|
|
||||||
|
|
||||||
func WriteString(str string, buf []byte, p int) int {
|
func WriteString(str string, buf []byte, p int) int {
|
||||||
p = WriteUint(uint64(len(str)), buf, p)
|
p = WriteUint(uint64(len(str)), buf, p)
|
||||||
return p + copy(buf[p:], str)
|
return p + copy(buf[p:], str)
|
||||||
}
|
}
|
||||||
|
|
||||||
func WriteData(data []byte, buf []byte, p int) int {
|
|
||||||
p = WriteUint(uint64(len(data)), buf, p)
|
|
||||||
return p + copy(buf[p:], data)
|
|
||||||
}
|
|
||||||
|
|
||||||
func WriteJson(v interface{}, buf []byte, p int) int {
|
|
||||||
data, err := json.Marshal(v)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("JSON encoding error: %v", err)
|
|
||||||
return WriteString("null", buf, p)
|
|
||||||
}
|
|
||||||
return WriteData(data, buf, p)
|
|
||||||
}
|
|
||||||
|
|
||||||
func WriteSize(size uint64, buf []byte, p int) {
|
|
||||||
var m uint64 = 255
|
|
||||||
for i := 0; i < 3; i++ {
|
|
||||||
buf[p+i] = byte(size & m)
|
|
||||||
size = size >> 8
|
|
||||||
}
|
|
||||||
fmt.Println(buf)
|
|
||||||
}
|
|
||||||
|
|
||||||
func ReadSize(reader io.Reader) (uint64, error) {
|
func ReadSize(reader io.Reader) (uint64, error) {
|
||||||
n, err := io.ReadFull(reader, three)
|
n, err := io.ReadFull(reader, three)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ package messages
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"encoding/binary"
|
|
||||||
"io"
|
"io"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
@ -46,22 +45,6 @@ func (m *RawMessage) Encode() []byte {
|
||||||
return m.data
|
return m.data
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *RawMessage) EncodeWithIndex() []byte {
|
|
||||||
if !m.encoded {
|
|
||||||
if m.Encode() == nil {
|
|
||||||
*m.broken = true
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if IsIOSType(int(m.tp)) {
|
|
||||||
return m.data
|
|
||||||
}
|
|
||||||
data := make([]byte, len(m.data)+8)
|
|
||||||
copy(data[8:], m.data[:])
|
|
||||||
binary.LittleEndian.PutUint64(data[0:], m.Meta().Index)
|
|
||||||
return data
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *RawMessage) Decode() Message {
|
func (m *RawMessage) Decode() Message {
|
||||||
if !m.encoded {
|
if !m.encoded {
|
||||||
if m.Encode() == nil {
|
if m.Encode() == nil {
|
||||||
|
|
|
||||||
|
|
@ -1752,304 +1752,204 @@ func DecodeIOSIssueEvent(reader io.Reader) (Message, error) {
|
||||||
|
|
||||||
func ReadMessage(t uint64, reader io.Reader) (Message, error) {
|
func ReadMessage(t uint64, reader io.Reader) (Message, error) {
|
||||||
switch t {
|
switch t {
|
||||||
|
|
||||||
case 80:
|
case 80:
|
||||||
return DecodeBatchMeta(reader)
|
return DecodeBatchMeta(reader)
|
||||||
|
|
||||||
case 81:
|
case 81:
|
||||||
return DecodeBatchMetadata(reader)
|
return DecodeBatchMetadata(reader)
|
||||||
|
|
||||||
case 82:
|
case 82:
|
||||||
return DecodePartitionedMessage(reader)
|
return DecodePartitionedMessage(reader)
|
||||||
|
|
||||||
case 0:
|
case 0:
|
||||||
return DecodeTimestamp(reader)
|
return DecodeTimestamp(reader)
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
return DecodeSessionStart(reader)
|
return DecodeSessionStart(reader)
|
||||||
|
|
||||||
case 3:
|
case 3:
|
||||||
return DecodeSessionEndDeprecated(reader)
|
return DecodeSessionEndDeprecated(reader)
|
||||||
|
|
||||||
case 4:
|
case 4:
|
||||||
return DecodeSetPageLocation(reader)
|
return DecodeSetPageLocation(reader)
|
||||||
|
|
||||||
case 5:
|
case 5:
|
||||||
return DecodeSetViewportSize(reader)
|
return DecodeSetViewportSize(reader)
|
||||||
|
|
||||||
case 6:
|
case 6:
|
||||||
return DecodeSetViewportScroll(reader)
|
return DecodeSetViewportScroll(reader)
|
||||||
|
|
||||||
case 7:
|
case 7:
|
||||||
return DecodeCreateDocument(reader)
|
return DecodeCreateDocument(reader)
|
||||||
|
|
||||||
case 8:
|
case 8:
|
||||||
return DecodeCreateElementNode(reader)
|
return DecodeCreateElementNode(reader)
|
||||||
|
|
||||||
case 9:
|
case 9:
|
||||||
return DecodeCreateTextNode(reader)
|
return DecodeCreateTextNode(reader)
|
||||||
|
|
||||||
case 10:
|
case 10:
|
||||||
return DecodeMoveNode(reader)
|
return DecodeMoveNode(reader)
|
||||||
|
|
||||||
case 11:
|
case 11:
|
||||||
return DecodeRemoveNode(reader)
|
return DecodeRemoveNode(reader)
|
||||||
|
|
||||||
case 12:
|
case 12:
|
||||||
return DecodeSetNodeAttribute(reader)
|
return DecodeSetNodeAttribute(reader)
|
||||||
|
|
||||||
case 13:
|
case 13:
|
||||||
return DecodeRemoveNodeAttribute(reader)
|
return DecodeRemoveNodeAttribute(reader)
|
||||||
|
|
||||||
case 14:
|
case 14:
|
||||||
return DecodeSetNodeData(reader)
|
return DecodeSetNodeData(reader)
|
||||||
|
|
||||||
case 15:
|
case 15:
|
||||||
return DecodeSetCSSData(reader)
|
return DecodeSetCSSData(reader)
|
||||||
|
|
||||||
case 16:
|
case 16:
|
||||||
return DecodeSetNodeScroll(reader)
|
return DecodeSetNodeScroll(reader)
|
||||||
|
|
||||||
case 17:
|
case 17:
|
||||||
return DecodeSetInputTarget(reader)
|
return DecodeSetInputTarget(reader)
|
||||||
|
|
||||||
case 18:
|
case 18:
|
||||||
return DecodeSetInputValue(reader)
|
return DecodeSetInputValue(reader)
|
||||||
|
|
||||||
case 19:
|
case 19:
|
||||||
return DecodeSetInputChecked(reader)
|
return DecodeSetInputChecked(reader)
|
||||||
|
|
||||||
case 20:
|
case 20:
|
||||||
return DecodeMouseMove(reader)
|
return DecodeMouseMove(reader)
|
||||||
|
|
||||||
case 22:
|
case 22:
|
||||||
return DecodeConsoleLog(reader)
|
return DecodeConsoleLog(reader)
|
||||||
|
|
||||||
case 23:
|
case 23:
|
||||||
return DecodePageLoadTiming(reader)
|
return DecodePageLoadTiming(reader)
|
||||||
|
|
||||||
case 24:
|
case 24:
|
||||||
return DecodePageRenderTiming(reader)
|
return DecodePageRenderTiming(reader)
|
||||||
|
|
||||||
case 25:
|
case 25:
|
||||||
return DecodeJSExceptionDeprecated(reader)
|
return DecodeJSExceptionDeprecated(reader)
|
||||||
|
|
||||||
case 26:
|
case 26:
|
||||||
return DecodeIntegrationEvent(reader)
|
return DecodeIntegrationEvent(reader)
|
||||||
|
|
||||||
case 27:
|
case 27:
|
||||||
return DecodeRawCustomEvent(reader)
|
return DecodeRawCustomEvent(reader)
|
||||||
|
|
||||||
case 28:
|
case 28:
|
||||||
return DecodeUserID(reader)
|
return DecodeUserID(reader)
|
||||||
|
|
||||||
case 29:
|
case 29:
|
||||||
return DecodeUserAnonymousID(reader)
|
return DecodeUserAnonymousID(reader)
|
||||||
|
|
||||||
case 30:
|
case 30:
|
||||||
return DecodeMetadata(reader)
|
return DecodeMetadata(reader)
|
||||||
|
|
||||||
case 31:
|
case 31:
|
||||||
return DecodePageEvent(reader)
|
return DecodePageEvent(reader)
|
||||||
|
|
||||||
case 32:
|
case 32:
|
||||||
return DecodeInputEvent(reader)
|
return DecodeInputEvent(reader)
|
||||||
|
|
||||||
case 33:
|
case 33:
|
||||||
return DecodeClickEvent(reader)
|
return DecodeClickEvent(reader)
|
||||||
|
|
||||||
case 35:
|
case 35:
|
||||||
return DecodeResourceEvent(reader)
|
return DecodeResourceEvent(reader)
|
||||||
|
|
||||||
case 36:
|
case 36:
|
||||||
return DecodeCustomEvent(reader)
|
return DecodeCustomEvent(reader)
|
||||||
|
|
||||||
case 37:
|
case 37:
|
||||||
return DecodeCSSInsertRule(reader)
|
return DecodeCSSInsertRule(reader)
|
||||||
|
|
||||||
case 38:
|
case 38:
|
||||||
return DecodeCSSDeleteRule(reader)
|
return DecodeCSSDeleteRule(reader)
|
||||||
|
|
||||||
case 39:
|
case 39:
|
||||||
return DecodeFetch(reader)
|
return DecodeFetch(reader)
|
||||||
|
|
||||||
case 40:
|
case 40:
|
||||||
return DecodeProfiler(reader)
|
return DecodeProfiler(reader)
|
||||||
|
|
||||||
case 41:
|
case 41:
|
||||||
return DecodeOTable(reader)
|
return DecodeOTable(reader)
|
||||||
|
|
||||||
case 42:
|
case 42:
|
||||||
return DecodeStateAction(reader)
|
return DecodeStateAction(reader)
|
||||||
|
|
||||||
case 43:
|
case 43:
|
||||||
return DecodeStateActionEvent(reader)
|
return DecodeStateActionEvent(reader)
|
||||||
|
|
||||||
case 44:
|
case 44:
|
||||||
return DecodeRedux(reader)
|
return DecodeRedux(reader)
|
||||||
|
|
||||||
case 45:
|
case 45:
|
||||||
return DecodeVuex(reader)
|
return DecodeVuex(reader)
|
||||||
|
|
||||||
case 46:
|
case 46:
|
||||||
return DecodeMobX(reader)
|
return DecodeMobX(reader)
|
||||||
|
|
||||||
case 47:
|
case 47:
|
||||||
return DecodeNgRx(reader)
|
return DecodeNgRx(reader)
|
||||||
|
|
||||||
case 48:
|
case 48:
|
||||||
return DecodeGraphQL(reader)
|
return DecodeGraphQL(reader)
|
||||||
|
|
||||||
case 49:
|
case 49:
|
||||||
return DecodePerformanceTrack(reader)
|
return DecodePerformanceTrack(reader)
|
||||||
|
|
||||||
case 50:
|
case 50:
|
||||||
return DecodeGraphQLEvent(reader)
|
return DecodeGraphQLEvent(reader)
|
||||||
|
|
||||||
case 51:
|
case 51:
|
||||||
return DecodeFetchEvent(reader)
|
return DecodeFetchEvent(reader)
|
||||||
|
|
||||||
case 52:
|
case 52:
|
||||||
return DecodeDOMDrop(reader)
|
return DecodeDOMDrop(reader)
|
||||||
|
|
||||||
case 53:
|
case 53:
|
||||||
return DecodeResourceTiming(reader)
|
return DecodeResourceTiming(reader)
|
||||||
|
|
||||||
case 54:
|
case 54:
|
||||||
return DecodeConnectionInformation(reader)
|
return DecodeConnectionInformation(reader)
|
||||||
|
|
||||||
case 55:
|
case 55:
|
||||||
return DecodeSetPageVisibility(reader)
|
return DecodeSetPageVisibility(reader)
|
||||||
|
|
||||||
case 56:
|
case 56:
|
||||||
return DecodePerformanceTrackAggr(reader)
|
return DecodePerformanceTrackAggr(reader)
|
||||||
|
|
||||||
case 57:
|
case 57:
|
||||||
return DecodeLoadFontFace(reader)
|
return DecodeLoadFontFace(reader)
|
||||||
|
|
||||||
case 58:
|
case 58:
|
||||||
return DecodeSetNodeFocus(reader)
|
return DecodeSetNodeFocus(reader)
|
||||||
|
|
||||||
case 59:
|
case 59:
|
||||||
return DecodeLongTask(reader)
|
return DecodeLongTask(reader)
|
||||||
|
|
||||||
case 60:
|
case 60:
|
||||||
return DecodeSetNodeAttributeURLBased(reader)
|
return DecodeSetNodeAttributeURLBased(reader)
|
||||||
|
|
||||||
case 61:
|
case 61:
|
||||||
return DecodeSetCSSDataURLBased(reader)
|
return DecodeSetCSSDataURLBased(reader)
|
||||||
|
|
||||||
case 62:
|
case 62:
|
||||||
return DecodeIssueEvent(reader)
|
return DecodeIssueEvent(reader)
|
||||||
|
|
||||||
case 63:
|
case 63:
|
||||||
return DecodeTechnicalInfo(reader)
|
return DecodeTechnicalInfo(reader)
|
||||||
|
|
||||||
case 64:
|
case 64:
|
||||||
return DecodeCustomIssue(reader)
|
return DecodeCustomIssue(reader)
|
||||||
|
|
||||||
case 66:
|
case 66:
|
||||||
return DecodeAssetCache(reader)
|
return DecodeAssetCache(reader)
|
||||||
|
|
||||||
case 67:
|
case 67:
|
||||||
return DecodeCSSInsertRuleURLBased(reader)
|
return DecodeCSSInsertRuleURLBased(reader)
|
||||||
|
|
||||||
case 69:
|
case 69:
|
||||||
return DecodeMouseClick(reader)
|
return DecodeMouseClick(reader)
|
||||||
|
|
||||||
case 70:
|
case 70:
|
||||||
return DecodeCreateIFrameDocument(reader)
|
return DecodeCreateIFrameDocument(reader)
|
||||||
|
|
||||||
case 71:
|
case 71:
|
||||||
return DecodeAdoptedSSReplaceURLBased(reader)
|
return DecodeAdoptedSSReplaceURLBased(reader)
|
||||||
|
|
||||||
case 72:
|
case 72:
|
||||||
return DecodeAdoptedSSReplace(reader)
|
return DecodeAdoptedSSReplace(reader)
|
||||||
|
|
||||||
case 73:
|
case 73:
|
||||||
return DecodeAdoptedSSInsertRuleURLBased(reader)
|
return DecodeAdoptedSSInsertRuleURLBased(reader)
|
||||||
|
|
||||||
case 74:
|
case 74:
|
||||||
return DecodeAdoptedSSInsertRule(reader)
|
return DecodeAdoptedSSInsertRule(reader)
|
||||||
|
|
||||||
case 75:
|
case 75:
|
||||||
return DecodeAdoptedSSDeleteRule(reader)
|
return DecodeAdoptedSSDeleteRule(reader)
|
||||||
|
|
||||||
case 76:
|
case 76:
|
||||||
return DecodeAdoptedSSAddOwner(reader)
|
return DecodeAdoptedSSAddOwner(reader)
|
||||||
|
|
||||||
case 77:
|
case 77:
|
||||||
return DecodeAdoptedSSRemoveOwner(reader)
|
return DecodeAdoptedSSRemoveOwner(reader)
|
||||||
|
|
||||||
case 79:
|
case 79:
|
||||||
return DecodeZustand(reader)
|
return DecodeZustand(reader)
|
||||||
|
|
||||||
case 78:
|
case 78:
|
||||||
return DecodeJSException(reader)
|
return DecodeJSException(reader)
|
||||||
|
|
||||||
case 126:
|
case 126:
|
||||||
return DecodeSessionEnd(reader)
|
return DecodeSessionEnd(reader)
|
||||||
|
|
||||||
case 127:
|
case 127:
|
||||||
return DecodeSessionSearch(reader)
|
return DecodeSessionSearch(reader)
|
||||||
|
|
||||||
case 107:
|
case 107:
|
||||||
return DecodeIOSBatchMeta(reader)
|
return DecodeIOSBatchMeta(reader)
|
||||||
|
|
||||||
case 90:
|
case 90:
|
||||||
return DecodeIOSSessionStart(reader)
|
return DecodeIOSSessionStart(reader)
|
||||||
|
|
||||||
case 91:
|
case 91:
|
||||||
return DecodeIOSSessionEnd(reader)
|
return DecodeIOSSessionEnd(reader)
|
||||||
|
|
||||||
case 92:
|
case 92:
|
||||||
return DecodeIOSMetadata(reader)
|
return DecodeIOSMetadata(reader)
|
||||||
|
|
||||||
case 93:
|
case 93:
|
||||||
return DecodeIOSCustomEvent(reader)
|
return DecodeIOSCustomEvent(reader)
|
||||||
|
|
||||||
case 94:
|
case 94:
|
||||||
return DecodeIOSUserID(reader)
|
return DecodeIOSUserID(reader)
|
||||||
|
|
||||||
case 95:
|
case 95:
|
||||||
return DecodeIOSUserAnonymousID(reader)
|
return DecodeIOSUserAnonymousID(reader)
|
||||||
|
|
||||||
case 96:
|
case 96:
|
||||||
return DecodeIOSScreenChanges(reader)
|
return DecodeIOSScreenChanges(reader)
|
||||||
|
|
||||||
case 97:
|
case 97:
|
||||||
return DecodeIOSCrash(reader)
|
return DecodeIOSCrash(reader)
|
||||||
|
|
||||||
case 98:
|
case 98:
|
||||||
return DecodeIOSScreenEnter(reader)
|
return DecodeIOSScreenEnter(reader)
|
||||||
|
|
||||||
case 99:
|
case 99:
|
||||||
return DecodeIOSScreenLeave(reader)
|
return DecodeIOSScreenLeave(reader)
|
||||||
|
|
||||||
case 100:
|
case 100:
|
||||||
return DecodeIOSClickEvent(reader)
|
return DecodeIOSClickEvent(reader)
|
||||||
|
|
||||||
case 101:
|
case 101:
|
||||||
return DecodeIOSInputEvent(reader)
|
return DecodeIOSInputEvent(reader)
|
||||||
|
|
||||||
case 102:
|
case 102:
|
||||||
return DecodeIOSPerformanceEvent(reader)
|
return DecodeIOSPerformanceEvent(reader)
|
||||||
|
|
||||||
case 103:
|
case 103:
|
||||||
return DecodeIOSLog(reader)
|
return DecodeIOSLog(reader)
|
||||||
|
|
||||||
case 104:
|
case 104:
|
||||||
return DecodeIOSInternalError(reader)
|
return DecodeIOSInternalError(reader)
|
||||||
|
|
||||||
case 105:
|
case 105:
|
||||||
return DecodeIOSNetworkCall(reader)
|
return DecodeIOSNetworkCall(reader)
|
||||||
|
|
||||||
case 110:
|
case 110:
|
||||||
return DecodeIOSPerformanceAggregated(reader)
|
return DecodeIOSPerformanceAggregated(reader)
|
||||||
|
|
||||||
case 111:
|
case 111:
|
||||||
return DecodeIOSIssueEvent(reader)
|
return DecodeIOSIssueEvent(reader)
|
||||||
|
|
||||||
}
|
}
|
||||||
return nil, fmt.Errorf("Unknown message code: %v", t)
|
return nil, fmt.Errorf("Unknown message code: %v", t)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,38 +2,21 @@ package messages
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
one = []byte{0}
|
||||||
|
three = []byte{0, 0, 0}
|
||||||
|
)
|
||||||
|
|
||||||
func ReadByte(reader io.Reader) (byte, error) {
|
func ReadByte(reader io.Reader) (byte, error) {
|
||||||
p := make([]byte, 1)
|
_, err := io.ReadFull(reader, one)
|
||||||
_, err := io.ReadFull(reader, p)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
return p[0], nil
|
return one[0], nil
|
||||||
}
|
|
||||||
|
|
||||||
func SkipBytes(reader io.ReadSeeker) error {
|
|
||||||
n, err := ReadUint(reader)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
_, err = reader.Seek(int64(n), io.SeekCurrent)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
func ReadData(reader io.Reader) ([]byte, error) {
|
|
||||||
n, err := ReadUint(reader)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
p := make([]byte, n)
|
|
||||||
_, err = io.ReadFull(reader, p)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return p, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func ReadUint(reader io.Reader) (uint64, error) {
|
func ReadUint(reader io.Reader) (uint64, error) {
|
||||||
|
|
@ -47,7 +30,7 @@ func ReadUint(reader io.Reader) (uint64, error) {
|
||||||
}
|
}
|
||||||
if b < 0x80 {
|
if b < 0x80 {
|
||||||
if i > 9 || i == 9 && b > 1 {
|
if i > 9 || i == 9 && b > 1 {
|
||||||
return x, errors.New("overflow")
|
return x, errors.New("uint overflow")
|
||||||
}
|
}
|
||||||
return x | uint64(b)<<s, nil
|
return x | uint64(b)<<s, nil
|
||||||
}
|
}
|
||||||
|
|
@ -57,6 +40,16 @@ func ReadUint(reader io.Reader) (uint64, error) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func WriteUint(v uint64, buf []byte, p int) int {
|
||||||
|
for v >= 0x80 {
|
||||||
|
buf[p] = byte(v) | 0x80
|
||||||
|
v >>= 7
|
||||||
|
p++
|
||||||
|
}
|
||||||
|
buf[p] = byte(v)
|
||||||
|
return p + 1
|
||||||
|
}
|
||||||
|
|
||||||
func ReadInt(reader io.Reader) (int64, error) {
|
func ReadInt(reader io.Reader) (int64, error) {
|
||||||
ux, err := ReadUint(reader)
|
ux, err := ReadUint(reader)
|
||||||
x := int64(ux >> 1)
|
x := int64(ux >> 1)
|
||||||
|
|
@ -69,6 +62,14 @@ func ReadInt(reader io.Reader) (int64, error) {
|
||||||
return x, err
|
return x, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func WriteInt(v int64, buf []byte, p int) int {
|
||||||
|
uv := uint64(v) << 1
|
||||||
|
if v < 0 {
|
||||||
|
uv = ^uv
|
||||||
|
}
|
||||||
|
return WriteUint(uv, buf, p)
|
||||||
|
}
|
||||||
|
|
||||||
func ReadBoolean(reader io.Reader) (bool, error) {
|
func ReadBoolean(reader io.Reader) (bool, error) {
|
||||||
p := make([]byte, 1)
|
p := make([]byte, 1)
|
||||||
_, err := io.ReadFull(reader, p)
|
_, err := io.ReadFull(reader, p)
|
||||||
|
|
@ -78,37 +79,6 @@ func ReadBoolean(reader io.Reader) (bool, error) {
|
||||||
return p[0] == 1, nil
|
return p[0] == 1, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func ReadString(reader io.Reader) (string, error) {
|
|
||||||
l, err := ReadUint(reader)
|
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
buf := make([]byte, l)
|
|
||||||
_, err = io.ReadFull(reader, buf)
|
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
return string(buf), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func WriteUint(v uint64, buf []byte, p int) int {
|
|
||||||
for v >= 0x80 {
|
|
||||||
buf[p] = byte(v) | 0x80
|
|
||||||
v >>= 7
|
|
||||||
p++
|
|
||||||
}
|
|
||||||
buf[p] = byte(v)
|
|
||||||
return p + 1
|
|
||||||
}
|
|
||||||
|
|
||||||
func WriteInt(v int64, buf []byte, p int) int {
|
|
||||||
uv := uint64(v) << 1
|
|
||||||
if v < 0 {
|
|
||||||
uv = ^uv
|
|
||||||
}
|
|
||||||
return WriteUint(uv, buf, p)
|
|
||||||
}
|
|
||||||
|
|
||||||
func WriteBoolean(v bool, buf []byte, p int) int {
|
func WriteBoolean(v bool, buf []byte, p int) int {
|
||||||
if v {
|
if v {
|
||||||
buf[p] = 1
|
buf[p] = 1
|
||||||
|
|
@ -118,7 +88,38 @@ func WriteBoolean(v bool, buf []byte, p int) int {
|
||||||
return p + 1
|
return p + 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func ReadString(reader io.Reader) (string, error) {
|
||||||
|
l, err := ReadUint(reader)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
if l > 10e6 {
|
||||||
|
return "", errors.New("Too long string")
|
||||||
|
}
|
||||||
|
buf := make([]byte, l)
|
||||||
|
_, err = io.ReadFull(reader, buf)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
return string(buf), nil
|
||||||
|
}
|
||||||
|
|
||||||
func WriteString(str string, buf []byte, p int) int {
|
func WriteString(str string, buf []byte, p int) int {
|
||||||
p = WriteUint(uint64(len(str)), buf, p)
|
p = WriteUint(uint64(len(str)), buf, p)
|
||||||
return p + copy(buf[p:], str)
|
return p + copy(buf[p:], str)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func ReadSize(reader io.Reader) (uint64, error) {
|
||||||
|
n, err := io.ReadFull(reader, three)
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
if n != 3 {
|
||||||
|
return 0, fmt.Errorf("read only %d of 3 size bytes", n)
|
||||||
|
}
|
||||||
|
var size uint64
|
||||||
|
for i, b := range three {
|
||||||
|
size += uint64(b) << (8 * i)
|
||||||
|
}
|
||||||
|
return size, nil
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,8 @@
|
||||||
// Auto-generated, do not edit
|
// Auto-generated, do not edit
|
||||||
package messages
|
package messages
|
||||||
|
|
||||||
import "encoding/binary"
|
const (<% $messages.each do |msg| %>
|
||||||
|
Msg<%= msg.name %> = <%= msg.id %><% end %>
|
||||||
const (
|
|
||||||
<% $messages.each do |msg| %>
|
|
||||||
Msg<%= msg.name %> = <%= msg.id %>
|
|
||||||
<% end %>
|
|
||||||
)
|
)
|
||||||
|
|
||||||
<% $messages.each do |msg| %>
|
<% $messages.each do |msg| %>
|
||||||
|
|
@ -25,17 +21,6 @@ func (msg *<%= msg.name %>) Encode() []byte {
|
||||||
return buf[:p]
|
return buf[:p]
|
||||||
}
|
}
|
||||||
|
|
||||||
func (msg *<%= msg.name %>) EncodeWithIndex() []byte {
|
|
||||||
encoded := msg.Encode()
|
|
||||||
if IsIOSType(msg.TypeID()) {
|
|
||||||
return encoded
|
|
||||||
}
|
|
||||||
data := make([]byte, len(encoded)+8)
|
|
||||||
copy(data[8:], encoded[:])
|
|
||||||
binary.LittleEndian.PutUint64(data[0:], msg.Meta().Index)
|
|
||||||
return data
|
|
||||||
}
|
|
||||||
|
|
||||||
func (msg *<%= msg.name %>) Decode() Message {
|
func (msg *<%= msg.name %>) Decode() Message {
|
||||||
return msg
|
return msg
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
)
|
)
|
||||||
|
|
||||||
<% $messages.each do |msg| %>
|
<% $messages.each do |msg| %>
|
||||||
func Decode<%= msg.name %>(reader io.Reader) (Message, error) {
|
func Decode<%= msg.name %>(reader io.Reader) (Message, error) {
|
||||||
var err error = nil
|
var err error = nil
|
||||||
|
|
@ -16,15 +15,11 @@ func Decode<%= msg.name %>(reader io.Reader) (Message, error) {
|
||||||
}" }.join "\n" %>
|
}" }.join "\n" %>
|
||||||
return msg, err
|
return msg, err
|
||||||
}
|
}
|
||||||
|
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
func ReadMessage(t uint64, reader io.Reader) (Message, error) {
|
func ReadMessage(t uint64, reader io.Reader) (Message, error) {
|
||||||
switch t {
|
switch t {<% $messages.each do |msg| %>
|
||||||
<% $messages.each do |msg| %>
|
|
||||||
case <%= msg.id %>:
|
case <%= msg.id %>:
|
||||||
return Decode<%= msg.name %>(reader)
|
return Decode<%= msg.name %>(reader)<% end %>
|
||||||
<% end %>
|
|
||||||
}
|
}
|
||||||
return nil, fmt.Errorf("Unknown message code: %v", t)
|
return nil, fmt.Errorf("Unknown message code: %v", t)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue