MCPcopy
hub / github.com/hwholiday/learning_tools / Unmarshal

Method Unmarshal

websocket/gateway/msg/msg.go:71–91  ·  view source on GitHub ↗
(msg []byte)

Source from the content-addressed store, hash-verified

69}
70
71func (m *MsgProtocol) Unmarshal(msg []byte) (interface{}, error) {
72 if len(msg) < 2 {
73 return nil, ErrMsgShort
74 }
75 var id uint16
76 if m.useBigEndian {
77 id = binary.BigEndian.Uint16(msg[:2])
78 } else {
79 id = binary.LittleEndian.Uint16(msg[:2])
80 }
81 msgType, ok := m.msgInfo[id]
82 if !ok {
83 return nil, ErrNotRegister
84 }
85 var data = reflect.New(msgType.Elem()).Interface()
86 err := proto.Unmarshal(msg[2:], data.(proto.Message))
87 if err != nil {
88 return nil, err
89 }
90 return data, nil
91}

Callers 15

XXX_UnmarshalMethod · 0.80
XXX_UnmarshalMethod · 0.80
wsHandleFunction · 0.80
XXX_UnmarshalMethod · 0.80
getDbInfoByPathFunction · 0.80
AddNodeMethod · 0.80
XXX_UnmarshalMethod · 0.80
XXX_UnmarshalMethod · 0.80
XXX_UnmarshalMethod · 0.80
XXX_UnmarshalMethod · 0.80
mainFunction · 0.80
XXX_UnmarshalMethod · 0.80

Calls

no outgoing calls

Tested by 4

TestGetFunction · 0.64
TestMainFunction · 0.64
TestNewMsgProtocolFunction · 0.64
Test_jsonFunction · 0.64