|
@@ -8,35 +8,37 @@ import (
|
|
"io"
|
|
"io"
|
|
)
|
|
)
|
|
|
|
|
|
|
|
+// 定义数据类型
|
|
const (
|
|
const (
|
|
- TLV_FLOAT64 = 1
|
|
|
|
- TLV_FLOAT32 = 2
|
|
|
|
- TLV_INT8 = 3
|
|
|
|
- TLV_INT16 = 4
|
|
|
|
- TLV_INT32 = 5
|
|
|
|
- TLV_INT64 = 6
|
|
|
|
- TLV_UINT8 = 7
|
|
|
|
- TLV_UINT16 = 8
|
|
|
|
- TLV_UINT32 = 9
|
|
|
|
- TLV_UINT64 = 10
|
|
|
|
- TLV_BYTES = 11
|
|
|
|
- TLV_STRING = 12
|
|
|
|
- TLV_BOOL = 13
|
|
|
|
|
|
+ TLVFLOAT64 = 1
|
|
|
|
+ TLVFLOAT32 = 2
|
|
|
|
+ TLVINT8 = 3
|
|
|
|
+ TLVINT16 = 4
|
|
|
|
+ TLVINT32 = 5
|
|
|
|
+ TLVINT64 = 6
|
|
|
|
+ TLVUINT8 = 7
|
|
|
|
+ TLVUINT16 = 8
|
|
|
|
+ TLVUINT32 = 9
|
|
|
|
+ TLVUINT64 = 10
|
|
|
|
+ TLVBYTES = 11
|
|
|
|
+ TLVSTRING = 12
|
|
|
|
+ TLVBOOL = 13
|
|
)
|
|
)
|
|
|
|
|
|
|
|
+// TLV type length value
|
|
type TLV struct {
|
|
type TLV struct {
|
|
Tag uint16
|
|
Tag uint16
|
|
Value []byte
|
|
Value []byte
|
|
}
|
|
}
|
|
|
|
|
|
-func Uint16ToByte(value uint16) []byte {
|
|
|
|
|
|
+func uint16ToByte(value uint16) []byte {
|
|
buf := bytes.NewBuffer([]byte{})
|
|
buf := bytes.NewBuffer([]byte{})
|
|
binary.Write(buf, binary.BigEndian, value)
|
|
binary.Write(buf, binary.BigEndian, value)
|
|
|
|
|
|
return buf.Bytes()
|
|
return buf.Bytes()
|
|
}
|
|
}
|
|
|
|
|
|
-func ByteToUint16(buf []byte) uint16 {
|
|
|
|
|
|
+func byteToUint16(buf []byte) uint16 {
|
|
tmpBuf := bytes.NewBuffer(buf)
|
|
tmpBuf := bytes.NewBuffer(buf)
|
|
var value uint16
|
|
var value uint16
|
|
binary.Read(tmpBuf, binary.BigEndian, &value)
|
|
binary.Read(tmpBuf, binary.BigEndian, &value)
|
|
@@ -44,6 +46,7 @@ func ByteToUint16(buf []byte) uint16 {
|
|
return value
|
|
return value
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+// ToBinary make tlv to []byte
|
|
func (tlv *TLV) ToBinary() []byte {
|
|
func (tlv *TLV) ToBinary() []byte {
|
|
buf := new(bytes.Buffer)
|
|
buf := new(bytes.Buffer)
|
|
binary.Write(buf, binary.BigEndian, &tlv.Tag)
|
|
binary.Write(buf, binary.BigEndian, &tlv.Tag)
|
|
@@ -52,34 +55,35 @@ func (tlv *TLV) ToBinary() []byte {
|
|
return buf.Bytes()
|
|
return buf.Bytes()
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+// Length get tlv length
|
|
func (tlv *TLV) Length() int {
|
|
func (tlv *TLV) Length() int {
|
|
length := int(0)
|
|
length := int(0)
|
|
switch tlv.Tag {
|
|
switch tlv.Tag {
|
|
- case TLV_FLOAT64:
|
|
|
|
|
|
+ case TLVFLOAT64:
|
|
length = 8
|
|
length = 8
|
|
- case TLV_INT64:
|
|
|
|
|
|
+ case TLVINT64:
|
|
length = 8
|
|
length = 8
|
|
- case TLV_UINT64:
|
|
|
|
|
|
+ case TLVUINT64:
|
|
length = 8
|
|
length = 8
|
|
- case TLV_FLOAT32:
|
|
|
|
|
|
+ case TLVFLOAT32:
|
|
length = 4
|
|
length = 4
|
|
- case TLV_INT32:
|
|
|
|
|
|
+ case TLVINT32:
|
|
length = 4
|
|
length = 4
|
|
- case TLV_UINT32:
|
|
|
|
|
|
+ case TLVUINT32:
|
|
length = 4
|
|
length = 4
|
|
- case TLV_INT16:
|
|
|
|
|
|
+ case TLVINT16:
|
|
length = 2
|
|
length = 2
|
|
- case TLV_UINT16:
|
|
|
|
|
|
+ case TLVUINT16:
|
|
length = 2
|
|
length = 2
|
|
- case TLV_INT8:
|
|
|
|
|
|
+ case TLVINT8:
|
|
length = 1
|
|
length = 1
|
|
- case TLV_UINT8:
|
|
|
|
|
|
+ case TLVUINT8:
|
|
length = 1
|
|
length = 1
|
|
- case TLV_BYTES:
|
|
|
|
- length = int(ByteToUint16(tlv.Value[0:2]))
|
|
|
|
|
|
+ case TLVBYTES:
|
|
|
|
+ length = int(byteToUint16(tlv.Value[0:2]))
|
|
length += 2
|
|
length += 2
|
|
- case TLV_STRING:
|
|
|
|
- length = int(ByteToUint16(tlv.Value[0:2]))
|
|
|
|
|
|
+ case TLVSTRING:
|
|
|
|
+ length = int(byteToUint16(tlv.Value[0:2]))
|
|
length += 2
|
|
length += 2
|
|
default:
|
|
default:
|
|
length = 0
|
|
length = 0
|
|
@@ -90,124 +94,126 @@ func (tlv *TLV) Length() int {
|
|
return length
|
|
return length
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+// FromBinary read from binary
|
|
func (tlv *TLV) FromBinary(r io.Reader) error {
|
|
func (tlv *TLV) FromBinary(r io.Reader) error {
|
|
binary.Read(r, binary.BigEndian, &tlv.Tag)
|
|
binary.Read(r, binary.BigEndian, &tlv.Tag)
|
|
length := uint16(0)
|
|
length := uint16(0)
|
|
switch tlv.Tag {
|
|
switch tlv.Tag {
|
|
- case TLV_FLOAT64:
|
|
|
|
|
|
+ case TLVFLOAT64:
|
|
length = 8
|
|
length = 8
|
|
tlv.Value = make([]byte, length)
|
|
tlv.Value = make([]byte, length)
|
|
binary.Read(r, binary.BigEndian, &tlv.Value)
|
|
binary.Read(r, binary.BigEndian, &tlv.Value)
|
|
- case TLV_INT64:
|
|
|
|
|
|
+ case TLVINT64:
|
|
length = 8
|
|
length = 8
|
|
tlv.Value = make([]byte, length)
|
|
tlv.Value = make([]byte, length)
|
|
binary.Read(r, binary.BigEndian, &tlv.Value)
|
|
binary.Read(r, binary.BigEndian, &tlv.Value)
|
|
- case TLV_UINT64:
|
|
|
|
|
|
+ case TLVUINT64:
|
|
length = 8
|
|
length = 8
|
|
tlv.Value = make([]byte, length)
|
|
tlv.Value = make([]byte, length)
|
|
binary.Read(r, binary.BigEndian, &tlv.Value)
|
|
binary.Read(r, binary.BigEndian, &tlv.Value)
|
|
- case TLV_FLOAT32:
|
|
|
|
|
|
+ case TLVFLOAT32:
|
|
length = 4
|
|
length = 4
|
|
tlv.Value = make([]byte, length)
|
|
tlv.Value = make([]byte, length)
|
|
binary.Read(r, binary.BigEndian, &tlv.Value)
|
|
binary.Read(r, binary.BigEndian, &tlv.Value)
|
|
- case TLV_INT32:
|
|
|
|
|
|
+ case TLVINT32:
|
|
length = 4
|
|
length = 4
|
|
tlv.Value = make([]byte, length)
|
|
tlv.Value = make([]byte, length)
|
|
binary.Read(r, binary.BigEndian, &tlv.Value)
|
|
binary.Read(r, binary.BigEndian, &tlv.Value)
|
|
- case TLV_UINT32:
|
|
|
|
|
|
+ case TLVUINT32:
|
|
length = 4
|
|
length = 4
|
|
tlv.Value = make([]byte, length)
|
|
tlv.Value = make([]byte, length)
|
|
binary.Read(r, binary.BigEndian, &tlv.Value)
|
|
binary.Read(r, binary.BigEndian, &tlv.Value)
|
|
- case TLV_INT16:
|
|
|
|
|
|
+ case TLVINT16:
|
|
length = 2
|
|
length = 2
|
|
tlv.Value = make([]byte, length)
|
|
tlv.Value = make([]byte, length)
|
|
binary.Read(r, binary.BigEndian, &tlv.Value)
|
|
binary.Read(r, binary.BigEndian, &tlv.Value)
|
|
- case TLV_UINT16:
|
|
|
|
|
|
+ case TLVUINT16:
|
|
length = 2
|
|
length = 2
|
|
tlv.Value = make([]byte, length)
|
|
tlv.Value = make([]byte, length)
|
|
binary.Read(r, binary.BigEndian, &tlv.Value)
|
|
binary.Read(r, binary.BigEndian, &tlv.Value)
|
|
- case TLV_INT8:
|
|
|
|
|
|
+ case TLVINT8:
|
|
length = 1
|
|
length = 1
|
|
tlv.Value = make([]byte, length)
|
|
tlv.Value = make([]byte, length)
|
|
binary.Read(r, binary.BigEndian, &tlv.Value)
|
|
binary.Read(r, binary.BigEndian, &tlv.Value)
|
|
- case TLV_UINT8:
|
|
|
|
|
|
+ case TLVUINT8:
|
|
length = 1
|
|
length = 1
|
|
tlv.Value = make([]byte, length)
|
|
tlv.Value = make([]byte, length)
|
|
binary.Read(r, binary.BigEndian, &tlv.Value)
|
|
binary.Read(r, binary.BigEndian, &tlv.Value)
|
|
- case TLV_BYTES:
|
|
|
|
|
|
+ case TLVBYTES:
|
|
binary.Read(r, binary.BigEndian, &length)
|
|
binary.Read(r, binary.BigEndian, &length)
|
|
tlv.Value = make([]byte, length+2)
|
|
tlv.Value = make([]byte, length+2)
|
|
- copy(tlv.Value[0:2], Uint16ToByte(length))
|
|
|
|
|
|
+ copy(tlv.Value[0:2], uint16ToByte(length))
|
|
binary.Read(r, binary.BigEndian, tlv.Value[2:])
|
|
binary.Read(r, binary.BigEndian, tlv.Value[2:])
|
|
- case TLV_STRING:
|
|
|
|
|
|
+ case TLVSTRING:
|
|
binary.Read(r, binary.BigEndian, &length)
|
|
binary.Read(r, binary.BigEndian, &length)
|
|
tlv.Value = make([]byte, length+2)
|
|
tlv.Value = make([]byte, length+2)
|
|
- copy(tlv.Value[0:2], Uint16ToByte(length))
|
|
|
|
|
|
+ copy(tlv.Value[0:2], uint16ToByte(length))
|
|
binary.Read(r, binary.BigEndian, tlv.Value[2:])
|
|
binary.Read(r, binary.BigEndian, tlv.Value[2:])
|
|
default:
|
|
default:
|
|
- return errors.New(fmt.Sprintf("unsuport value: %d", tlv.Tag))
|
|
|
|
|
|
+ return fmt.Errorf("unsuport value: %d", tlv.Tag)
|
|
}
|
|
}
|
|
|
|
|
|
return nil
|
|
return nil
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+// MakeTLV make a tlv pointer
|
|
func MakeTLV(a interface{}) (*TLV, error) {
|
|
func MakeTLV(a interface{}) (*TLV, error) {
|
|
var tag uint16
|
|
var tag uint16
|
|
var length uint16
|
|
var length uint16
|
|
buf := new(bytes.Buffer)
|
|
buf := new(bytes.Buffer)
|
|
- switch a.(type) {
|
|
|
|
|
|
+ switch a := a.(type) {
|
|
case float64:
|
|
case float64:
|
|
- tag = TLV_FLOAT64
|
|
|
|
|
|
+ tag = TLVFLOAT64
|
|
length = 8
|
|
length = 8
|
|
- binary.Write(buf, binary.BigEndian, a.(float64))
|
|
|
|
|
|
+ binary.Write(buf, binary.BigEndian, a)
|
|
case float32:
|
|
case float32:
|
|
- tag = TLV_FLOAT32
|
|
|
|
|
|
+ tag = TLVFLOAT32
|
|
length = 4
|
|
length = 4
|
|
- binary.Write(buf, binary.BigEndian, a.(float32))
|
|
|
|
|
|
+ binary.Write(buf, binary.BigEndian, a)
|
|
case int8:
|
|
case int8:
|
|
- tag = TLV_INT8
|
|
|
|
|
|
+ tag = TLVINT8
|
|
length = 1
|
|
length = 1
|
|
- binary.Write(buf, binary.BigEndian, a.(int8))
|
|
|
|
|
|
+ binary.Write(buf, binary.BigEndian, a)
|
|
case int16:
|
|
case int16:
|
|
- tag = TLV_INT16
|
|
|
|
|
|
+ tag = TLVINT16
|
|
length = 2
|
|
length = 2
|
|
- binary.Write(buf, binary.BigEndian, a.(int16))
|
|
|
|
|
|
+ binary.Write(buf, binary.BigEndian, a)
|
|
case int32:
|
|
case int32:
|
|
- tag = TLV_INT32
|
|
|
|
|
|
+ tag = TLVINT32
|
|
length = 4
|
|
length = 4
|
|
- binary.Write(buf, binary.BigEndian, a.(int32))
|
|
|
|
|
|
+ binary.Write(buf, binary.BigEndian, a)
|
|
case int64:
|
|
case int64:
|
|
- tag = TLV_INT64
|
|
|
|
|
|
+ tag = TLVINT64
|
|
length = 8
|
|
length = 8
|
|
- binary.Write(buf, binary.BigEndian, a.(int64))
|
|
|
|
|
|
+ binary.Write(buf, binary.BigEndian, a)
|
|
case uint8:
|
|
case uint8:
|
|
- tag = TLV_UINT8
|
|
|
|
|
|
+ tag = TLVUINT8
|
|
length = 1
|
|
length = 1
|
|
- binary.Write(buf, binary.BigEndian, a.(uint8))
|
|
|
|
|
|
+ binary.Write(buf, binary.BigEndian, a)
|
|
case uint16:
|
|
case uint16:
|
|
- tag = TLV_UINT16
|
|
|
|
|
|
+ tag = TLVUINT16
|
|
length = 2
|
|
length = 2
|
|
- binary.Write(buf, binary.BigEndian, a.(uint16))
|
|
|
|
|
|
+ binary.Write(buf, binary.BigEndian, a)
|
|
case uint32:
|
|
case uint32:
|
|
- tag = TLV_UINT32
|
|
|
|
|
|
+ tag = TLVUINT32
|
|
length = 4
|
|
length = 4
|
|
- binary.Write(buf, binary.BigEndian, a.(uint32))
|
|
|
|
|
|
+ binary.Write(buf, binary.BigEndian, a)
|
|
case uint64:
|
|
case uint64:
|
|
- tag = TLV_UINT64
|
|
|
|
|
|
+ tag = TLVUINT64
|
|
length = 8
|
|
length = 8
|
|
- binary.Write(buf, binary.BigEndian, a.(uint64))
|
|
|
|
|
|
+ binary.Write(buf, binary.BigEndian, a)
|
|
case []byte:
|
|
case []byte:
|
|
- tag = TLV_BYTES
|
|
|
|
- length = uint16(len(a.([]byte)))
|
|
|
|
|
|
+ tag = TLVBYTES
|
|
|
|
+ length = uint16(len(a))
|
|
binary.Write(buf, binary.BigEndian, length)
|
|
binary.Write(buf, binary.BigEndian, length)
|
|
- binary.Write(buf, binary.BigEndian, a.([]byte))
|
|
|
|
|
|
+ binary.Write(buf, binary.BigEndian, a)
|
|
case string:
|
|
case string:
|
|
- tag = TLV_STRING
|
|
|
|
- length = uint16(len(a.(string)))
|
|
|
|
|
|
+ tag = TLVSTRING
|
|
|
|
+ length = uint16(len(a))
|
|
binary.Write(buf, binary.BigEndian, length)
|
|
binary.Write(buf, binary.BigEndian, length)
|
|
- binary.Write(buf, binary.BigEndian, []byte(a.(string)))
|
|
|
|
|
|
+ binary.Write(buf, binary.BigEndian, []byte(a))
|
|
default:
|
|
default:
|
|
- return nil, errors.New(fmt.Sprintf("unsuport value: %v", a))
|
|
|
|
|
|
+ return nil, fmt.Errorf("unsuport value: %v", a)
|
|
}
|
|
}
|
|
|
|
|
|
tlv := TLV{
|
|
tlv := TLV{
|
|
@@ -222,6 +228,7 @@ func MakeTLV(a interface{}) (*TLV, error) {
|
|
return &tlv, nil
|
|
return &tlv, nil
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+// ReadTLV read from tlv pointer
|
|
func ReadTLV(tlv *TLV) (interface{}, error) {
|
|
func ReadTLV(tlv *TLV) (interface{}, error) {
|
|
tag := tlv.Tag
|
|
tag := tlv.Tag
|
|
length := uint16(0)
|
|
length := uint16(0)
|
|
@@ -229,47 +236,47 @@ func ReadTLV(tlv *TLV) (interface{}, error) {
|
|
|
|
|
|
buffer := bytes.NewReader(value)
|
|
buffer := bytes.NewReader(value)
|
|
switch tag {
|
|
switch tag {
|
|
- case TLV_FLOAT64:
|
|
|
|
|
|
+ case TLVFLOAT64:
|
|
retvar := float64(0.0)
|
|
retvar := float64(0.0)
|
|
err := binary.Read(buffer, binary.BigEndian, &retvar)
|
|
err := binary.Read(buffer, binary.BigEndian, &retvar)
|
|
return retvar, err
|
|
return retvar, err
|
|
- case TLV_FLOAT32:
|
|
|
|
|
|
+ case TLVFLOAT32:
|
|
retvar := float32(0.0)
|
|
retvar := float32(0.0)
|
|
err := binary.Read(buffer, binary.BigEndian, &retvar)
|
|
err := binary.Read(buffer, binary.BigEndian, &retvar)
|
|
return retvar, err
|
|
return retvar, err
|
|
- case TLV_INT8:
|
|
|
|
|
|
+ case TLVINT8:
|
|
retvar := int8(0)
|
|
retvar := int8(0)
|
|
err := binary.Read(buffer, binary.BigEndian, &retvar)
|
|
err := binary.Read(buffer, binary.BigEndian, &retvar)
|
|
return retvar, err
|
|
return retvar, err
|
|
- case TLV_INT16:
|
|
|
|
|
|
+ case TLVINT16:
|
|
retvar := int16(0)
|
|
retvar := int16(0)
|
|
err := binary.Read(buffer, binary.BigEndian, &retvar)
|
|
err := binary.Read(buffer, binary.BigEndian, &retvar)
|
|
return retvar, err
|
|
return retvar, err
|
|
- case TLV_INT32:
|
|
|
|
|
|
+ case TLVINT32:
|
|
retvar := int32(0)
|
|
retvar := int32(0)
|
|
err := binary.Read(buffer, binary.BigEndian, &retvar)
|
|
err := binary.Read(buffer, binary.BigEndian, &retvar)
|
|
return retvar, err
|
|
return retvar, err
|
|
- case TLV_INT64:
|
|
|
|
|
|
+ case TLVINT64:
|
|
retvar := int64(0)
|
|
retvar := int64(0)
|
|
err := binary.Read(buffer, binary.BigEndian, &retvar)
|
|
err := binary.Read(buffer, binary.BigEndian, &retvar)
|
|
return retvar, err
|
|
return retvar, err
|
|
- case TLV_UINT8:
|
|
|
|
|
|
+ case TLVUINT8:
|
|
retvar := uint8(0)
|
|
retvar := uint8(0)
|
|
err := binary.Read(buffer, binary.BigEndian, &retvar)
|
|
err := binary.Read(buffer, binary.BigEndian, &retvar)
|
|
return retvar, err
|
|
return retvar, err
|
|
- case TLV_UINT16:
|
|
|
|
|
|
+ case TLVUINT16:
|
|
retvar := uint16(0)
|
|
retvar := uint16(0)
|
|
err := binary.Read(buffer, binary.BigEndian, &retvar)
|
|
err := binary.Read(buffer, binary.BigEndian, &retvar)
|
|
return retvar, err
|
|
return retvar, err
|
|
- case TLV_UINT32:
|
|
|
|
|
|
+ case TLVUINT32:
|
|
retvar := uint32(0)
|
|
retvar := uint32(0)
|
|
err := binary.Read(buffer, binary.BigEndian, &retvar)
|
|
err := binary.Read(buffer, binary.BigEndian, &retvar)
|
|
return retvar, err
|
|
return retvar, err
|
|
- case TLV_UINT64:
|
|
|
|
|
|
+ case TLVUINT64:
|
|
retvar := uint64(0)
|
|
retvar := uint64(0)
|
|
err := binary.Read(buffer, binary.BigEndian, &retvar)
|
|
err := binary.Read(buffer, binary.BigEndian, &retvar)
|
|
return retvar, err
|
|
return retvar, err
|
|
- case TLV_BYTES:
|
|
|
|
|
|
+ case TLVBYTES:
|
|
err := binary.Read(buffer, binary.BigEndian, &length)
|
|
err := binary.Read(buffer, binary.BigEndian, &length)
|
|
if err != nil {
|
|
if err != nil {
|
|
return []byte{}, err
|
|
return []byte{}, err
|
|
@@ -277,7 +284,7 @@ func ReadTLV(tlv *TLV) (interface{}, error) {
|
|
retvar := make([]byte, length)
|
|
retvar := make([]byte, length)
|
|
err = binary.Read(buffer, binary.BigEndian, &retvar)
|
|
err = binary.Read(buffer, binary.BigEndian, &retvar)
|
|
return retvar, err
|
|
return retvar, err
|
|
- case TLV_STRING:
|
|
|
|
|
|
+ case TLVSTRING:
|
|
err := binary.Read(buffer, binary.BigEndian, &length)
|
|
err := binary.Read(buffer, binary.BigEndian, &length)
|
|
if err != nil {
|
|
if err != nil {
|
|
return string([]byte{}), err
|
|
return string([]byte{}), err
|
|
@@ -290,6 +297,7 @@ func ReadTLV(tlv *TLV) (interface{}, error) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+// MakeTLVs ``
|
|
func MakeTLVs(a []interface{}) ([]TLV, error) {
|
|
func MakeTLVs(a []interface{}) ([]TLV, error) {
|
|
tlvs := []TLV{}
|
|
tlvs := []TLV{}
|
|
for _, one := range a {
|
|
for _, one := range a {
|
|
@@ -302,6 +310,7 @@ func MakeTLVs(a []interface{}) ([]TLV, error) {
|
|
return tlvs, nil
|
|
return tlvs, nil
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+// ReadTLVs ``
|
|
func ReadTLVs(tlvs []TLV) ([]interface{}, error) {
|
|
func ReadTLVs(tlvs []TLV) ([]interface{}, error) {
|
|
values := []interface{}{}
|
|
values := []interface{}{}
|
|
for _, tlv := range tlvs {
|
|
for _, tlv := range tlvs {
|
|
@@ -314,31 +323,32 @@ func ReadTLVs(tlvs []TLV) ([]interface{}, error) {
|
|
return values, nil
|
|
return values, nil
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+// CastTLV cast tlv
|
|
func CastTLV(value interface{}, valueType int32) interface{} {
|
|
func CastTLV(value interface{}, valueType int32) interface{} {
|
|
switch valueType {
|
|
switch valueType {
|
|
- case TLV_FLOAT64:
|
|
|
|
|
|
+ case TLVFLOAT64:
|
|
return float64(value.(float64))
|
|
return float64(value.(float64))
|
|
- case TLV_FLOAT32:
|
|
|
|
|
|
+ case TLVFLOAT32:
|
|
return float32(value.(float64))
|
|
return float32(value.(float64))
|
|
- case TLV_INT8:
|
|
|
|
|
|
+ case TLVINT8:
|
|
return int8(value.(float64))
|
|
return int8(value.(float64))
|
|
- case TLV_INT16:
|
|
|
|
|
|
+ case TLVINT16:
|
|
return int16(value.(float64))
|
|
return int16(value.(float64))
|
|
- case TLV_INT32:
|
|
|
|
|
|
+ case TLVINT32:
|
|
return int32(value.(float64))
|
|
return int32(value.(float64))
|
|
- case TLV_INT64:
|
|
|
|
|
|
+ case TLVINT64:
|
|
return int64(value.(float64))
|
|
return int64(value.(float64))
|
|
- case TLV_UINT8:
|
|
|
|
|
|
+ case TLVUINT8:
|
|
return uint8(value.(float64))
|
|
return uint8(value.(float64))
|
|
- case TLV_UINT16:
|
|
|
|
|
|
+ case TLVUINT16:
|
|
return uint16(value.(float64))
|
|
return uint16(value.(float64))
|
|
- case TLV_UINT32:
|
|
|
|
|
|
+ case TLVUINT32:
|
|
return uint32(value.(float64))
|
|
return uint32(value.(float64))
|
|
- case TLV_UINT64:
|
|
|
|
|
|
+ case TLVUINT64:
|
|
return uint64(value.(float64))
|
|
return uint64(value.(float64))
|
|
- case TLV_BYTES:
|
|
|
|
|
|
+ case TLVBYTES:
|
|
return []byte(value.(string))
|
|
return []byte(value.(string))
|
|
- case TLV_STRING:
|
|
|
|
|
|
+ case TLVSTRING:
|
|
return value.(string)
|
|
return value.(string)
|
|
default:
|
|
default:
|
|
return nil
|
|
return nil
|