Documentation
¶
Index ¶
- func CheckHeartbeat(data []byte) (bool, error)
- func PackBuffer(message *Message) (*buffer.NocopyBuffer, error)
- func PackHeartbeat() ([]byte, error)
- func PackMessage(message *Message) ([]byte, error)
- func ReadBuffer(reader io.Reader) (buffer.Buffer, error)
- func ReadMessage(reader io.Reader) ([]byte, error)
- func SetPacker(packer Packer)
- type Message
- type NocopyReader
- type Option
- type Packer
- type RouteCodec
- type SeqCodec
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func PackBuffer ¶
func PackBuffer(message *Message) (*buffer.NocopyBuffer, error)
PackBuffer 以buffer的形式打包消息
func ReadBuffer ¶
ReadBuffer 以buffer的形式读取消息
Types ¶
type NocopyReader ¶
type NocopyReader interface {
// Next returns a slice containing the next n bytes from the buffer,
// advancing the buffer as if the bytes had been returned by Read.
Next(n int) (p []byte, err error)
// Peek returns the next n bytes without advancing the reader.
Peek(n int) (buf []byte, err error)
// Release the memory space occupied by all read slices.
Release() (err error)
Slice(n int) (r NocopyReader, err error)
}
type Packer ¶
type Packer interface {
// ReadBuffer 以buffer的形式读取消息
ReadBuffer(reader io.Reader) (buffer.Buffer, error)
// PackBuffer 以buffer的形式打包消息
PackBuffer(message *Message) (*buffer.NocopyBuffer, error)
// ReadMessage 读取消息
ReadMessage(reader io.Reader) ([]byte, error)
// PackMessage 打包消息
PackMessage(message *Message) ([]byte, error)
// UnpackMessage 解包消息
UnpackMessage(data []byte) (*Message, error)
// PackHeartbeat 打包心跳
PackHeartbeat() ([]byte, error)
// CheckHeartbeat 检测心跳包
CheckHeartbeat(data []byte) (bool, error)
}
func MustNewPacker ¶ added in v1.0.9
MustNewPacker 创建一个新的消息打包器,失败时 panic 这是一个便捷函数,适用于初始化阶段,错误表示程序配置有误
type RouteCodec ¶ added in v1.0.10
type RouteCodec interface {
// EncodeToWriter 将路由编码写入 buffer.Writer
EncodeToWriter(writer *buffer.Writer, route int32)
// EncodeToBuf 将路由编码写入 bytes.Buffer
EncodeToBuf(buf *bytes.Buffer, route int32) error
// Decode 从 reader 中解码路由
Decode(reader *bytes.Reader) (int32, error)
// Size 返回路由占用的字节数
Size() int
}
RouteCodec 路由编解码器接口,消除重复的 switch 分支
type SeqCodec ¶ added in v1.0.10
type SeqCodec interface {
// EncodeToWriter 将序列号编码写入 buffer.Writer
EncodeToWriter(writer *buffer.Writer, seq int32)
// EncodeToBuf 将序列号编码写入 bytes.Buffer
EncodeToBuf(buf *bytes.Buffer, seq int32) error
// Decode 从 reader 中解码序列号
Decode(reader *bytes.Reader) (int32, error)
// Size 返回序列号占用的字节数
Size() int
}
SeqCodec 序列号编解码器接口
Click to show internal directories.
Click to hide internal directories.