codec

package
v1.13.1 Latest Latest
Warning

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

Go to latest
Published: Mar 22, 2023 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrNotEnough = errors.New("not enough")

Functions

func NewHeaderLenEncoder

func NewHeaderLenEncoder(headerLen, writeBufferLen int) *headerLenEncoder

NewHeaderLenEncoder 创建基于头部长度的编码器 headerLen TCP包的头部内容,用来描述这个包的字节长度 writeBufferLen 服务器发送给客户端包的建议长度,当发送的包小于这个值时,会利用到内存池优化

func NewUvarintEncoder

func NewUvarintEncoder(writeBufferLen int) *uvarintEncoder

NewUvarintEncoder 创建基于Uvarint的编码器 writeBufferLen 服务器发送给客户端包的建议长度,当发送的包小于这个值时,会利用到内存池优化

Types

type Buffer

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

Buffer 读缓冲区,每个tcp长连接对应一个读缓冲区

func NewBuffer

func NewBuffer(bytes []byte) *Buffer

NewBuffer 创建一个缓存区

func (*Buffer) Cap

func (b *Buffer) Cap() int

Cap 返回总容量

func (*Buffer) GetBuf

func (b *Buffer) GetBuf() []byte

func (*Buffer) GetBytes added in v1.13.1

func (b *Buffer) GetBytes() []byte

func (*Buffer) Len

func (b *Buffer) Len() int

Len 返回有效字节数组长度

func (*Buffer) Read

func (b *Buffer) Read(offset, limit int) ([]byte, error)

Read 舍弃offset个字段,读取n个字段,如果没有足够的字节,调用reset之后,返回的字节数组失效

func (*Buffer) ReadAll

func (b *Buffer) ReadAll() []byte

ReadAll 读取所有字节

func (*Buffer) ReadFromFD

func (b *Buffer) ReadFromFD(fd int) error

ReadFromFD 从文件描述符里面读取数据

func (*Buffer) ReadFromReader

func (b *Buffer) ReadFromReader(reader io.Reader) (int, error)

ReadFromReader 从reader里面读取数据,如果reader阻塞,会发生阻塞

func (*Buffer) Seek

func (b *Buffer) Seek(len int) ([]byte, error)

Seek 返回n个字节,而不产生移位,如果没有足够字节,返回错误

type Decoder

type Decoder interface {
	Decode(*Buffer, func([]byte)) error
}

Decoder 解码器

func NewHeaderLenDecoder

func NewHeaderLenDecoder(headerLen int) Decoder

NewHeaderLenDecoder 创建基于头部长度的解码器 headerLen TCP包的头部内容,用来描述这个包的字节长度 readMaxLen 所读取的客户端包的最大长度,客户端发送的包不能超过这个长度

func NewUvarintDecoder

func NewUvarintDecoder() Decoder

NewUvarintDecoder 创建基于头部长度的解码器

type Encoder

type Encoder interface {
	EncodeToWriter(w io.Writer, bytes []byte) error
}

Encoder 编码器

Jump to

Keyboard shortcuts

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