codec

package
v0.0.0-...-315a808 Latest Latest
Warning

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

Go to latest
Published: Apr 14, 2024 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

Package codec is an interface for encoding messages

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidMessage = errors.New("invalid message")
)

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 Frame

type Frame struct {
	Data []byte
}

Frame raw buff

func NewFrame

func NewFrame(b []byte) *Frame

type Marshaler

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 {

	// The values read from the socket
	Header   map[string]string
	Id       string
	Service  string
	Method   string
	Endpoint string
	Error    string

	Body []byte
	Type MessageType
}

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

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

type Writer

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

Directories

Path Synopsis
Package grpc provides a grpc codec
Package grpc provides a grpc codec

Jump to

Keyboard shortcuts

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