bear_transport

package
v0.0.0-...-c687ad2 Latest Latest
Warning

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

Go to latest
Published: May 9, 2022 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewBuffer

func NewBuffer() *buffer

最小buffer默认为256字节

func NewProtobufCodec

func NewProtobufCodec() *protobufCodec

func ReadStruct

func ReadStruct(reader io.Reader, s pbStruct) error

ReadStruct reads the given Thrift struct. It pools TProtocols.

func TypeToUint32

func TypeToUint32(messageType BearMessageType) uint32

目前支持call和reply两种模式 对异常并没有捕捉

func WriteStruct

func WriteStruct(writer io.Writer, s pbStruct) error

直接通过pb做序列化 WriteStruct writes the given Thrift struct to a writer. It pools TProtocols.

Types

type BearMessageType

type BearMessageType uint32
const (
	INVALID_TMESSAGE_TYPE BearMessageType = 0
	// support two types
	CALL  BearMessageType = 1
	REPLY BearMessageType = 2

	EXCEPTION BearMessageType = 3
	ONEWAY    BearMessageType = 4
	STREAMING BearMessageType = 5
)

func Uint32ToType

func Uint32ToType(index uint32) BearMessageType

type BearProtocol

type BearProtocol interface {
	WriteMessageBegin(name string, typeId BearMessageType, seqid int32) error
	WriteMessageEnd() error
	WriteStructBegin(name string) error
	WriteStructEnd() error
	WriteFieldBegin(name string, typeId BearType, id int16) error
	WriteFieldEnd() error
	WriteFieldStop() error
	WriteMapBegin(keyType BearType, valueType BearType, size int) error
	WriteMapEnd() error
	WriteListBegin(elemType BearType, size int) error
	WriteListEnd() error
	WriteSetBegin(elemType BearType, size int) error
	WriteSetEnd() error
	WriteBool(value bool) error
	WriteByte(value int8) error
	WriteI16(value int16) error
	WriteI32(value int32) error
	WriteI64(value int64) error
	WriteDouble(value float64) error
	WriteString(value string) error
	WriteBinary(value []byte) error

	ReadMessageBegin() (name string, typeId BearMessageType, seqid int32, err error)
	ReadMessageEnd() error
	ReadStructBegin() (name string, err error)
	ReadStructEnd() error
	ReadFieldBegin() (name string, typeId BearType, id int16, err error)
	ReadFieldEnd() error
	ReadMapBegin() (keyType BearType, valueType BearType, size int, err error)
	ReadMapEnd() error
	ReadListBegin() (elemType BearType, size int, err error)
	ReadListEnd() error
	ReadSetBegin() (elemType BearType, size int, err error)
	ReadSetEnd() error
	ReadBool() (value bool, err error)
	ReadByte() (value int8, err error)
	ReadI16() (value int16, err error)
	ReadI32() (value int32, err error)
	ReadI64() (value int64, err error)
	ReadDouble() (value float64, err error)
	ReadString() (value string, err error)
	ReadBinary() (value []byte, err error)

	Skip(fieldType BearType) (err error)
	Flush() (err error)

	Transport() BearTransport
}

type BearTransport

type BearTransport interface {
	io.ReadWriter
	io.ByteReader
	io.ByteWriter

	Flusher
	ReadSizeProvider
	// contains filtered or unexported methods
}

type Flusher

type Flusher interface {
	Flush() (err error)
}

type RPCInfo

type RPCInfo struct {
	MsgType    BearMessageType
	MethodName string
	SeqId      uint32
}

type ReadSizeProvider

type ReadSizeProvider interface {
	RemainingBytes() (num_bytes uint64)
}

Jump to

Keyboard shortcuts

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