File tree Expand file tree Collapse file tree 3 files changed +15
-7
lines changed Expand file tree Collapse file tree 3 files changed +15
-7
lines changed Original file line number Diff line number Diff line change @@ -31,12 +31,12 @@ func FromBytes(buf []byte) (p *Packet, err error) {
3131 if err != nil {
3232 return nil , err
3333 }
34- p .Length = int ( length )
34+ p .Length = length
3535 p .lenbuf = buf [pos :cursor ]
3636 pos = cursor
3737
3838 // read Value bytes
39- cursor = pos + p .Length
39+ cursor = pos + int ( p .Length )
4040 if cursor > len (buf ) {
4141 return nil , errors .New ("malformed valbuf" )
4242 }
@@ -111,7 +111,7 @@ func (p *Packet) GetValueAsInt64() (int64, error) {
111111// GetValueAsFloat32 decode value as uint32
112112func (p * Packet ) GetValueAsFloat32 () (float32 , error ) {
113113 var val float32
114- codec := encoding.VarCodec {Size : p .Length }
114+ codec := encoding.VarCodec {Size : int ( p .Length ) }
115115 err := codec .DecodeVarFloat32 (p .valbuf , & val )
116116 return val , err
117117}
@@ -128,7 +128,7 @@ func (p *Packet) GetValueAsBool() (bool, error) {
128128// GetValueAsFloat64 decode value as float64
129129func (p * Packet ) GetValueAsFloat64 () (float64 , error ) {
130130 var val float64
131- codec := encoding.VarCodec {Size : p .Length }
131+ codec := encoding.VarCodec {Size : int ( p .Length ) }
132132 err := codec .DecodeVarFloat64 (p .valbuf , & val )
133133 return val , err
134134}
Original file line number Diff line number Diff line change @@ -6,12 +6,20 @@ import (
66
77// NewPacket create new Packet object
88func NewPacket (sid uint64 ) (* Packet , error ) {
9- var p = & Packet {Tag : sid }
9+ var p = & Packet {}
1010 tmp , err := writePVarUInt64Buffer (sid )
1111 p .tagbuf = tmp
1212 return p , err
1313}
1414
15+ // NewRawPacket create new Packet object with
16+ func NewRawPacket (rawID []byte ) (* Packet , error ) {
17+ // TODO, validate rawID
18+ var p = & Packet {}
19+ p .tagbuf = rawID
20+ return p , nil
21+ }
22+
1523func (p * Packet ) setLengthBuffer () error {
1624 len := uint64 (p .Length )
1725 tmp , err := writePVarUInt64Buffer (len )
@@ -141,7 +149,7 @@ func (p *Packet) AddNode(child *Packet) (*Packet, error) {
141149
142150// Encode return whole bytes of this packet
143151func (p * Packet ) Encode () ([]byte , error ) {
144- p .Length = len (p .valbuf )
152+ p .Length = uint64 ( len (p .valbuf ) )
145153 err := p .setLengthBuffer ()
146154 if err != nil {
147155 return nil , err
Original file line number Diff line number Diff line change @@ -3,7 +3,7 @@ package spec
33// Packet is a TLV group
44type Packet struct {
55 Tag uint64
6- Length int
6+ Length uint64
77 tagbuf []byte
88 lenbuf []byte
99 valbuf []byte
You can’t perform that action at this time.
0 commit comments