bsonrpc

package
v0.0.0-...-be8dc82 Latest Latest
Warning

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

Go to latest
Published: Jul 22, 2021 License: BSD-3-Clause Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewClient

func NewClient(conn io.ReadWriteCloser) (c *rpc.Client)

func ServeConn

func ServeConn(conn io.ReadWriteCloser) (s *rpc.Server)

Types

type ClientCodec

type ClientCodec struct {
	Encoder *Encoder
	Decoder *Decoder
	// contains filtered or unexported fields
}

func NewClientCodec

func NewClientCodec(conn io.ReadWriteCloser) *ClientCodec

func (*ClientCodec) Close

func (client *ClientCodec) Close() (err error)

func (*ClientCodec) ReadResponseBody

func (client *ClientCodec) ReadResponseBody(v interface{}) error

1. 读取并解码V

func (*ClientCodec) ReadResponseHeader

func (client *ClientCodec) ReadResponseHeader(res *rpc.Response) error

1. 读取并解码rpc.Response

func (*ClientCodec) WriteRequest

func (client *ClientCodec) WriteRequest(req *rpc.Request, v interface{}) error

1. 写入rpc.Request 2. 写入BSON编码的v

type Decoder

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

func NewDecoder

func NewDecoder(r io.Reader) *Decoder

func (*Decoder) Decode

func (decoder *Decoder) Decode(pv interface{}) error

从io.Reader读取数据, 并解码到pv

备注: bson.Marshal编码会自动写入4 bytes的长度作为Header | 4 bytes Header | Payload | 4 bytes Header | Payload |....

type Encoder

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

func NewEncoder

func NewEncoder(w io.Writer) *Encoder

func (*Encoder) Encode

func (encoder *Encoder) Encode(v interface{}) error

编码v, 将序列化的数据写到io.Writer

type ServerCodec

type ServerCodec struct {
	Encoder *Encoder
	Decoder *Decoder
	// contains filtered or unexported fields
}

func NewServerCodec

func NewServerCodec(conn io.ReadWriteCloser) *ServerCodec

func (*ServerCodec) Close

func (server *ServerCodec) Close() (err error)

func (*ServerCodec) ReadRequestBody

func (server *ServerCodec) ReadRequestBody(v interface{}) error

1. 读取并解码V

func (*ServerCodec) ReadRequestHeader

func (server *ServerCodec) ReadRequestHeader(rq *rpc.Request) error

1. 读取并解码rpc.Request

func (*ServerCodec) WriteResponse

func (server *ServerCodec) WriteResponse(res *rpc.Response, v interface{}) error

1. 写入rpc.Response 2. 写入BSON编码的v

Jump to

Keyboard shortcuts

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