gokit

package module
v0.0.0-...-449a50b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 28, 2021 License: BSD-3-Clause Imports: 3 Imported by: 0

README

gokit

go工具包

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DecodeVarint

func DecodeVarint(buf []byte) (x uint64, n int)

func Discover

func Discover(glob, dir string) ([]string, error)

Discover 判断dir目录下面是否有glob文件, 并且返回其绝对路径

func EncodeVarint

func EncodeVarint(x uint64) []byte

EncodeVarint 返回Varint类型编码后的字节流

func TLVDecode

func TLVDecode(b []byte) (int32, string, error)

func TLVEncode

func TLVEncode(tag int32, data string) ([]byte, error)
	TLV是一种可变格式,意思就是:
	Type类型, Lenght长度,Value值;
	Type和Length的长度固定,一般那是2、4个字节(这里统一采用4个字节);
	Value的长度有Length指定;

	编码方法:
	1.       将类型type用htonl转换为网络字节顺序,指针偏移+4
	2.       将长度length用htonl转换为网络字节顺序,指针偏移+4
	3.       若值value数据类型为int、char、short,则将其转换为网络字节顺序,指针偏移+4;
             若值为字符串类型,写进后,指针偏移+length
	……继续处理后面的tlv;

	解码方法:
	1.       读取type 用ntohl转换为主机字节序得到类型,指针偏移+4
	2.       读取lengh用ntohl转换为主机字节序得到长度;指针偏移+4
	3.       根据得到的长度读取value,若value数据类型为int、char、short,用ntohl转换为主机字节序,指针偏移+4;
             若value数据类型为字符串类型,指针偏移+length
	……继续处理后面的tlv;

	类型(Type)字段是关于标签和编码格式的信息;
	长度 (Length)字段定义数值的长度;
	内容(Value)字段表示实际的数值。

	因此,一个编码值又称TLV(Type,Length,Value)三元组。
    编码可以是基本型或结构型,如果它表示一个简单类型的、完整的显式值,那么编码就是基本型 (primitive);
    如果它表示的值具有嵌套结构,那么编码就是结构型 (constructed)。

Types

This section is empty.

Directories

Path Synopsis
a
example

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL