codec

package
v1.18.0-focal Latest Latest
Warning

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

Go to latest
Published: Jul 8, 2022 License: Apache-2.0 Imports: 1 Imported by: 6

Documentation

Overview

Package codec is an interface for encoding messages

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Codec

type Codec interface {
	Reader
	Writer
	Close() error
	String() string
}

Codec encodes/decodes various types of messages used within go-micro. ReadHeader and ReadBody are called in pairs to read requests/responses from the connection. Close is called when finished with the connection. ReadBody may be called with a nil argument to force the body to be read and discarded.

type Marshaler added in v0.20.0

type Marshaler interface {
	Marshal(interface{}) ([]byte, error)
	Unmarshal([]byte, interface{}) error
	String() string
}

Marshaler is a simple encoding interface used for the broker/transport where headers are not supported by the underlying implementation.

type Message

type Message struct {
	Id       string
	Type     MessageType
	Target   string
	Method   string
	Endpoint string
	Error    string

	// The values read from the socket
	Header map[string]string
	Body   []byte
}

Message represents detailed information about the communication, likely followed by the body. In the case of an error, body may be nil.

type MessageType

type MessageType int
const (
	Error MessageType = iota
	Request
	Response
	Event
)

type NewCodec

type NewCodec func(io.ReadWriteCloser) Codec

Takes in a connection/buffer and returns a new Codec

type Reader added in v0.20.0

type Reader interface {
	ReadHeader(*Message, MessageType) error
	ReadBody(interface{}) error
}

type Writer added in v0.20.0

type Writer interface {
	Write(*Message, interface{}) error
}

Directories

Path Synopsis
Package bytes provides a bytes codec which does not encode or decode anything
Package bytes provides a bytes codec which does not encode or decode anything
Package grpc provides a grpc codec
Package grpc provides a grpc codec
Package json provides a json codec
Package json provides a json codec
Package jsonrpc provides a json-rpc 1.0 codec
Package jsonrpc provides a json-rpc 1.0 codec
Package proto provides a proto codec
Package proto provides a proto codec
Package proto is a generated protocol buffer package.
Package proto is a generated protocol buffer package.
Package text reads any text/* content-type
Package text reads any text/* content-type

Jump to

Keyboard shortcuts

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