Example #1
0
func Encode(cmd, dbId uint8, seq uint64, v interface{}) ([]byte, error) {
	jsonPkg, err := json.Marshal(v)
	if err != nil {
		return nil, err
	}

	var pkgLen = proto.HeadSize + len(jsonPkg)
	var head proto.PkgHead
	head.Cmd = cmd
	head.DbId = dbId
	head.Seq = seq
	head.PkgLen = uint32(pkgLen)

	var pkg = make([]byte, pkgLen)
	_, err = head.Encode(pkg)
	if err != nil {
		return nil, err
	}

	copy(pkg[proto.HeadSize:], jsonPkg)
	return pkg, nil
}