xproto

package
v1.0.9 Latest Latest
Warning

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

Go to latest
Published: Dec 31, 2020 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ProtoDatasetType   = reflect.TypeOf([]ProtoDataset{}).Elem()
	ProtoEnumType      = reflect.TypeOf([]ProtoEnum{}).Elem()
	ProtoStructType    = reflect.TypeOf([]ProtoStruct{}).Elem()
	ProtoUnionType     = reflect.TypeOf([]ProtoUnion{}).Elem()
	ProtoClassType     = reflect.TypeOf([]ProtoClass{}).Elem()
	ProtoExceptionType = reflect.TypeOf([]ProtoException{}).Elem()
	ProtoDynamicType   = reflect.TypeOf([]interface{}{}).Elem()
)

Functions

func NewTypeByProtoDataTypes

func NewTypeByProtoDataTypes(types []ProtoDataType) (reflect.Type, error)

由协议数据类型生成反射数据类型

func RegistDataset

func RegistDataset(className string, constructor func() ProtoDataset) bool

func RegistException

func RegistException(className string, constructor func() ProtoException) bool

func RegistStruct

func RegistStruct(className string, constructor func() ProtoStruct) bool

func RegistUnionStruct

func RegistUnionStruct(className string, constructor func() ProtoUnion) bool

func RegisterClass

func RegisterClass(className string, constructor func() ProtoClass) bool

func RegisterEnum

func RegisterEnum(enumType string, constructor func() ProtoEnum) bool

注册enum类型

Types

type DSField

type DSField interface {
	FieldName() string
	FieldType() ProtoDataType
	Value() interface{}
	Index() int
}

type ProtoClass

type ProtoClass interface {
	ProtoSerializer
	ProtoUnSerializer
	ClassName() string
}

func NewClass

func NewClass(className string) ProtoClass

type ProtoDataType

type ProtoDataType uint8
const (
	PDTUnknown ProtoDataType = iota
	// 空类型
	PDTNull
	// 可变类型
	PDTDynamic
	// string
	PDTString
	// int8
	PDTInt8
	// int16
	PDTInt16
	// int32
	PDTInt32
	// int64
	PDTInt64
	// bool类型
	PDTBool
	// 浮点类型
	PDTDouble
	// 日期类型
	PDTDatetime

	// 字典类型
	PDTMap
	// 列表类型
	PDTList
	// 表记录类型
	PDTDataset

	// 枚举类型
	PDTEnum
	// struct数据结构体
	PDTStruct
	// union结构体
	PDTUnion
	// 其他自定义实现BinSerializer接口的类型
	PDTClass
	// 异常类结构体
	PDTException
)

func GetProtoDataType

func GetProtoDataType(rv reflect.Type) ProtoDataType

func GetProtoDataTypes

func GetProtoDataTypes(typ reflect.Type) []ProtoDataType

获取定义数据类型

func (ProtoDataType) IsBasicType

func (pdt ProtoDataType) IsBasicType() bool

func (ProtoDataType) IsUserType

func (pdt ProtoDataType) IsUserType() bool

func (ProtoDataType) String

func (pdt ProtoDataType) String() string

type ProtoDataset

type ProtoDataset interface {
	ProtoSerializer
	ProtoUnSerializer
	DatasetName() string
	FieldNames() []string
	Rowcount() int64
	IsBof() bool
	IsEof() bool
	First() bool
	Next() bool
	Last() bool
	Prior() bool
	FieldValue(fieldIndex int) interface{}
	Field(index int) DSField
	FieldByName(name string) DSField
}

func NewMemDataset

func NewMemDataset(className string) ProtoDataset

type ProtoEnum

type ProtoEnum interface {
	ProtoSerializer
	ProtoUnSerializer
	EnumType() string
	Items() ProtoEnum
	Value() int64
}

func NewEnum

func NewEnum(enumType string) ProtoEnum

type ProtoException

type ProtoException interface {
	ProtoSerializer
	ProtoUnSerializer
	ExceptName() string
}

func NewException

func NewException(className string) ProtoException

type ProtoSerializer

type ProtoSerializer interface {
	Serialize(pro ProtocolWriter) (size int64, err error)
}

type ProtoStruct

type ProtoStruct interface {
	ProtoSerializer
	ProtoUnSerializer
	StructName() string
}

func NewStruct

func NewStruct(className string) ProtoStruct

type ProtoUnSerializer

type ProtoUnSerializer interface {
	UnSerialize(pro ProtocolReader) (err error)
}

type ProtoUnion

type ProtoUnion interface {
	ProtoSerializer
	ProtoUnSerializer
	UnionName() string
}

func NewUnionStruct

func NewUnionStruct(className string) ProtoUnion

type ProtocolReader

type ProtocolReader interface {
	ReadAny() (val interface{}, err error)
	ReadType() (dType ProtoDataType)
	ReadStr() (val string, err error)
	ReadInt8() (val int8, err error)
	ReadInt16() (val int16, err error)
	ReadInt32() (val int32, err error)
	ReadInt64() (val int64, err error)
	ReadDouble() (val float64, err error)
	ReadBool() (val bool, err error)
	ReadDatetime() (val time.Time, err error)

	ReadMap() (val interface{}, err error)
	ReadList() (val interface{}, err error)

	ReadDataset() (ds ProtoDataset, err error)
	ReadEnum() (enum ProtoEnum, err error)
	ReadStruct() (st ProtoStruct, err error)
	ReadUnion() (un ProtoUnion, err error)
	ReadClass() (cls ProtoClass, err error)
	ReadException() (exp ProtoException, err error)
}

type ProtocolWriter

type ProtocolWriter interface {
	WriteAny(val interface{}) (size int64, err error)
	WriteNull() (size int64, err error)
	WriteStr(val string) (size int64, err error)
	WriteInt8(val int8) (size int64, err error)
	WriteInt16(val int16) (size int64, err error)
	WriteInt32(val int32) (size int64, err error)
	WriteInt64(val int64) (size int64, err error)
	WriteDouble(val float64) (size int64, err error)
	WriteBool(val bool) (size int64, err error)
	WriteDatetime(val time.Time) (size int64, err error)

	WriteMap(val interface{}) (size int64, err error)
	WriteList(val interface{}) (size int64, err error)
	WriteDataset(val ProtoDataset) (size int64, err error)

	WriteEnum(val ProtoEnum) (size int64, err error)
	WriteStruct(val ProtoStruct) (size int64, err error)
	WriteUnion(val ProtoUnion) (size int64, err error)
	WriteClass(val ProtoClass) (size int64, err error)
	WriteException(val ProtoException) (size int64, err error)
}

type TBinProtocol

type TBinProtocol struct {
	// contains filtered or unexported fields
}

func NewBinProtocol

func NewBinProtocol(writer io.Writer, reader io.ReadSeeker) *TBinProtocol

func (*TBinProtocol) ReadAny

func (pro *TBinProtocol) ReadAny() (val interface{}, err error)

func (*TBinProtocol) ReadBool

func (pro *TBinProtocol) ReadBool() (val bool, err error)

func (*TBinProtocol) ReadClass

func (pro *TBinProtocol) ReadClass() (cls ProtoClass, err error)

func (*TBinProtocol) ReadDataset

func (pro *TBinProtocol) ReadDataset() (ds ProtoDataset, err error)

func (*TBinProtocol) ReadDatetime

func (pro *TBinProtocol) ReadDatetime() (val time.Time, err error)

func (*TBinProtocol) ReadDouble

func (pro *TBinProtocol) ReadDouble() (val float64, err error)

func (*TBinProtocol) ReadEnum

func (pro *TBinProtocol) ReadEnum() (enum ProtoEnum, err error)

func (*TBinProtocol) ReadException

func (pro *TBinProtocol) ReadException() (exp ProtoException, err error)

func (*TBinProtocol) ReadInt16

func (pro *TBinProtocol) ReadInt16() (val int16, err error)

func (*TBinProtocol) ReadInt32

func (pro *TBinProtocol) ReadInt32() (val int32, err error)

func (*TBinProtocol) ReadInt64

func (pro *TBinProtocol) ReadInt64() (val int64, err error)

func (*TBinProtocol) ReadInt8

func (pro *TBinProtocol) ReadInt8() (val int8, err error)

func (*TBinProtocol) ReadList

func (pro *TBinProtocol) ReadList() (val interface{}, err error)

func (*TBinProtocol) ReadMap

func (pro *TBinProtocol) ReadMap() (val interface{}, err error)

func (*TBinProtocol) ReadStr

func (pro *TBinProtocol) ReadStr() (val string, err error)

func (*TBinProtocol) ReadStruct

func (pro *TBinProtocol) ReadStruct() (st ProtoStruct, err error)

func (*TBinProtocol) ReadType

func (pro *TBinProtocol) ReadType() ProtoDataType

func (*TBinProtocol) ReadUnion

func (pro *TBinProtocol) ReadUnion() (un ProtoUnion, err error)

func (*TBinProtocol) WriteAny

func (pro *TBinProtocol) WriteAny(val interface{}) (size int64, err error)

func (*TBinProtocol) WriteBool

func (pro *TBinProtocol) WriteBool(val bool) (size int64, err error)

func (*TBinProtocol) WriteClass

func (pro *TBinProtocol) WriteClass(val ProtoClass) (size int64, err error)

func (*TBinProtocol) WriteDataset

func (pro *TBinProtocol) WriteDataset(val ProtoDataset) (size int64, err error)

func (*TBinProtocol) WriteDatetime

func (pro *TBinProtocol) WriteDatetime(val time.Time) (size int64, err error)

func (*TBinProtocol) WriteDouble

func (pro *TBinProtocol) WriteDouble(val float64) (size int64, err error)

func (*TBinProtocol) WriteEnum

func (pro *TBinProtocol) WriteEnum(val ProtoEnum) (size int64, err error)

func (*TBinProtocol) WriteException

func (pro *TBinProtocol) WriteException(val ProtoException) (size int64, err error)

func (*TBinProtocol) WriteInt16

func (pro *TBinProtocol) WriteInt16(val int16) (size int64, err error)

func (*TBinProtocol) WriteInt32

func (pro *TBinProtocol) WriteInt32(val int32) (size int64, err error)

func (*TBinProtocol) WriteInt64

func (pro *TBinProtocol) WriteInt64(val int64) (size int64, err error)

func (*TBinProtocol) WriteInt8

func (pro *TBinProtocol) WriteInt8(val int8) (size int64, err error)

func (*TBinProtocol) WriteList

func (pro *TBinProtocol) WriteList(val interface{}) (size int64, err error)

func (*TBinProtocol) WriteMap

func (pro *TBinProtocol) WriteMap(val interface{}) (size int64, err error)

func (*TBinProtocol) WriteNull

func (pro *TBinProtocol) WriteNull() (size int64, err error)

func (*TBinProtocol) WriteStr

func (pro *TBinProtocol) WriteStr(val string) (size int64, err error)

func (*TBinProtocol) WriteStruct

func (pro *TBinProtocol) WriteStruct(val ProtoStruct) (size int64, err error)

func (*TBinProtocol) WriteUnion

func (pro *TBinProtocol) WriteUnion(val ProtoUnion) (size int64, err error)

type XNetProtocol

type XNetProtocol interface {
	ProtocolWriter
	ProtocolReader
}

Jump to

Keyboard shortcuts

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