Documentation ¶
Overview ¶
Package codec is an interface for encoding messages
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // ErrInvalidMessage returned when invalid messge passed to codec ErrInvalidMessage = errors.New("invalid message") // ErrUnknownContentType returned when content-type is unknown ErrUnknownContentType = errors.New("unknown content-type") )
var ( // DefaultMaxMsgSize specifies how much data codec can handle DefaultMaxMsgSize int = 1024 * 1024 * 4 // 4Mb // DefaultCodec is the global default codec DefaultCodec Codec = NewCodec() )
Functions ¶
This section is empty.
Types ¶
type Codec ¶
type Codec interface { ReadHeader(io.Reader, *Message, MessageType) error ReadBody(io.Reader, interface{}) error Write(io.Writer, *Message, interface{}) error Marshal(interface{}) ([]byte, error) Unmarshal([]byte, interface{}) error String() string }
Codec encodes/decodes various types of messages used within 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 ¶ added in v3.1.0
type Frame struct {
Data []byte
}
Frame gives us the ability to define raw data to send over the pipes
type Message ¶
type Message struct { Header metadata.Metadata Target string Method string Endpoint string Error string Id 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.
func NewMessage ¶ added in v3.1.0
func NewMessage(t MessageType) *Message
NewMessage creates new codec message
type MessageType ¶
type MessageType int
MessageType specifies message type for codec
const ( Error MessageType = iota Request Response Event )
Message types
type Option ¶ added in v3.1.0
type Option func(*Options)
Option func
func MaxMsgSize ¶ added in v3.1.0
MaxMsgSize sets the max message size
type Options ¶ added in v3.1.0
type Options struct { // Meter used for metrics Meter meter.Meter // Logger used for logging Logger logger.Logger // Tracer used for tracing Tracer tracer.Tracer // MaxMsgSize specifies max messages size that reads by codec MaxMsgSize int }
Options contains codec options
func NewOptions ¶ added in v3.1.6
NewOptions returns new options